Subversion Repositories QNX 8.QNX8 utilities

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 pmbaty 1
// linear framebuffer driver for QNX 8.0 by Pierre-Marie Baty <pm@pmbaty.com>
2
 
3
// compile and link with: cc -Wall fbwrite.c -lpng -o fbwrite
4
 
5
 
6
// standard C includes
7
#include <stdint.h>
8
#include <stdio.h>
9
#include <stdlib.h>
10
#include <string.h>
11
#include <errno.h>
12
#include <assert.h>
13
#include <ctype.h>
14
 
15
// platform-specific includes
16
#include <unistd.h> // POSIX
17
#include <sys/mman.h> // POSIX
18
#ifdef __QNXNTO__
19
#include <sys/neutrino.h> // QNX
20
#include <hw/inout.h> // QNX
21
#endif // __QNXNTO__
22
 
23
// the PNG library
24
#include <png.h>
25
 
26
 
27
/* codepage 837
28
================
29
 ☺☻♥♦♣♠•◘○◙♂♀♪♫☼
30
►◄↕‼¶§▬↨↑↓→←∟↔▲▼
31
 !"#$%&'()*+,-./
32
0123456789:;<=>?
33
@ABCDEFGHIJKLMNO
34
PQRSTUVWXYZ[\]^_
35
`abcdefghijklmno
36
pqrstuvwxyz{|}~⌂
37
ÇüéâäàåçêëèïîìÄÅ
38
ÉæÆôöòûùÿÖÜ¢£¥₧ƒ
39
áíóúñѪº¿⌐¬½¼¡«»
40
░▒▓│┤╡╢╖╕╣║╗╝╜╛┐
41
└┴┬├─┼╞╟╚╔╩╦╠═╬╧
42
╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀
43
αßΓπΣσµτΦΘΩδ∞φε∩
44
≡±≥≤⌠⌡÷≈°∙·√ⁿ²■
45
================ */
46
 
47
 
48
// character tables
49
#define CHAR_PIXELS_W 8
50
#define CHAR_PIXELS_H 16
51
#define _ 0x00,
52
#define B 0xff,
53
static const uint8_t characters_table_16x16_8x16_bold[] = // https://www.youtube.com/watch?v=Tl7VfKYbRjg
54
{
55
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
56
        B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
57
        B _ B _ _ _ _ _ _ B B B B B B _ _ B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ B B B B _ _ _ B B B B _ _ _ _ B B B B B B _ B B B B B B B _ _ _ _ _ _ _ _
58
        B _ B _ _ _ _ _ B _ _ _ _ _ _ B B B B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ B B B _ _ B B _ _ B B _ _ _ B B _ _ B B _ B B _ _ _ B B _ _ _ B B _ _ _
59
        B _ B _ _ _ _ _ B _ B _ _ B _ B B B _ B B _ B B _ B B _ B B _ _ _ _ _ B _ _ _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ B B _ B _ _ B B _ _ B B _ _ _ B B B B B B _ B B B B B B B _ _ _ B B _ _ _
60
        _ _ _ _ _ _ _ _ B _ _ _ _ _ _ B B B B B B B B B B B B B B B B _ _ _ B B B _ _ _ _ _ B B B B _ _ _ B B B B B B _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ B B B B _ _ B B _ _ _ _ B B _ _ B B _ _ B _ _ B B _ _ B B _ _ _ B B _ _ _ _ _ B B _ _ _ B B B B _ B B _ B B
61
        _ _ B _ B _ _ _ B _ _ _ _ _ _ B B B B B B B B B B B B B B B B _ _ B B B B B _ _ B B B _ _ B B B B B B B B B B B _ _ _ B B _ _ _ B B B _ _ B B B _ B B _ _ B B _ B _ _ B B _ _ B _ B B B B _ _ _ _ B B _ _ B B _ _ _ B B _ _ _ _ _ B B _ _ _ B B _ _ B B B B _ _
62
        _ _ B _ B _ _ _ B _ B B B B _ B B B _ _ _ _ B B B B B B B B B _ B B B B B B B _ B B B _ _ B B B B B B B B B B B _ _ B B B B _ _ B B _ _ _ _ B B _ B _ _ _ _ B _ B _ B B B B _ B B B _ _ B B _ _ _ _ B B B B _ _ _ _ B B _ _ _ _ _ B B _ _ _ B B B B B _ _ B B B
63
        _ _ B _ B _ _ _ B _ _ B B _ _ B B B B _ _ B B B B B B B B B B _ _ B B B B B _ _ B B B _ _ B B B _ B B B B B B _ _ _ B B B B _ _ B B _ _ _ _ B B _ B _ _ _ _ B _ B _ B B B B _ B B B _ _ B B _ _ _ _ _ B B _ _ _ _ _ B B _ _ _ _ _ B B _ _ _ B B _ _ B B B B _ _
64
        _ _ _ B B _ _ _ B _ _ _ _ _ _ B B B B B B B B B _ B B B B B _ _ _ _ B B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ B B B _ _ B B B _ B B _ _ B B _ B _ _ B B _ _ B B B _ _ B B _ _ _ B B B B B B _ _ B B B _ _ _ _ _ B B _ _ B B B B B _ B B _ B B
65
        _ _ _ _ _ _ _ _ B _ _ _ _ _ _ B B B B B B B B B _ _ B B B _ _ _ _ _ _ B _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ B B B B _ _ B B _ _ _ _ B B B B _ _ B B _ _ _ _ _ B B _ _ _ B B B B _ _ _ _ B B B _ _ B B B _ _ _ B B _ _ _
66
        _ _ _ _ B _ _ _ _ B B B B B B _ _ B B B B B B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B B B B B _ B B B B _ _ _ _ _ _ B B _ _ _ B B B _ _ _ _ _ B B B _ _ B B _ _ _ _ B B _ _ _
67
        _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _
68
        _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
69
        _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
70
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
71
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
72
        B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
73
        B B _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ B B _ _ _ _ B B _ _ B B _ _ B B B B B B B B B _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
74
        B B B _ _ _ _ _ _ _ _ _ B B B _ _ _ B B B B _ _ _ B B _ _ B B _ B B _ B B _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
75
        B B B B _ _ _ _ _ _ _ B B B B _ _ B B B B B B _ _ B B _ _ B B _ B B _ B B _ B B _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B _ _ B B B B B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ B B B B B B B _
76
        B B B B B _ _ _ _ _ B B B B B _ _ _ _ B B _ _ _ _ B B _ _ B B _ B B _ B B _ B B _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ B _ _ _ _ _ B B B _ _ _ B B B B B B B _
77
        B B B B B B B _ B B B B B B B _ _ _ _ B B _ _ _ _ B B _ _ B B _ _ B B B B _ B B B B _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ B B _ _ _ _ _ B B _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B B _ _ _ _ B B B B B _ _
78
        B B B B B _ _ _ _ _ B B B B B _ _ _ _ B B _ _ _ _ B B _ _ B B _ _ _ _ B B _ B B B B _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ B B B B B B B _ B B B B B B B _ B B _ _ _ _ _ _ B B B B B B B _ _ B B B B B _ _ _ B B B B B _ _
79
        B B B B _ _ _ _ _ _ _ B B B B _ _ B B B B B B _ _ B B _ _ B B _ _ _ _ B B _ B B _ B B _ B B _ _ B B B B B B B _ _ B B B B B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ B B _ _ _ _ _ B B _ _ _ _ _ _ _ B B _ B B _ _ _ B B B B B _ _ _ _ B B B _ _ _
80
        B B B _ _ _ _ _ _ _ _ _ B B B _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ B B B _ _ _ B B B B B B B _ _ _ B B B B _ _ _ _ _ B B _ _ _ _ B B B B B B _ _ _ _ B B _ _ _ _ _ B B _ _ _ _ B B B B B B B _ _ _ B _ B _ _ _ B B B B B B B _ _ _ B B B _ _ _
81
        B B _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ B B _ _ _ _ B B _ _ B B _ _ _ _ B B _ B B _ _ _ _ B B _ _ B B B B B B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ B _ _ _ _
82
        B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ B B _ _ B B _ _ _ _ B B _ B B B B _ _ _ B B _ B B B B B B B _ _ B B B B B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
83
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
84
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
85
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
86
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
87
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
88
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
89
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ B B _ _ B B _ _ _ _ _ _ _ _ _ _ B B B B B _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
90
        _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ B B _ _ B B _ _ B B _ B B _ _ B B _ _ _ B B _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
91
        _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ B _ _ B _ _ _ B B _ B B _ _ B B _ _ _ _ B _ B B _ _ _ _ B _ _ B B _ B B _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _
92
        _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ B B B B B B B _ B B _ _ _ _ _ _ B B _ _ _ B B _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ B B _ _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _
93
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B B B B _ _ _ _ _ _ B B _ _ _ B B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ _ B B B B _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _
94
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ B B _ _ _ _ B B _ _ _ B B _ B B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ B B B B B B B B _ B B B B B B _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _
95
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ B B _ _ _ B B _ _ _ _ B B _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ _ B B B B _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _
96
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B _ B _ _ _ _ B B _ _ B B _ _ _ _ _ B B _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ B B _ _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _
97
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B _ _ _ _ _ _
98
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B B B B _ _ B _ _ _ _ B B _ _ B B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B _ _ _ _ _ _ _
99
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
100
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
101
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
102
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
103
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
104
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
105
        _ _ B B B _ _ _ _ _ _ B B _ _ _ _ B B B B B _ _ _ B B B B B _ _ _ _ _ _ B B _ _ B B B B B B B _ _ _ B B B _ _ _ B B B B B B B _ _ B B B B B _ _ _ B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B _ _
106
        _ B B _ B B _ _ _ _ B B B _ _ _ B B _ _ _ B B _ B B _ _ _ B B _ _ _ _ B B B _ _ B B _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ _ _ B B _
107
        B B _ _ _ B B _ _ B B B B _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ B B B B _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ B B _ _ _ B B _
108
        B B _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ B B _ B B _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ B B B B B B _ _ _ _ B B _ _ _ _ _ _ _ B B _ _
109
        B B _ B _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B B B _ _ B B _ _ B B _ _ B B B B B B _ _ B B B B B B _ _ _ _ _ _ B B _ _ _ B B B B B _ _ _ B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ _ _
110
        B B _ B _ B B _ _ _ _ B B _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ B B _ B B B B B B B _ _ _ _ _ _ B B _ B B _ _ _ B B _ _ _ _ B B _ _ _ B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ B B _ _ _
111
        B B _ _ _ B B _ _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ _ _ B B _ _ _ _ B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B B B B B _ _ _ _ _ B B _ _ _ _ _ B B _ _ _
112
        B B _ _ _ B B _ _ _ _ B B _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ _ _ B B _ _ _ _ B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _
113
        _ B B _ B B _ _ _ _ _ B B _ _ _ B B _ _ _ B B _ B B _ _ _ B B _ _ _ _ _ B B _ _ B B _ _ _ B B _ B B _ _ _ B B _ _ _ B B _ _ _ _ B B _ _ _ B B _ _ _ _ _ B B _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _
114
        _ _ B B B _ _ _ _ B B B B B B _ B B B B B B B _ _ B B B B B _ _ _ _ _ B B B B _ _ B B B B B _ _ _ B B B B B _ _ _ _ B B _ _ _ _ _ B B B B B _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ _
115
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
116
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
117
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
118
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
119
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
120
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
121
        _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ B B B B B B _ _ _ _ B B B B _ _ B B B B B _ _ _ B B B B B B B _ B B B B B B B _ _ _ B B B B _ _ B B _ _ _ B B _ _ _ B B B B _ _ _ _ _ B B B B _ B B B _ _ B B _ B B B B _ _ _ _ B B _ _ _ B B _ B B _ _ _ B B _ _ B B B B B _ _
122
        _ B B B B B _ _ _ _ B B B _ _ _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ B B _ _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ B B _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ B B _ _ B B _ _ B B _ _ _ _ _ B B B _ B B B _ B B B _ _ B B _ B B _ _ _ B B _
123
        B B _ _ _ B B _ _ B B _ B B _ _ _ B B _ _ B B _ B B _ _ _ _ B _ _ B B _ _ B B _ _ B B _ _ _ B _ _ B B _ _ _ B _ B B _ _ _ _ B _ B B _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ B B _ _ B B _ _ B B _ _ _ _ _ B B B B B B B _ B B B B _ B B _ B B _ _ _ B B _
124
        B B _ _ _ B B _ B B _ _ _ B B _ _ B B _ _ B B _ B B _ _ _ _ _ _ _ B B _ _ B B _ _ B B _ B _ _ _ _ B B _ B _ _ _ B B _ _ _ _ _ _ B B _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ B B _ B B _ _ _ B B _ _ _ _ _ B B B B B B B _ B B B B B B B _ B B _ _ _ B B _
125
        B B _ B B B B _ B B _ _ _ B B _ _ B B B B B _ _ B B _ _ _ _ _ _ _ B B _ _ B B _ _ B B B B _ _ _ _ B B B B _ _ _ B B _ _ _ _ _ _ B B B B B B B _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ B B B B _ _ _ _ B B _ _ _ _ _ B B _ B _ B B _ B B _ B B B B _ B B _ _ _ B B _
126
        B B _ B B B B _ B B B B B B B _ _ B B _ _ B B _ B B _ _ _ _ _ _ _ B B _ _ B B _ _ B B _ B _ _ _ _ B B _ B _ _ _ B B _ B B B B _ B B _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ B B B B _ _ _ _ B B _ _ _ _ _ B B _ _ _ B B _ B B _ _ B B B _ B B _ _ _ B B _
127
        B B _ B B B B _ B B _ _ _ B B _ _ B B _ _ B B _ B B _ _ _ _ _ _ _ B B _ _ B B _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ _ _ B B _ B B _ _ _ B B _ _ _ _ B B _ _ _ B B _ _ B B _ _ _ B B _ B B _ _ _ B B _ _ _ _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _
128
        B B _ B B B _ _ B B _ _ _ B B _ _ B B _ _ B B _ B B _ _ _ _ B _ _ B B _ _ B B _ _ B B _ _ _ B _ _ B B _ _ _ _ _ B B _ _ _ B B _ B B _ _ _ B B _ _ _ _ B B _ _ _ B B _ _ B B _ _ _ B B _ _ B B _ _ B B _ _ _ B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _
129
        B B _ _ _ _ _ _ B B _ _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ B B _ _ _ B B _ _ B B _ _ B B _ _ _ _ _ _ B B _ _ B B _ B B _ _ _ B B _ _ _ _ B B _ _ _ B B _ _ B B _ _ _ B B _ _ B B _ _ B B _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _
130
        _ B B B B B _ _ B B _ _ _ B B _ B B B B B B _ _ _ _ B B B B _ _ B B B B B _ _ _ B B B B B B B _ B B B B _ _ _ _ _ _ B B B _ B _ B B _ _ _ B B _ _ _ B B B B _ _ _ B B B B _ _ _ B B B _ _ B B _ B B B B B B B _ B B _ _ _ B B _ B B _ _ _ B B _ _ B B B B B _ _
131
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
132
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
133
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
134
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
135
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _
136
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _
137
        B B B B B B _ _ _ B B B B B _ _ B B B B B B _ _ _ B B B B B _ _ _ B B B B B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ _ B B _ _ B B _ B B B B B B B _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _
138
        _ B B _ _ B B _ B B _ _ _ B B _ _ B B _ _ B B _ B B _ _ _ B B _ _ B B B B B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ _ B B _ _ B B _ B B _ _ _ B B _ _ _ B B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ B B _ _ B B _ _ _ B B _ _ _ _ _ _ _ _ _
139
        _ B B _ _ B B _ B B _ _ _ B B _ _ B B _ _ B B _ B B _ _ _ B B _ _ B _ B B _ B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ _ B B _ B B _ _ _ B B _ _ B B _ B _ _ _ _ B B _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
140
        _ B B _ _ B B _ B B _ _ _ B B _ _ B B _ _ B B _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ _ B B B B B _ _ _ B B _ _ B B _ _ _ _ _ B B _ _ _ _ B B _ _ _ _ B B B _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
141
        _ B B B B B _ _ B B _ _ _ B B _ _ B B B B B _ _ _ _ B B B _ _ _ _ _ _ B B _ _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ B _ B B _ _ _ B B B _ _ _ _ _ B B B B _ _ _ _ _ B B _ _ _ _ _ B B _ _ _ _ _ B B B _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
142
        _ B B _ _ _ _ _ B B _ _ _ B B _ _ B B _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ B _ B B _ _ _ B B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B B _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
143
        _ B B _ _ _ _ _ B B _ _ _ B B _ _ B B _ _ B B _ _ _ _ _ _ B B _ _ _ _ B B _ _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ B _ B B _ _ B B B B B _ _ _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ B B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
144
        _ B B _ _ _ _ _ B B _ B _ B B _ _ B B _ _ B B _ B B _ _ _ B B _ _ _ _ B B _ _ _ B B _ _ _ B B _ _ B B _ B B _ _ B B B B B B B _ _ B B _ B B _ _ _ _ _ B B _ _ _ B B _ _ _ _ B _ _ _ B B _ _ _ _ _ _ _ _ B B B _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
145
        _ B B _ _ _ _ _ B B _ B B B B _ _ B B _ _ B B _ B B _ _ _ B B _ _ _ _ B B _ _ _ B B _ _ _ B B _ _ _ B B B _ _ _ B B B _ B B B _ B B _ _ _ B B _ _ _ _ B B _ _ _ B B _ _ _ B B _ _ _ B B _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
146
        B B B B _ _ _ _ _ B B B B B _ _ B B B _ _ B B _ _ B B B B B _ _ _ _ B B B B _ _ _ B B B B B _ _ _ _ _ B _ _ _ _ _ B B _ B B _ _ B B _ _ _ B B _ _ _ B B B B _ _ B B B B B B B _ _ _ B B B B _ _ _ _ _ _ _ _ B _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
147
        _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
148
        _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B
149
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
150
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
151
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
152
        _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
153
        _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ B B B _ _ _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
154
        _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
155
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ B _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
156
        _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ B B B B B _ _ _ _ B B B B _ _ _ B B B B B _ _ _ _ B B _ _ _ _ _ B B B _ B B _ _ B B _ B B _ _ _ _ B B B _ _ _ _ _ _ _ B B B _ _ B B _ _ B B _ _ _ _ B B _ _ _ B B B _ B B _ _ B B _ B B B _ _ _ B B B B B _ _
157
        _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B _ B B _ _ B B _ _ _ B B _ _ B B _ B B _ _ B B _ _ _ B B _ _ B B B B _ _ _ B B _ _ B B _ _ _ B B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ B B _ B B _ _ _ _ _ B B _ _ _ B B B B B B B _ _ B B _ _ B B _ B B _ _ _ B B _
158
        _ _ _ _ _ _ _ _ _ B B B B B _ _ _ B B _ _ B B _ B B _ _ _ _ _ _ B B _ _ B B _ _ B B B B B B B _ _ _ B B _ _ _ _ B B _ _ B B _ _ _ B B _ _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ B B B B _ _ _ _ _ _ B B _ _ _ B B _ B _ B B _ _ B B _ _ B B _ B B _ _ _ B B _
159
        _ _ _ _ _ _ _ _ B B _ _ B B _ _ _ B B _ _ B B _ B B _ _ _ _ _ _ B B _ _ B B _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ _ B B _ _ B B _ _ _ B B _ _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ B B B B _ _ _ _ _ _ B B _ _ _ B B _ B _ B B _ _ B B _ _ B B _ B B _ _ _ B B _
160
        _ _ _ _ _ _ _ _ B B _ _ B B _ _ _ B B _ _ B B _ B B _ _ _ _ _ _ B B _ _ B B _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ _ B B _ _ B B _ _ _ B B _ _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ B B _ B B _ _ _ _ _ B B _ _ _ B B _ B _ B B _ _ B B _ _ B B _ B B _ _ _ B B _
161
        _ _ _ _ _ _ _ _ B B _ _ B B _ _ _ B B _ _ B B _ B B _ _ _ B B _ B B _ _ B B _ _ B B _ _ _ B B _ _ _ B B _ _ _ _ B B _ _ B B _ _ _ B B _ _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ B B _ _ B B _ _ _ _ B B _ _ _ B B _ B _ B B _ _ B B _ _ B B _ B B _ _ _ B B _
162
        _ _ _ _ _ _ _ _ _ B B B _ B B _ _ B B B B B _ _ _ B B B B B _ _ _ B B B _ B B _ _ B B B B B _ _ _ B B B B _ _ _ _ B B B B B _ _ B B B _ _ B B _ _ _ B B B B _ _ _ _ _ _ _ B B _ B B B _ _ B B _ _ _ B B B B _ _ B B _ _ _ B B _ _ B B _ _ B B _ _ B B B B B _ _
163
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
164
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
165
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
166
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
167
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
168
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ B B _ _ _ _ _ _ _ _ _
169
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ B B _ _ _ _ B B B _ _ _ _ B B _ B B B _ _ _ _ _ _ _ _ _ _
170
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
171
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _
172
        B B _ B B B _ _ _ B B B _ B B _ B B _ B B B _ _ _ B B B B B _ _ B B B B B B _ _ B B _ _ B B _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B B B B B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _
173
        _ B B _ _ B B _ B B _ _ B B _ _ _ B B B _ B B _ B B _ _ _ B B _ _ _ B B _ _ _ _ B B _ _ B B _ _ B B _ _ _ B B _ B B _ _ _ B B _ _ B B _ B B _ _ B B _ _ _ B B _ B B _ _ B B _ _ _ B B B _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ B B _ B B _ _
174
        _ B B _ _ B B _ B B _ _ B B _ _ _ B B _ _ B B _ _ B B _ _ _ _ _ _ _ B B _ _ _ _ B B _ _ B B _ _ B B _ _ _ B B _ B B _ B _ B B _ _ _ B B B _ _ _ B B _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B _
175
        _ B B _ _ B B _ B B _ _ B B _ _ _ B B _ _ _ _ _ _ _ B B B _ _ _ _ _ B B _ _ _ _ B B _ _ B B _ _ B B _ _ _ B B _ B B _ B _ B B _ _ _ B B B _ _ _ B B _ _ _ B B _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B _
176
        _ B B _ _ B B _ B B _ _ B B _ _ _ B B _ _ _ _ _ _ _ _ _ B B _ _ _ _ B B _ _ _ _ B B _ _ B B _ _ B B _ _ _ B B _ B B _ B _ B B _ _ _ B B B _ _ _ B B _ _ _ B B _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B _
177
        _ B B _ _ B B _ B B _ _ B B _ _ _ B B _ _ _ _ _ B B _ _ _ B B _ _ _ B B _ B B _ B B _ _ B B _ _ _ B B _ B B _ _ B B B B B B B _ _ B B _ B B _ _ B B _ _ _ B B _ B B _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B B B B B B _
178
        _ B B B B B _ _ _ B B B B B _ _ B B B B _ _ _ _ _ B B B B B _ _ _ _ _ B B B _ _ _ B B B _ B B _ _ _ B B B _ _ _ _ B B _ B B _ _ B B _ _ _ B B _ _ B B B B B B _ B B B B B B B _ _ _ _ _ B B B _ _ _ _ B B _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
179
        _ B B _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
180
        _ B B _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
181
        B B B B _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
182
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
183
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _
184
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ B B _ _ _ _ _ B B _ _ _ B B _ _ B B _ B B _ _
185
        _ _ B B B B _ _ B B _ _ B B _ _ _ _ _ B B _ _ _ _ _ B B B _ _ _ B B _ _ B B _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ B B _ _ _ B B _ _ _ B B _ _ _ _ _ B B _ _ B B _ _ _ B B B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _
186
        _ B B _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ B B _ _ _ _ B B _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _
187
        B B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _ B B B _ _ _
188
        B B _ _ _ _ _ _ B B _ _ B B _ _ _ B B B B B _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ B B B B B _ _ _ B B B B B _ _ _ B B B B B _ _ _ B B B B B _ _ _ _ B B B _ _ _ _ _ B B B _ _ _ _ _ B B B _ _ _ _ B B _ B B _ _ _ B B _ B B _ _
189
        B B _ _ _ _ _ _ B B _ _ B B _ _ B B _ _ _ B B _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ B B _ _ _ B B _ B B _ _ _ B B _
190
        B B _ _ _ _ _ _ B B _ _ B B _ _ B B B B B B B _ _ B B B B B _ _ _ B B B B B _ _ _ B B B B B _ _ _ B B B B B _ _ B B _ _ _ _ _ _ B B B B B B B _ B B B B B B B _ B B B B B B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ B B _ _ _ B B _ B B B B B B B _
191
        B B _ _ _ _ _ _ B B _ _ B B _ _ B B _ _ _ _ _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ B B B B B B B _ B B _ _ _ B B _
192
        B B _ _ _ _ B _ B B _ _ B B _ _ B B _ _ _ _ _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ B B _ _ _ B B _ B B _ _ _ B B _
193
        _ B B _ _ B B _ B B _ _ B B _ _ B B _ _ _ B B _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ B B _ _ _ B B _ B B _ _ _ B B _
194
        _ _ B B B B _ _ _ B B B _ B B _ _ B B B B B _ _ _ B B B _ B B _ _ B B B _ B B _ _ B B B _ B B _ _ B B B _ B B _ _ B B B B B _ _ _ B B B B B _ _ _ B B B B B _ _ _ B B B B B _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ B B B B _ _ B B _ _ _ B B _ B B _ _ _ B B _
195
        _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
196
        _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
197
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
198
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
199
        _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
200
        _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B _ B B _ _ _ B B _ _ _ _ B B _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ B B B B B _ _ _ _ _ _ _ B B B _
201
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B _ _ _ B B B _ _ _ B B _ _ _ B B _ _ _ B B _ _ _ _ _ B B B B _ _ _ _ _ B B _ _ _ _ B B _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ B B _ B B _ _ _ B B _ _ B B _ B B _ _ B B _ _ _ _ _ B B _ B B
202
        B B B B B B B _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B _ _ B B _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B B B B _ _ B B _ _ _ B B _ _ B B B B B _ _ _ B B _ _ B _ _ _ B B _ _ B B _ B B _ _ B B _ _ _ _ _ B B _ _ _
203
        _ B B _ _ B B _ _ _ _ _ _ _ _ _ B B _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ _ B B _ _ _ _ _ _ _ B B B B _ _ B B B B B _ _ _ _ _ _ B B _ _ _
204
        _ B B _ _ _ B _ B B B _ B B _ _ B B _ _ B B _ _ _ B B B B B _ _ _ B B B B B _ _ _ B B B B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ B B _ _ _ B B _ _ _ B _ _ _ _ _ B B _ _ _
205
        _ B B _ B _ _ _ _ _ B B _ B B _ B B B B B B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B B B B B _ B B _ _ B B _ _ _ B B B B B B _
206
        _ B B B B _ _ _ _ _ B B _ B B _ B B _ _ B B _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ B B _ B B B B _ _ _ _ B B _ _ _
207
        _ B B _ B _ _ _ _ B B B B B B _ B B _ _ B B _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ _ B B _ _ _ _ _ _ B B B B B B _ B B _ _ B B _ _ _ _ _ B B _ _ _
208
        _ B B _ _ _ B _ B B _ B B _ _ _ B B _ _ B B _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ _ B B B B B _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ B B _ _ B B _ _ _ _ _ B B _ _ _
209
        _ B B _ _ B B _ B B _ B B _ _ _ B B _ _ B B _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ _ _ _ B B _ _ _ B B B _ _ B B _ _ _ _ B B _ _ _ B B _ _ B B _ _ B B _ B B _ _ _
210
        B B B B B B B _ _ B B _ B B B _ B B _ _ B B B _ _ B B B B B _ _ _ B B B B B _ _ _ B B B B B _ _ _ B B B _ B B _ _ B B B _ B B _ _ B B B B B B _ _ B B B B B _ _ _ B B B B B _ _ _ _ _ B B _ _ _ B B B B B B _ _ _ _ _ B B _ _ _ B B _ _ _ B B _ _ B B B _ _ _ _
211
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
212
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
213
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
214
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
215
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
216
        _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
217
        _ _ B B _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ B B B _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _ B B B _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
218
        _ B B _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B B _ _ B B _ _ _ B B _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B _ _ B B _ _ _ B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
219
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ B B _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ B B _ _ B B _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
220
        _ B B B B _ _ _ _ _ B B B _ _ _ _ B B B B B _ _ B B _ _ B B _ _ B B _ B B B _ _ B B B B _ B B _ _ _ B B B B B _ _ _ B B B _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ B B _ B B _ _ _
221
        _ _ _ _ B B _ _ _ _ _ B B _ _ _ B B _ _ _ B B _ B B _ _ B B _ _ _ B B _ _ B B _ B B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ B B B B B B B _ B B B B B B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ B B _ B B _ _ _ B B _ B B _ _
222
        _ B B B B B _ _ _ _ _ B B _ _ _ B B _ _ _ B B _ B B _ _ B B _ _ _ B B _ _ B B _ B B _ B B B B _ _ B B B B B B _ _ B B B B B _ _ _ B B _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ B B _ B B _ _ _ _ _ B B _ B B _
223
        B B _ _ B B _ _ _ _ _ B B _ _ _ B B _ _ _ B B _ B B _ _ B B _ _ _ B B _ _ B B _ B B _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ _ B B _ _ _ _ _ _ B B _ _ B B _ _ _ B B B B _ _ _ B B _ B B _ _ _ B B _ B B _ _
224
        B B _ _ B B _ _ _ _ _ B B _ _ _ B B _ _ _ B B _ B B _ _ B B _ _ _ B B _ _ B B _ B B _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ B B B _ _ B B _ _ B B B _ _ _ B B B B _ _ _ _ B B _ B B _ B B _ B B _ _ _
225
        B B _ _ B B _ _ _ _ _ B B _ _ _ B B _ _ _ B B _ B B _ _ B B _ _ _ B B _ _ B B _ B B _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B _ _ _ _ B B _ B _ _ B B _ B _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
226
        _ B B B _ B B _ _ _ B B B B _ _ _ B B B B B _ _ _ B B B _ B B _ _ B B _ _ B B _ B B _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ B B B B B B _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
227
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
228
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
229
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
230
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
231
        _ _ _ B _ _ _ B _ B _ B _ B _ B B B _ B B B _ B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _
232
        _ B _ _ _ B _ _ B _ B _ B _ B _ _ B B B _ B B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _
233
        _ _ _ B _ _ _ B _ B _ B _ B _ B B B _ B B B _ B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _
234
        _ B _ _ _ B _ _ B _ B _ B _ B _ _ B B B _ B B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _
235
        _ _ _ B _ _ _ B _ B _ B _ B _ B B B _ B B B _ B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _
236
        _ B _ _ _ B _ _ B _ B _ B _ B _ _ B B B _ B B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ B B B B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ B B B B B _ _ _ B B B B _ B B _ _ _ B B _ B B _ B B B B B B B _ B B B B _ B B _ _ _ B B _ B B _ B B B B B _ _ _ _ _ _ _ _ _ _ _
237
        _ _ _ B _ _ _ B _ B _ B _ B _ B B B _ B B B _ B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ B B _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _
238
        _ B _ _ _ B _ _ B _ B _ B _ B _ _ B B B _ B B B _ _ _ B B _ _ _ B B B B B _ _ _ B B B B B _ _ _ B B B B _ B B _ B B B B B B B _ B B B B B _ _ _ B B B B _ B B _ _ _ B B _ B B _ B B B B _ B B _ B B B B B B B _ B B B B B B B _ B B B B B _ _ _ B B B B B _ _ _
239
        _ _ _ B _ _ _ B _ B _ B _ B _ B B B _ B B B _ B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _
240
        _ B _ _ _ B _ _ B _ B _ B _ B _ _ B B B _ B B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _
241
        _ _ _ B _ _ _ B _ B _ B _ B _ B B B _ B B B _ B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _
242
        _ B _ _ _ B _ _ B _ B _ B _ B _ _ B B B _ B B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _
243
        _ _ _ B _ _ _ B _ B _ B _ B _ B B B _ B B B _ B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _
244
        _ B _ _ _ B _ _ B _ B _ B _ B _ _ B B B _ B B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _
245
        _ _ _ B _ _ _ B _ B _ B _ B _ B B B _ B B B _ B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _
246
        _ B _ _ _ B _ _ B _ B _ B _ B _ _ B B B _ B B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _
247
        _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _
248
        _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _
249
        _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _
250
        _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _
251
        _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _
252
        _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B B B B _ _ B B _ B B _ _ _ B B _ B B B _ _ B B B B B B B B B B _ B B B B B B B B B B B _ _ B B _ B B B B B B B B B B B B B B B _ B B B B B B B B B B B
253
        _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
254
        _ _ _ B B B B B B B B B B B B B B B B B B B B B _ _ _ B B B B B B B B B B B B B B B B B B B B B _ _ _ B B B B B _ _ B B _ B B B _ _ B B B B B B _ _ B B _ B B B B B B B B B B B B B B B _ B B B _ _ B B _ B B B B B B B B B B B B B B B _ B B B B B B B B B B B
255
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _
256
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _
257
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _
258
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _
259
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _
260
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _
261
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _
262
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _
263
        _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ B B B B B B B B B B B B
264
        _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ B B B B B B B B B B B B
265
        _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ B B B B B B B B B B B B
266
        _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ B B B B B B B B B B B B
267
        _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ B B B B B B B B B B B B
268
        _ _ B B _ B B _ B B B B B B B B _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B B B B _ _ _ B B B B B _ _ _ _ _ _ _ _ _ _ B B _ B B _ B B B B B B B B _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ B B B B B B B B B B B B
269
        _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ B B B B B B B B B B B B
270
        B B B B B B B B B B B B B B B B B B B B B B B B _ _ B B B B B B _ _ _ B B B B B _ _ _ B B B B B _ _ B B B B B B B B B B B B B B B B B B B B B B B B B B B _ _ _ _ _ _ B B B B B B B B B B B B B B B B B B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _
271
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B B B B B B B B B B B B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _
272
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B B B B B B B B B B B B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _
273
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B B B B B B B B B B B B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _
274
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B B B B B B B B B B B B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _
275
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B B B B B B B B B B B B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _
276
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B B B B B B B B B B B B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _
277
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B B B B B B B B B B B B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _
278
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B B B B B B B B B B B B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _
279
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
280
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
281
        _ _ _ _ _ _ _ _ _ B B B B _ _ _ B B B B B B B _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B _ _ _ B B B _ _ _ _ _ B B B _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _
282
        _ _ _ _ _ _ _ _ B B _ _ B B _ _ B B _ _ _ B B _ _ _ _ _ _ _ _ _ B B _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ B B _ _ _ _ _ B B B B B _ _
283
        _ _ _ _ _ _ _ _ B B _ _ B B _ _ B B _ _ _ B B _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ B B _ _ _ B B B B _ _ B B _ _ _ B B _ B B _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ B B _ _ _ _ _ B B _ _ _ B B _
284
        _ B B B _ B B _ B B _ _ B B _ _ B B _ _ _ _ _ _ B B B B B B B _ _ _ B B _ _ _ _ _ B B B B B B _ _ B B _ _ B B _ B B _ B B B _ _ _ B B _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ _ _ _ _ B B _ _ _ B B B B B B _ _ B B B B B B _ _ B B _ _ _ _ _ B B _ _ _ B B _
285
        B B _ B B B _ _ B B _ B B _ _ _ B B _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ B B _ _ _ _ B B _ _ _ _ B B _ _ B B _ B B B B B B B _ B B _ _ _ B B _ _ _ B B B B B _ B B _ B B _ B B B B _ B B _ B B _ B B B B B _ _ B B _ _ _ B B _
286
        B B _ B B _ _ _ B B _ _ B B _ _ B B _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ B B _ _ _ _ B B _ _ _ _ B B _ _ B B _ B B _ _ _ B B _ _ B B _ B B _ _ _ B B _ _ B B _ B B _ B B _ B B B B _ B B _ B B _ B B _ _ _ _ _ B B _ _ _ B B _
287
        B B _ B B _ _ _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ B B _ B B _ _ _ _ B B _ _ B B _ _ _ _ B B _ _ _ _ B B _ _ B B _ B B _ _ _ B B _ _ B B _ B B _ _ _ B B _ _ B B _ B B _ B B _ B B B B B B _ _ B B _ B B _ _ _ _ _ B B _ _ _ B B _
288
        B B _ B B _ _ _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ B B _ _ _ _ B B _ _ _ _ _ B B B B _ _ B B _ _ _ B B _ _ B B _ B B _ _ _ B B _ _ B B _ _ B B B B B B _ _ B B B B B B _ _ B B _ _ _ _ _ B B _ _ _ B B _
289
        B B _ B B B _ _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ B B _ B B _ _ B B _ _ _ B B _ B B _ B B _ _ _ _ B B _ _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ _ B B _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ _ B B _ _ _ B B _
290
        _ B B B _ B B _ B B _ _ B B _ _ B B _ _ _ _ _ _ _ B B _ B B _ _ B B B B B B B _ _ B B B _ _ _ _ _ B B B B B _ _ _ _ _ B B _ _ _ _ B B B B B B _ _ _ B B B _ _ _ B B B _ B B B _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ B B B _ _ B B _ _ _ B B _
291
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
292
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
293
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
294
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
295
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
296
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ B B _ B B _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _
297
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ B B _ B B _ _ B B _ _ B B _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _
298
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ B B _ B B _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _
299
        B B B B B B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ B B _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ B B B B B B _ B B B _ _ _ _ _
300
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ B B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ B B _ B B _ _ _ B B _ _ B _ _ B B B B B B _ _ _ _ _ _ _ _ _
301
        _ _ _ _ _ _ _ _ _ B B B B B B _ _ _ _ _ _ B B _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ B B _ B B _ _ B B B B B B _ _ B B B B B B _ _ _ _ B _ _ _ _
302
        B B B B B B B _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ B B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B _ _ _ B _ B _ _ _
303
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B _ _ _ B _ B _ _ _
304
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ _ _ B B _ B B _ _ _ _ _ _ B B _ _ _ B B _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B _ _ _ _ B _ _ _ _
305
        B B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B _ _ _ _ _ _ _ _ _
306
        _ _ _ _ _ _ _ _ _ B B B B B B _ _ B B B B B B _ _ B B B B B B _ _ _ _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _
307
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _
308
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _
309
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _
310
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
311
};
312
static const uint8_t characters_table_16x16_8x16_light[] =
313
{
314
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
315
        B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
316
        B _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
317
        B _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ B B B B _ _ _ B B B B _ _ _ _ _ B B B B _ _ _ B B B B B _ _ _ _ B _ _ _ _
318
        B _ B _ _ _ _ _ _ B B B B B _ _ _ B B B B B _ _ _ B B _ B B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ _ _ B B _ _ B _ _ _ _ B _ _ _ _ B _ _ B _ _ _ B _ _ _ B _ B _ _ B _ _ B _
319
        _ _ _ _ _ _ _ _ B _ _ _ _ _ B _ B B B B B B B _ B _ _ B _ _ B _ _ _ B _ B _ _ _ _ _ B _ B _ _ _ _ _ B _ B _ _ _ _ _ _ B B _ _ _ B B B _ B B B _ _ _ B B B B _ _ B B _ _ _ B B _ _ _ _ _ B _ B _ _ B _ _ _ _ B _ _ _ _ B B B B _ _ _ B B B B B _ _ B _ B _ B _ _
320
        _ _ B _ B _ _ _ B _ B _ B _ B _ B B _ B _ B B _ B _ _ B _ _ B _ _ B _ _ _ B _ _ _ _ _ B _ _ _ _ _ B _ _ _ B _ _ _ _ B B B B _ _ B B _ _ _ B B _ _ B B _ _ B B _ B _ _ B _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ B _ _ _ B _ _ _ B B B _ _ _
321
        _ _ B _ B _ _ _ B _ _ _ _ _ B _ B B B B B B B _ B _ _ _ _ _ B _ B _ _ _ _ _ B _ _ B _ B _ B _ _ B _ _ _ _ _ B _ _ _ B B B B _ _ B B _ _ _ B B _ _ B _ _ _ _ B _ B _ B B B _ B _ _ B B B B _ _ _ _ _ B B B B _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ B _ B B B _ B B B _
322
        _ _ B _ B _ _ _ B _ B B B _ B _ B B B B B B B _ _ B _ _ _ B _ _ _ B _ _ _ B _ _ B _ B B B _ B _ B _ B B B _ B _ _ _ _ B B _ _ _ B B B _ B B B _ _ B _ _ _ _ B _ B _ B B B _ B _ B _ _ _ _ B _ _ _ _ _ B B _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ B _ _ _ B B B _ _ _
323
        _ _ _ B B _ _ _ B _ _ B _ _ B _ B B _ _ _ B B _ _ _ B _ B _ _ _ _ _ B _ B _ _ _ _ B _ B _ B _ _ _ B _ B _ B _ _ _ _ _ _ _ _ _ _ B B B B B B B _ _ B B _ _ B B _ B _ _ B _ _ B _ B _ _ _ _ B _ _ _ B B B B B B _ _ B B B _ _ _ _ _ _ B _ B B B _ _ B _ B _ B _ _
324
        _ _ _ _ _ _ _ _ B _ _ _ _ _ B _ B B B _ B B B _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ B B B B _ _ B B _ _ _ B B _ B _ _ _ _ B _ _ _ _ _ B B _ _ _ B B B B _ _ _ _ B B B _ B B B _ B _ _ B _ _ B _
325
        _ _ _ _ B _ _ _ _ B B B B B _ _ _ B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ _ _ _ _ _ B B B B B B B _ _ B B B B _ _ _ _ _ _ B B _ _ _ B B B _ _ _ _ _ B B B _ B B _ _ _ _ _ B _ _ _ _
326
        _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _
327
        _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
328
        _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
329
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
330
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
331
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B
332
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B
333
        _ B _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ B _ _ _ B B B B B B _ B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B _
334
        _ B B _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B B _ _ _ _ B _ _ _ B _ _ B _ _ B _ _ B _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _ B B B _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B _
335
        _ B B B _ _ _ _ _ _ _ _ B B B _ _ B _ B _ B _ _ _ B _ _ _ B _ _ B _ _ B _ _ B _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ B _ B _ B _ _ _ B _ B _ B _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ B _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ _
336
        _ B B B B _ _ _ _ _ _ B B B B _ _ _ _ B _ _ _ _ _ B _ _ _ B _ _ B _ _ B _ _ B _ B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ B B B B _ _
337
        _ B B B B B _ _ _ _ B B B B B _ _ _ _ B _ _ _ _ _ B _ _ _ B _ _ _ B B B _ _ B _ B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ B B B B B B _ _ B B B B B B _ _ B _ _ _ _ _ _ B B B B B B B B _ _ _ B B _ _ _ _ _ _ B B _ _ _
338
        _ B B B B _ _ _ _ _ _ B B B B _ _ _ _ B _ _ _ _ _ B _ _ _ B _ _ _ _ _ B _ _ B _ B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ B _ B _ B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _
339
        _ B B B _ _ _ _ _ _ _ _ B B B _ _ B _ B _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ B _ _ B B B B _ _ _ B B B B B B B _ _ _ B B B _ _ _ _ _ _ B _ _ _ _ _ B _ B _ B _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ B B B B B B _ _ _ B _ _ B _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _
340
        _ B B _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ B _ _ _ _ _ B _ _ _ B B B B B B B _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ B B B _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _
341
        _ B _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ B _ _ _ _ _ B _ _ B _ B _ _ _ _ B _ _ B B B B B B B _ _ B B B B B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B _ _ _ _ _ _ _ _ _
342
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B _ _ _ _ _ _ _ _ _
343
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _
344
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _
345
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
346
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
347
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
348
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
349
        _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ B B _ _ _ B B _ _ B _ _ _ B _ _ _ _ B B B B _ _ B B B _ _ _ B _ _ _ B B B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _
350
        _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ B B _ _ _ B B _ _ B _ _ _ B _ _ _ B _ _ B _ B _ B _ B _ _ B _ _ _ B _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ B _ B _ B _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _
351
        _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ B _ _ B B B B B B B _ _ B _ _ B _ _ _ B B B _ B _ _ _ _ B _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B B B _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _
352
        _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ B _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ B B B B B B B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _
353
        _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ B _ _ _ _ B B B B _ _ _ _ _ B _ _ _ _ _ B _ B _ _ B _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B B B _ _ _ B B B B B B B _ _ _ _ _ _ _ _ _ _ B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _
354
        _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ B _ _ _ _ _ B _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ B _ B _ B _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _
355
        _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B _ _ B _ B _ _ B _ _ _ B _ B B B _ B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _
356
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ B _ _ _ B _ B _ _ B _ _ B _ _ B _ B _ B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _
357
        _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ B _ _ _ _ B B B B _ _ B _ _ _ B B B _ _ B B B B _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _
358
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
359
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
360
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
361
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
362
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
363
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
364
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
365
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B B B B B _ _
366
        _ _ B B B B _ _ _ _ _ _ B _ _ _ _ _ B B B B _ _ _ B B B B B _ _ _ _ _ _ _ B B _ _ _ B B B B B _ _ _ B B B B B _ _ B B B B B B _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ B _
367
        _ B _ _ _ _ B _ _ _ _ B B _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ B _ B _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _
368
        _ B _ _ _ _ B _ _ _ B _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ B _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ B B B B B B _ _ _ _ _ B _ _ _ _ _ _ _ B B _ _
369
        _ B _ B B _ B _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ B B B B _ _ _ _ B _ _ _ B _ _ _ B B B B _ _ _ B B B B B _ _ _ _ _ _ B _ _ _ _ _ B B B B _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ _
370
        _ B _ B B _ B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ B _ _ _ _ B _ _ _ B _ _ _ B _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ B _ _ B _ _ _ _ B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _
371
        _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ B _ _ B B B B B B B _ _ _ _ _ _ B _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B B B B B B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _
372
        _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _
373
        _ _ B B B B _ _ _ _ B B B B B _ _ B B B B B B _ _ B B B B B _ _ _ _ _ _ _ _ B _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ _ B _ _ _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _
374
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
375
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
376
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
377
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
378
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
379
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
380
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
381
        _ B B B B B _ _ _ _ _ B B _ _ _ _ B B B B B _ _ _ _ B B B B _ _ _ B B B B _ _ _ _ _ B B B B B _ _ _ B B B B B _ _ _ B B B B B _ _ B _ _ _ _ B _ _ _ _ B B B _ _ _ _ B B B B B _ _ B _ _ _ _ B _ _ _ B _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ B B B B _ _
382
        B _ _ _ _ _ B _ _ _ B _ _ B _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ B _ _ _ _ B _ _ _ _ _ _ B B _ _ B B _ _ B B _ _ _ B _ _ B _ _ _ _ B _
383
        B _ B B B _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ _ B _ _ _ _ _ _ B _ B B _ B _ _ B _ B _ _ B _ _ B _ _ _ _ B _
384
        B _ B _ B _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ B _ _ _ _ _ _ B _ _ _ _ _ _ B _ B B _ B _ _ B _ _ B _ B _ _ B _ _ _ _ B _
385
        B _ B _ B _ B _ _ B _ _ _ _ B _ _ B B B B B _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ B B B B B _ _ _ B B B B B _ _ B _ _ B B B _ _ B B B B B B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B B _ _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ B B _ _ B _ _ _ _ B _
386
        B _ B _ B _ B _ _ B B B B B B _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ B _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _
387
        B _ _ B B B _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _
388
        B _ _ _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ B _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _
389
        _ B B B B B _ _ _ B _ _ _ _ B _ _ B B B B B _ _ _ _ B B B B _ _ _ B B B B B _ _ _ _ B B B B B _ _ _ B _ _ _ _ _ _ _ B B B B B _ _ B _ _ _ _ B _ _ _ _ B B B _ _ _ _ B B _ _ _ _ _ B _ _ _ _ B _ _ _ B B B B B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ B B B B _ _
390
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
391
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
392
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
393
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
394
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
395
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
396
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _
397
        _ B B B B B _ _ _ _ B B B B _ _ _ B B B B B _ _ _ _ B B B B _ _ _ B B B B B B B _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ _ B _ B _ _ _ _ _ B _ B B B B B B _ _ _ B B B B _ _ _ B _ _ _ _ _ _ _ _ B B B B _ _ _ _ B _ B _ _ _ _ _ _ _ _ _ _ _
398
        _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ _ B _ B _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ B _ _ _ B _ _ _ B _ _ _ _ _ _ _ _ _ _
399
        _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ B _ _ _ B _ _ B _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
400
        _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ _ B _ B _ _ _ _ B _ _ _ B _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
401
        _ B B B B B _ _ _ B _ _ _ _ B _ _ B B B B B _ _ _ _ _ B B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ B B _ B _ _ _ _ _ B _ _ _ _ _ _ B _ B _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
402
        _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ B B _ B _ _ _ _ B _ B _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
403
        _ B _ _ _ _ _ _ _ B _ _ B _ B _ _ B _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ B B _ B _ _ _ B _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
404
        _ B _ _ _ _ _ _ _ B _ _ B _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ _ B _ _ B _ _ _ B B _ _ B B _ _ B _ _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
405
        _ B _ _ _ _ _ _ _ _ B B B B _ _ _ B _ _ _ _ B _ _ _ B B B B _ _ _ _ _ _ B _ _ _ _ _ B B B B _ _ _ _ _ B B _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ _ B _ _ _ _ B _ _ _ _ B B B B B B _ _ _ B B B B _ _ _ _ _ _ _ B _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
406
        _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
407
        _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
408
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
409
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B
410
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
411
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
412
        _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
413
        _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
414
        _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
415
        _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ B _ B B B _ _ _ _ B B B B _ _ _ _ B B B _ B _ _ _ B B B B _ _ _ _ B B B B B _ _ _ B B B B B _ _ B _ B B B _ _ _ _ B B B _ _ _ _ _ B B B _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ B B B _ B B _ _ _ B B B B B _ _ _ _ B B B B _ _
416
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ B B _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ B B _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ B B _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ B _ _ _ _ _ _ B _ _ _ B _ _ B _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _
417
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B B B B _ _ _ _ _ _ _ B _ _ _ B _ _ B _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _
418
        _ _ _ _ _ _ _ _ _ _ B B B B B _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ B B B B B B _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ B _ _ _ _ _ _ B _ _ _ B _ _ B _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _
419
        _ _ _ _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ B B _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ B _ _ B _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _
420
        _ _ _ _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ B B B _ B _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ B _ _ B _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _
421
        _ _ _ _ _ _ _ _ _ _ B B B B B _ _ B B B B B _ _ _ _ B B B B B _ _ _ B B B B B _ _ _ B B B B B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ B _ _ B _ _ _ _ B _ _ _ B B B B B _ _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ _ B B B B B _ B _ _ B _ _ B _ _ B _ _ _ _ B _ _ _ B B B B _ _
422
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
423
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
424
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
425
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
426
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
427
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
428
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
429
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
430
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
431
        _ B _ B B B _ _ _ _ B B B B B _ _ _ B _ B B _ _ _ _ B B B B B _ _ B B B B B B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ B _ _ B _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B B B B B B _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _
432
        _ B B _ _ _ B _ _ B _ _ _ _ B _ _ _ B B _ _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ B _ _ B _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ B B _ _ _ B _ _ _ B _ B _ _ _
433
        _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ B _ _ B _ _ B _ _ _ B _ _ B _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ B _ _ B _ _ B _ _ B _ _ _ B _ _
434
        _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ B _ _ _ _ _ _ _ B B B B _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ B _ _ B _ _ B _ _ _ _ B B _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ B _ _ _ B B _ _ B _ _ _ _ _ B _
435
        _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ B _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ B _ _ B _ _ B _ _ _ B _ _ B _ _ _ B _ _ _ _ B _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B _
436
        _ B _ _ _ _ B _ _ B _ _ _ B B _ _ _ B _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ _ B _ _ B _ _ B _ _ B _ _ B _ _ B _ _ _ _ B _ _ _ B B B B B _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ B B B B B B B _
437
        _ B B B B B _ _ _ _ B B B _ B _ _ _ B _ _ _ _ _ _ B B B B B _ _ _ _ _ _ B B B _ _ _ B B B B B _ _ _ _ B B _ _ _ _ B B _ B B _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ B _ _ B B B B B B _ _ _ _ _ B B _ _ _ _ _ B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
438
        _ B _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
439
        _ B _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
440
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
441
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
442
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
443
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ B B _ _ _ B B B _ _ _
444
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ B _ _
445
        _ _ B B B B _ _ _ _ B _ _ B _ _ _ _ _ _ B _ _ _ _ _ B _ B _ _ _ _ _ B _ _ B _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ B _ _ _ _ _ _ _ _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ _ B _ _ _ _ _ B _ _ _ B _ _ _ _ B _ B _ _ _ _ _ _ B _ _ _ _ _ _ B B B B _ _ _ _ B B B _ _ _
446
        _ B _ _ _ _ B _ _ _ B _ _ B _ _ _ _ _ B _ _ _ _ _ B _ _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ B _ _ B _ _ _ _ _ _ B _ _ _ _ B _ _ _ B _ _ _ B _ _ _ B _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ _ _
447
        _ B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ B _ _ B B B B B _ _
448
        _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ B _ _ _ _ _ B _
449
        _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ B B B B B B _ B _ _ _ _ _ B _
450
        _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ B B B B B _ _ _ B B B B B _ _ _ B B B B B _ _ _ B B B B B _ _ B _ _ _ _ _ _ _ B B B B B B _ _ B B B B B B _ _ B B B B B B _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ B B B B B B B _
451
        _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B B B B B B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ B _ _ _ _ _ B _
452
        _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ B _ _ _ _ _ B _
453
        _ _ B B B B _ _ _ _ B B B B _ _ _ _ B B B B B _ _ _ B B B B B _ _ _ B B B B B _ _ _ B B B B B _ _ _ B B B B B _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ B _ _ _ _ _ B _
454
        _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
455
        _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
456
        _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
457
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
458
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
459
        _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B _ B B _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
460
        _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ B B B _ _ _ B _ _ _ _ _ B _ B B B B B _ _ _ _ _ _ _ _ _ _ _
461
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B _ _ _ _ B B _ _ _ _ _ B _ _ B _ _ _ _ _ B _ _ _ _ _ _ B _ _ B _ _ _ _ _ B _ _ _ _ _ _ B _ _ B _ _ _ B B B B B _ _ B _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ B _ _ _ B _ _ _ B _ _ B _ _ _ _ B _ _ _ _ _ _ _ B _ _
462
        _ B B B B B _ _ _ _ _ _ _ _ _ _ B _ _ _ B _ _ _ _ _ B _ _ B _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B _ B _ _ _ _ _ B _ _ B B B B B _ _ _ B _ _ _ B _ _ _ _ B _ B _ _ _ B _ _ _ _ B _ _ _ _ _ _ B _ _ _
463
        _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B _ B _ _ _ _ _ B _ B _ _ _ _ _ B _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _
464
        _ B _ _ _ _ _ _ _ B B _ B B _ _ B _ _ _ B _ _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ B _ _ _ _ _ B _ B _ _ _ _ _ B _ B _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ B _ _ _ _ B B B B B _ _ _ _ _ _ B _ _ _ _
465
        _ B B B B _ _ _ _ _ _ B _ _ B _ B B B B B B B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ B _ _ _ _ _ B _ B _ _ _ _ _ B _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B B B B B _ _ B _ _ _ _ _ _ _ _ _ _ B _ _ _ _
466
        _ B _ _ _ _ _ _ _ B B B B B _ _ B _ _ _ B _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ B _ _ _ _ _ B _ B _ _ _ _ _ B _ B _ _ _ _ _ B _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ B B B _ _ _ _ B _ _ _ _
467
        _ B _ _ _ _ _ _ B _ _ B _ _ _ _ B _ _ _ B _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ B _ _ _ _ _ B _ B _ _ _ _ _ B _ _ B B B B B _ _ _ B B _ _ _ _ _ _ B B B B B _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _
468
        _ B _ _ _ _ _ _ B _ _ B _ _ B _ B _ _ _ B _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ B _ _ _ _ _ B _ B _ _ _ _ _ B _ _ _ _ B _ _ _ _ B B _ B _ B B _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _
469
        _ B B B B B _ _ _ B B B B B _ _ B _ _ _ B B B _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ B B B B B _ _ _ B B B B B _ _ _ B B B B B _ _ B B B B B _ _ _ B B B B B _ _ _ _ _ B _ _ _ _ B B _ _ B B _ _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _
470
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _
471
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
472
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
473
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
474
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
475
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
476
        _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ B _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
477
        _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ B B _ _ B _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ B _ _ B B _ _ B _ _ _ _
478
        _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ B B _ _ B _ _ _ _ _ B _ _ B _ _ _ B _ _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ B _ _ _ B _ _ _ B _ _ _ _ B B _ _ _ _ _ _ B _ _ B _ _ B _ _ B _ _ _
479
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ B _ _ B _ _ _ B _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ _ _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _
480
        _ _ B B B B _ _ _ _ B B _ _ _ _ _ _ B B B B _ _ _ B _ _ _ _ B _ _ B B B B B _ _ B _ B _ _ _ B _ _ _ B B B B B _ _ _ B B B B _ _ _ _ _ B _ _ _ _ _ B B B B B B _ _ B B B B B B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ B B _ _ _ _ B _ _ B _ _ _ _ _ _ B _ _ B _
481
        _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ B _ _ B _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B B _ _ _ B _ _ B _ _ _ _ _ _ _ _ B _ _ B
482
        _ _ B B B B B _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ B _ _ _ B _ B _ _ B B B B B B _ _ B B B B B B _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ B _ _ _ _ _ _ _ B _ _ _ B _ _ _ _ B B _ _ _ _ B _ _ B _ _ _ _ _ _ B _ _ B _
483
        _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ B _ _ _ _ _ _ _ _ _ _ _ _ B _ _ B _ _ B B _ _ _ B _ _ _ B B _ _ _ _ B B _ _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _
484
        _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ B _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ B _ _ B _ B _ _ _ B _ B _ _ _ _ B B _ _ _ _ _ _ B _ _ B _ _ B _ _ B _ _ _
485
        _ _ B B B B B _ _ _ _ B _ _ _ _ _ _ B B B B _ _ _ _ B B B B B _ _ B _ _ _ _ B _ B _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B B B B _ _ _ _ B B _ _ _ _ _ _ _ B _ _ B B _ _ B _ _ _ _
486
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
487
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
488
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
489
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
490
        _ B _ _ _ B _ _ B _ B _ B _ B _ _ B B B _ B B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _
491
        _ _ _ B _ _ _ B _ B _ B _ B _ B B B _ B B B _ B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _
492
        _ B _ _ _ B _ _ B _ B _ B _ B _ _ B B B _ B B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _
493
        _ _ _ B _ _ _ B _ B _ B _ B _ B B B _ B B B _ B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _
494
        _ B _ _ _ B _ _ B _ B _ B _ B _ _ B B B _ B B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _
495
        _ _ _ B _ _ _ B _ B _ B _ B _ B B B _ B B B _ B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _
496
        _ B _ _ _ B _ _ B _ B _ B _ B _ _ B B B _ B B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ B B B B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ B B B B B _ _ _ B B B B _ B B _ _ _ B B _ B B _ B B B B B B B _ B B B B _ B B _ _ _ B B _ B B _ B B B B B _ _ _ _ _ _ _ _ _ _ _
497
        _ _ _ B _ _ _ B _ B _ B _ B _ B B B _ B B B _ B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ B B _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _
498
        _ B _ _ _ B _ _ B _ B _ B _ B _ _ B B B _ B B B _ _ _ B B _ _ _ B B B B B _ _ _ B B B B B _ _ _ B B B B _ B B _ B B B B B B B _ B B B B B _ _ _ B B B B _ B B _ _ _ B B _ B B _ B B B B _ B B _ B B B B B B B _ B B B B B B B _ B B B B B _ _ _ B B B B B _ _ _
499
        _ _ _ B _ _ _ B _ B _ B _ B _ B B B _ B B B _ B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _
500
        _ B _ _ _ B _ _ B _ B _ B _ B _ _ B B B _ B B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _
501
        _ _ _ B _ _ _ B _ B _ B _ B _ B B B _ B B B _ B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _
502
        _ B _ _ _ B _ _ B _ B _ B _ B _ _ B B B _ B B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _
503
        _ _ _ B _ _ _ B _ B _ B _ B _ B B B _ B B B _ B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _
504
        _ B _ _ _ B _ _ B _ B _ B _ B _ _ B B B _ B B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _
505
        _ _ _ B _ _ _ B _ B _ B _ B _ B B B _ B B B _ B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _
506
        _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _
507
        _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _
508
        _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _
509
        _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _
510
        _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _
511
        _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _
512
        _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B B B B _ _ B B _ B B _ _ _ B B _ B B B _ _ B B B B B B B B B B _ B B B B B B B B B B B _ _ B B _ B B B B B B B B B B B B B B B _ B B B B B B B B B B B
513
        _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
514
        _ _ _ B B B B B B B B B B B B B B B B B B B B B _ _ _ B B B B B B B B B B B B B B B B B B B B B _ _ _ B B B B B _ _ B B _ B B B _ _ B B B B B B _ _ B B _ B B B B B B B B B B B B B B B _ B B B _ _ B B _ B B B B B B B B B B B B B B B _ B B B B B B B B B B B
515
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _
516
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _
517
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _
518
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _
519
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _
520
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _
521
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _
522
        _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ B B B B B B B B B B B B
523
        _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ B B B B B B B B B B B B
524
        _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ B B B B B B B B B B B B
525
        _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ B B B B B B B B B B B B
526
        _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ B B B B B B B B B B B B
527
        _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ B B B B B B B B B B B B
528
        _ _ B B _ B B _ B B B B B B B B _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B B B B _ _ _ B B B B B _ _ _ _ _ _ _ _ _ _ B B _ B B _ B B B B B B B B _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ B B B B B B B B B B B B
529
        _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ B B B B B B B B B B B B
530
        B B B B B B B B B B B B B B B B B B B B B B B B _ _ B B B B B B _ _ _ B B B B B _ _ _ B B B B B _ _ B B B B B B B B B B B B B B B B B B B B B B B B B B B _ _ _ _ _ _ B B B B B B B B B B B B B B B B B B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _
531
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B B B B B B B B B B B B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _
532
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B B B B B B B B B B B B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _
533
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B B B B B B B B B B B B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _
534
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B B B B B B B B B B B B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _
535
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B B B B B B B B B B B B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _
536
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B B B B B B B B B B B B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _
537
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B B B B B B B B B B B B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _
538
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
539
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
540
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
541
        _ _ _ _ _ _ _ _ _ _ _ B B B _ _ B B B B B B B _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
542
        _ _ _ _ _ _ _ _ _ _ B _ _ _ B _ _ B _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _ B B B _ _ _ _ _ B B B _ _ _ _ _ B _ _ _ B _ _ _ _ _ _ _ _ _ _ _ B B B _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
543
        _ _ _ _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ B _ B _ _ _ B _ _ _ B _ _ _ B _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ B _ _ _ _ _ _ _ _ _ _ _ B B B B B _ _
544
        _ B B B _ B B _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ B B B B B B _ _ _ B _ _ _ _ _ _ _ B B B B B _ _ B _ _ _ _ B _ _ B B B B B B _ B _ _ B _ _ B _ B _ _ _ _ _ B _ B _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ B _ _ B _ _ _ B _ B _ _ _ B B B B B _ B _ _ _ _ _ B _
545
        B _ _ _ B _ _ _ _ B B B B B _ _ _ B _ _ _ _ _ _ _ _ B _ _ B _ _ _ _ _ B _ _ _ _ _ B _ _ _ B _ _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ B _ _ B _ B B B B B B B _ B _ _ _ _ _ B _ _ _ _ B B _ _ _ B _ B _ B _ B _ B _ _ B _ _ B _ _ B _ _ _ _ _ _ B _ _ _ _ _ B _
546
        B _ _ _ B _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ _ B _ _ B _ _ _ _ B _ _ _ _ _ _ B _ _ _ B _ _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ B _ _ B _ B _ _ _ _ _ B _ B _ _ _ _ _ B _ _ _ B _ _ B _ _ B _ _ B _ _ B _ B _ B _ _ _ B _ _ B B B B B _ _ B _ _ _ _ _ B _
547
        B _ _ _ B _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ _ B _ _ B _ _ _ B _ _ _ _ _ _ _ B _ _ _ B _ _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ B _ B _ _ _ B _ _ _ B _ _ _ B _ _ _ B _ _ _ B _ _ _ _ B _ B _ B _ B _ B _ _ B _ _ _ B _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ B _
548
        _ B B B _ B B _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ B B _ _ B _ _ B _ _ _ _ _ B _ _ _ B B B _ _ _ _ B B B B B _ _ _ _ _ B _ _ _ _ _ _ B B B _ _ _ _ _ B B B _ _ _ B B _ _ _ B B _ _ B _ _ _ _ B _ _ B _ _ _ B _ _ B _ B B B _ _ _ _ _ B B B B B _ B _ _ _ _ _ B _
549
        _ _ _ _ _ _ _ _ _ B B B B B _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B _
550
        _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
551
        _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
552
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
553
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
554
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
555
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _
556
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _
557
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ B B B _ _ _ _ B B _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _
558
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ B B _ _ B _ _ _ B B _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _
559
        B B B B B B B _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
560
        _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B _ _ B _ _ B _ _ B _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B _ _ B _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ B B B B _ _ _ _ _ B _ _ _ _
561
        B B B B B B B _ _ B B B B B _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ B B B B B B B _ _ _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ B B B _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ B _ _ _ _ B B B B _ _ _ _ _ B B B B _ _ _ _ B _ B _ _ _
562
        _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ B _ B _ _ _
563
        B B B B B B B _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B _ _ B _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ B _ _ _ _
564
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
565
        _ _ _ _ _ _ _ _ _ B B B B B _ _ _ B B B B B B _ _ B B B B B B _ _ _ _ B B _ _ _ B _ _ B B _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _
566
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _
567
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _
568
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _
569
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
570
};
571
#undef B
572
#undef _
573
 
574
 
575
// text styles
576
#define TEXTSTYLE_NONE          0
577
#define TEXTSTYLE_BOLD          (1 << 0)
578
#define TEXTSTYLE_DIM           (1 << 1)
579
#define TEXTSTYLE_ITALIC        (1 << 2)
580
#define TEXTSTYLE_UNDERLINE1    (1 << 3)
581
#define TEXTSTYLE_UNDERLINE2    (1 << 4)
582
#define TEXTSTYLE_STRIKETHROUGH (1 << 5)
583
 
584
 
585
// handy macros
586
#define ROUND_TO_MULTIPLE_OF_32(num) (((num) + 31) & -32) // this macro is valid for all multiples that are powers of 2
587
#define GET_NEXT_CHARACTER() (repeat_count > 0 ? (repeat_count--, current_char) : (accumulated_character_count > 0 ? accumulated_characters[(--accumulated_character_count, accumulated_character_index++)] : ((int) (accumulated_character_index = 0), getchar ())))
588
 
589
 
590
#if (SIZE_MAX != UINTPTR_MAX) // compile-time assertion
591
#error size_t is not aligned with natural integer size on this platform!
592
#endif
593
 
594
 
595
int main (int argc, char **argv)
596
{
597
        // program entrypoint
598
 
599
        typedef struct rbgtriple_s
600
        {
601
                int r;
602
                int g;
603
                int b;
604
        } rbgtriple_t;
605
 
606
        static const rbgtriple_t ansi_colors_normal[10] =
607
        {
608
                {   0,   0,   0 }, // 0: black
609
                { 153,   0,   0 }, // 1: red
610
                {   0, 166,   0 }, // 2: green
611
                { 153, 153,   0 }, // 3: yellow
612
                {   0,   0, 178 }, // 4: blue
613
                { 178,   0, 178 }, // 5: magenta
614
                {   0, 166, 178 }, // 6: cyan
615
                { 191, 191, 191 }, // 7: white
616
        };
617
        static const rbgtriple_t ansi_colors_bright[10] =
618
        {
619
                { 102, 102, 102 }, // 0: black
620
                { 230,   0,   0 }, // 1: red
621
                {   0, 217,   0 }, // 2: green
622
                { 230, 230,   0 }, // 3: yellow
623
                {   0,   0, 255 }, // 4: blue
624
                { 230,   0, 230 }, // 5: magenta
625
                {   0, 230, 230 }, // 6: cyan
626
                { 230, 230, 230 }, // 7: white
627
        };
628
        static const rbgtriple_t ansi_256_colors[256] = // regular 8-bit ANSI colors table
629
        {
630
                // standard colors
631
                { 0x00, 0x00, 0x00 }, { 0x80, 0x00, 0x00 }, { 0x00, 0x80, 0x00 }, { 0x80, 0x80, 0x00 }, { 0x00, 0x00, 0x80 }, { 0x80, 0x00, 0x80 }, { 0x00, 0x80, 0x80 }, { 0xc0, 0xc0, 0xc0 }, // 0-7
632
                // high intensity colors
633
                { 0x80, 0x80, 0x80 }, { 0xff, 0x00, 0x00 }, { 0x00, 0xff, 0x00 }, { 0xff, 0xff, 0x00 }, { 0x00, 0x00, 0xff }, { 0xff, 0x00, 0xff }, { 0x00, 0xff, 0xff }, { 0xff, 0xff, 0xff }, // 8-15
634
                // color cubes
635
                { 0x00, 0x00, 0x00 }, { 0x00, 0x00, 0x5f }, { 0x00, 0x00, 0x87 }, { 0x00, 0x00, 0xaf }, { 0x00, 0x00, 0xd7 }, { 0x00, 0x00, 0xff }, // 16-21
636
                { 0x00, 0x5f, 0x00 }, { 0x00, 0x5f, 0x5f }, { 0x00, 0x5f, 0x87 }, { 0x00, 0x5f, 0xaf }, { 0x00, 0x5f, 0xd7 }, { 0x00, 0x5f, 0xff }, // 22-27
637
                { 0x00, 0x87, 0x00 }, { 0x00, 0x87, 0x5f }, { 0x00, 0x87, 0x87 }, { 0x00, 0x87, 0xaf }, { 0x00, 0x87, 0xd7 }, { 0x00, 0x87, 0xff }, // 28-33
638
                { 0x00, 0xaf, 0x00 }, { 0x00, 0xaf, 0x5f }, { 0x00, 0xaf, 0x87 }, { 0x00, 0xaf, 0xaf }, { 0x00, 0xaf, 0xd7 }, { 0x00, 0xaf, 0xff }, // 34-39
639
                { 0x00, 0xd7, 0x00 }, { 0x00, 0xd7, 0x5f }, { 0x00, 0xd7, 0x87 }, { 0x00, 0xd7, 0xaf }, { 0x00, 0xd7, 0xd7 }, { 0x00, 0xd7, 0xff }, // 40-45
640
                { 0x00, 0xff, 0x00 }, { 0x00, 0xff, 0x5f }, { 0x00, 0xff, 0x87 }, { 0x00, 0xff, 0xaf }, { 0x00, 0xff, 0xd7 }, { 0x00, 0xff, 0xff }, // 46-51
641
                { 0x5f, 0x00, 0x00 }, { 0x5f, 0x00, 0x5f }, { 0x5f, 0x00, 0x87 }, { 0x5f, 0x00, 0xaf }, { 0x5f, 0x00, 0xd7 }, { 0x5f, 0x00, 0xff }, // 52-57
642
                { 0x5f, 0x5f, 0x00 }, { 0x5f, 0x5f, 0x5f }, { 0x5f, 0x5f, 0x87 }, { 0x5f, 0x5f, 0xaf }, { 0x5f, 0x5f, 0xd7 }, { 0x5f, 0x5f, 0xff }, // 58-63
643
                { 0x5f, 0x87, 0x00 }, { 0x5f, 0x87, 0x5f }, { 0x5f, 0x87, 0x87 }, { 0x5f, 0x87, 0xaf }, { 0x5f, 0x87, 0xd7 }, { 0x5f, 0x87, 0xff }, // 64-69
644
                { 0x5f, 0xaf, 0x00 }, { 0x5f, 0xaf, 0x5f }, { 0x5f, 0xaf, 0x87 }, { 0x5f, 0xaf, 0xaf }, { 0x5f, 0xaf, 0xd7 }, { 0x5f, 0xaf, 0xff }, // 70-75
645
                { 0x5f, 0xd7, 0x00 }, { 0x5f, 0xd7, 0x5f }, { 0x5f, 0xd7, 0x87 }, { 0x5f, 0xd7, 0xaf }, { 0x5f, 0xd7, 0xd7 }, { 0x5f, 0xd7, 0xff }, // 76-81
646
                { 0x5f, 0xff, 0x00 }, { 0x5f, 0xff, 0x5f }, { 0x5f, 0xff, 0x87 }, { 0x5f, 0xff, 0xaf }, { 0x5f, 0xff, 0xd7 }, { 0x5f, 0xff, 0xff }, // 82-87
647
                { 0x87, 0x00, 0x00 }, { 0x87, 0x00, 0x5f }, { 0x87, 0x00, 0x87 }, { 0x87, 0x00, 0xaf }, { 0x87, 0x00, 0xd7 }, { 0x87, 0x00, 0xff }, // 88-93
648
                { 0x87, 0x5f, 0x00 }, { 0x87, 0x5f, 0x5f }, { 0x87, 0x5f, 0x87 }, { 0x87, 0x5f, 0xaf }, { 0x87, 0x5f, 0xd7 }, { 0x87, 0x5f, 0xff }, // 94-99
649
                { 0x87, 0x87, 0x00 }, { 0x87, 0x87, 0x5f }, { 0x87, 0x87, 0x87 }, { 0x87, 0x87, 0xaf }, { 0x87, 0x87, 0xd7 }, { 0x87, 0x87, 0xff }, // 100-105
650
                { 0x87, 0xaf, 0x00 }, { 0x87, 0xaf, 0x5f }, { 0x87, 0xaf, 0x87 }, { 0x87, 0xaf, 0xaf }, { 0x87, 0xaf, 0xd7 }, { 0x87, 0xaf, 0xff }, // 106-111
651
                { 0x87, 0xd7, 0x00 }, { 0x87, 0xd7, 0x5f }, { 0x87, 0xd7, 0x87 }, { 0x87, 0xd7, 0xaf }, { 0x87, 0xd7, 0xd7 }, { 0x87, 0xd7, 0xff }, // 112-117
652
                { 0x87, 0xff, 0x00 }, { 0x87, 0xff, 0x5f }, { 0x87, 0xff, 0x87 }, { 0x87, 0xff, 0xaf }, { 0x87, 0xff, 0xd7 }, { 0x87, 0xff, 0xff }, // 118-123
653
                { 0xaf, 0x00, 0x00 }, { 0xaf, 0x00, 0x5f }, { 0xaf, 0x00, 0x87 }, { 0xaf, 0x00, 0xaf }, { 0xaf, 0x00, 0xd7 }, { 0xaf, 0x00, 0xff }, // 124-129
654
                { 0xaf, 0x5f, 0x00 }, { 0xaf, 0x5f, 0x5f }, { 0xaf, 0x5f, 0x87 }, { 0xaf, 0x5f, 0xaf }, { 0xaf, 0x5f, 0xd7 }, { 0xaf, 0x5f, 0xff }, // 130-135
655
                { 0xaf, 0x87, 0x00 }, { 0xaf, 0x87, 0x5f }, { 0xaf, 0x87, 0x87 }, { 0xaf, 0x87, 0xaf }, { 0xaf, 0x87, 0xd7 }, { 0xaf, 0x87, 0xff }, // 136-141
656
                { 0xaf, 0xaf, 0x00 }, { 0xaf, 0xaf, 0x5f }, { 0xaf, 0xaf, 0x87 }, { 0xaf, 0xaf, 0xaf }, { 0xaf, 0xaf, 0xd7 }, { 0xaf, 0xaf, 0xff }, // 142-147
657
                { 0xaf, 0xd7, 0x00 }, { 0xaf, 0xd7, 0x5f }, { 0xaf, 0xd7, 0x87 }, { 0xaf, 0xd7, 0xaf }, { 0xaf, 0xd7, 0xd7 }, { 0xaf, 0xd7, 0xff }, // 148-153
658
                { 0xaf, 0xff, 0x00 }, { 0xaf, 0xff, 0x5f }, { 0xaf, 0xff, 0x87 }, { 0xaf, 0xff, 0xaf }, { 0xaf, 0xff, 0xd7 }, { 0xaf, 0xff, 0xff }, // 154-159
659
                { 0xd7, 0x00, 0x00 }, { 0xd7, 0x00, 0x5f }, { 0xd7, 0x00, 0x87 }, { 0xd7, 0x00, 0xaf }, { 0xd7, 0x00, 0xd7 }, { 0xd7, 0x00, 0xff }, // 160-165
660
                { 0xd7, 0x5f, 0x00 }, { 0xd7, 0x5f, 0x5f }, { 0xd7, 0x5f, 0x87 }, { 0xd7, 0x5f, 0xaf }, { 0xd7, 0x5f, 0xd7 }, { 0xd7, 0x5f, 0xff }, // 166-171
661
                { 0xd7, 0x87, 0x00 }, { 0xd7, 0x87, 0x5f }, { 0xd7, 0x87, 0x87 }, { 0xd7, 0x87, 0xaf }, { 0xd7, 0x87, 0xd7 }, { 0xd7, 0x87, 0xff }, // 172-177
662
                { 0xd7, 0xaf, 0x00 }, { 0xd7, 0xaf, 0x5f }, { 0xd7, 0xaf, 0x87 }, { 0xd7, 0xaf, 0xaf }, { 0xd7, 0xaf, 0xd7 }, { 0xd7, 0xaf, 0xff }, // 178-183
663
                { 0xd7, 0xd7, 0x00 }, { 0xd7, 0xd7, 0x5f }, { 0xd7, 0xd7, 0x87 }, { 0xd7, 0xd7, 0xaf }, { 0xd7, 0xd7, 0xd7 }, { 0xd7, 0xd7, 0xff }, // 184-189
664
                { 0xd7, 0xff, 0x00 }, { 0xd7, 0xff, 0x5f }, { 0xd7, 0xff, 0x87 }, { 0xd7, 0xff, 0xaf }, { 0xd7, 0xff, 0xd7 }, { 0xd7, 0xff, 0xff }, // 190-195
665
                { 0xff, 0x00, 0x00 }, { 0xff, 0x00, 0x5f }, { 0xff, 0x00, 0x87 }, { 0xff, 0x00, 0xaf }, { 0xff, 0x00, 0xd7 }, { 0xff, 0x00, 0xff }, // 196-201
666
                { 0xff, 0x5f, 0x00 }, { 0xff, 0x5f, 0x5f }, { 0xff, 0x5f, 0x87 }, { 0xff, 0x5f, 0xaf }, { 0xff, 0x5f, 0xd7 }, { 0xff, 0x5f, 0xff }, // 202-207
667
                { 0xff, 0x87, 0x00 }, { 0xff, 0x87, 0x5f }, { 0xff, 0x87, 0x87 }, { 0xff, 0x87, 0xaf }, { 0xff, 0x87, 0xd7 }, { 0xff, 0x87, 0xff }, // 208-213
668
                { 0xff, 0xaf, 0x00 }, { 0xff, 0xaf, 0x5f }, { 0xff, 0xaf, 0x87 }, { 0xff, 0xaf, 0xaf }, { 0xff, 0xaf, 0xd7 }, { 0xff, 0xaf, 0xff }, // 214-219
669
                { 0xff, 0xd7, 0x00 }, { 0xff, 0xd7, 0x5f }, { 0xff, 0xd7, 0x87 }, { 0xff, 0xd7, 0xaf }, { 0xff, 0xd7, 0xd7 }, { 0xff, 0xd7, 0xff }, // 220-225
670
                { 0xff, 0xff, 0x00 }, { 0xff, 0xff, 0x5f }, { 0xff, 0xff, 0x87 }, { 0xff, 0xff, 0xaf }, { 0xff, 0xff, 0xd7 }, { 0xff, 0xff, 0xff }, // 226-231
671
                // grayscale
672
                { 0x08, 0x08, 0x08 }, { 0x12, 0x12, 0x12 }, { 0x1c, 0x1c, 0x1c }, { 0x26, 0x26, 0x26 }, { 0x30, 0x30, 0x30 }, { 0x3a, 0x3a, 0x3a }, // 232-
673
                { 0x44, 0x44, 0x44 }, { 0x4e, 0x4e, 0x4e }, { 0x58, 0x58, 0x58 }, { 0x60, 0x60, 0x60 }, { 0x66, 0x66, 0x66 }, { 0x76, 0x76, 0x76 }, //
674
                { 0x80, 0x80, 0x80 }, { 0x8a, 0x8a, 0x8a }, { 0x94, 0x94, 0x94 }, { 0x9e, 0x9e, 0x9e }, { 0xa8, 0xa8, 0xa8 }, { 0xb2, 0xb2, 0xb2 }, //
675
                { 0xbc, 0xbc, 0xbc }, { 0xc6, 0xc6, 0xc6 }, { 0xd0, 0xd0, 0xd0 }, { 0xda, 0xda, 0xda }, { 0xe4, 0xe4, 0xe4 }, { 0xee, 0xee, 0xee }  // -255
676
        };
677
        const rbgtriple_t default_foreground_color = { 127, 127, 127 }; // gray
678
        const rbgtriple_t default_background_color = {   0,   0,   0 }; // black
679
        const rbgtriple_t transparent_color        = {  -1,  -1,  -1 }; // transparent
680
        rbgtriple_t custom_foreground_color        = { 127, 127, 127 }; // gray
681
        rbgtriple_t custom_background_color        = {   0,   0,   0 }; // black
682
        const rbgtriple_t *fg_color = &default_foreground_color; // gray
683
        const rbgtriple_t *bg_color = &default_background_color; // black
684
        struct framebuffer_s
685
        {
686
                size_t base_address; // user-supplied
687
                size_t size_in_bytes; // user-supplied
688
                size_t width_in_pixels; // user-supplied
689
                size_t height_in_pixels; // user-supplied
690
                char pixel_format[5]; // user-supplied
691
 
692
                uint8_t *virtual_address; // calculated (result of mmap)
693
                rbgtriple_t pixel_indices; // red, green and blue pixel indices in a pixel DWORD (0, 1, 2 or 3) -- calculated out of a user-supplied format string
694
                size_t pixel_size_in_bytes; // calculated
695
                size_t stride_in_pixels; // calculated
696
                size_t stride_in_bytes; // calculated
697
 
698
                size_t max_character_lines; // calculated
699
                size_t max_character_columns; // calculated
700
                int cursor_line; // calculated
701
                int cursor_column; // calculated
702
                const uint8_t *characters_table_16x16_8x16; // calculated
703
                int text_style; // calculated
704
        } fb = { 0 };
705
 
706
        static char accumulated_characters[4096];
707
        size_t accumulated_character_index = 0;
708
        size_t accumulated_character_count = 0;
709
        size_t accumulated_character_startidx;
710
        size_t column_offset_in_framebuffer;
711
        size_t line_offset_in_framebuffer;
712
        size_t char_row_in_chartable;
713
        size_t char_col_in_chartable;
714
        size_t offset_in_framebuffer;
715
        size_t offset_in_chartable;
716
        size_t char_index;
717
        size_t char_curx;
718
        size_t char_cury;
719
        int current_char;
720
        int next_char;
721
        int escseq_integers[5];
722
        int final_taint;
723
        int character;
724
        int want_debuginfo;
725
        int is_pixel_lit;
726
        int is_backspace = 0;
727
        int repeat_count = 0;
728
        int code_count;
729
        int code_index;
730
        int row_index;
731
        png_struct *png;
732
        png_info *png_info_struct;
733
        char image_color_type;
734
        char image_bit_depth;
735
        char *confstr_word;
736
        int image_height;
737
        int image_width;
738
        int pixel_index;
739
        int is_eos;
740
        uint8_t *image_row;
741
        FILE *fp;
742
 
743
        // tell if we want debug info by looking for the presence of a FRAMEBUFFER_DEBUG environment variable
744
        want_debuginfo = (getenv ("FRAMEBUFFER_DEBUG") != NULL);
745
 
746
        // check that we have all that we need
747
        if (argc == 6)
748
        {
749
                // collect linear framebuffer parameters from command-line arguments if available
750
                fb.base_address     = strtoul (argv[1], NULL, 0);
751
                fb.size_in_bytes    = strtoul (argv[2], NULL, 0);
752
                fb.width_in_pixels  = strtoul (argv[3], NULL, 0);
753
                fb.height_in_pixels = strtoul (argv[4], NULL, 0);
754
                strcpy (fb.pixel_format, argv[5]);
755
        }
756
#ifdef _CS_GRAPHICS
757
        else if (confstr (_CS_GRAPHICS, accumulated_characters, sizeof (accumulated_characters)) > 0)
758
        {
759
                // else (if not supplied from the command line) read them from the _CS_GRAPHICS confstr if available
760
                confstr_word = accumulated_characters; // parse _CS_GRAPHICS configuration string value and stop at each word separator
761
                for (char_index = 0; char_index < sizeof (accumulated_characters); char_index++)
762
                        if ((strchr (" \t_", accumulated_characters[char_index]) != NULL) || (accumulated_characters[char_index] == 0))
763
                        {
764
                                is_eos = (accumulated_characters[char_index] == 0); // see if we're at end of string
765
                                accumulated_characters[char_index] = 0; // split the conf string at each word separation
766
                                if      (fb.base_address     == 0) fb.base_address     = strtoul (confstr_word, NULL, 0);
767
                                else if (fb.size_in_bytes    == 0) fb.size_in_bytes    = strtoul (confstr_word, NULL, 0);
768
                                else if (fb.width_in_pixels  == 0) fb.width_in_pixels  = strtoul (confstr_word, NULL, 0);
769
                                else if (fb.height_in_pixels == 0) fb.height_in_pixels = strtoul (confstr_word, NULL, 0);
770
                                else if (fb.pixel_format[0]  == 0) strcpy (fb.pixel_format, confstr_word);
771
                                if (is_eos)
772
                                        break; // if end of string is reached, stop parsing
773
                                confstr_word = &accumulated_characters[char_index + 1]; // else remember where the next word starts
774
                        }
775
        }
776
#endif // _CS_GRAPHICS
777
 
778
        // do we have NO framebuffer specification ?
779
        if (fb.base_address == 0)
780
        {
781
                if ((argc < 2) || ((strcmp (argv[1], "-?") != 0) && (strcmp (argv[1], "--help") != 0)))
782
                        fprintf (stderr, "error: must specify framebuffer address, size, and pixel format (or set the _CS_GRAPHICS configuration string to 'fbaddr_fbsize_width_height_pixfmt')\n");
783
                else
784
                        fprintf (stdout, "Linear framebuffer printer for QNX 8.0 by Pierre-Marie Baty <pm@pmbaty.com>\n");
785
 
786
                fprintf (stdout, "\n");
787
                fprintf (stdout, "usage (_CS_GRAPHICS set to 'fbaddr_fbsize_width_height_pixfmt'):\n");
788
                fprintf (stdout, "   <pipe>|fbwrite\n");
789
                fprintf (stdout, "usage (_CS_GRAPHICS not set):\n");
790
                fprintf (stdout, "   <pipe>|fbwrite <fbaddr> <fbsize> <width> <height> <pixfmt>\n");
791
                fprintf (stdout, "example:\n");
792
                fprintf (stdout, "   printf 'Hello world!'|fbwrite 0x400000000 1920000 800 600 BGRx\n");
793
                fprintf (stdout, "Most control chars and ANSI escape sequences are supported, with additions.\n");
794
                fprintf (stdout, "   addition: transparent foreground color:  ESC[38;5;256m\n");
795
                fprintf (stdout, "   addition: transparent background color:  ESC[48;5;256m\n");
796
                fprintf (stdout, "   addition: draw image at cursor location: ESC]1;<image_pathname>BEL\n");
797
                fprintf (stdout, "Debug info is printed if the FRAMEBUFFER_DEBUG environment variable is present.\n");
798
                exit (EXIT_FAILURE);
799
        }
800
 
801
        // consistency checks
802
        if ((fb.size_in_bytes == 0) || (fb.width_in_pixels == 0) || (fb.height_in_pixels == 0))
803
        {
804
                fprintf (stderr, "error: neither the framebuffer size in bytes, nor width in pixels nor height in pixels can be zero\n");
805
                exit (EXIT_FAILURE);
806
        }
807
 
808
        // compute framebuffer stride based on byte size and pixel height
809
        fb.pixel_size_in_bytes = strlen (fb.pixel_format);
810
        if ((fb.pixel_size_in_bytes < 1) || (fb.pixel_size_in_bytes > 4))
811
        {
812
                fprintf (stderr, "error: invalid/unsupported pixel size (%zd) from pixel format '%s'\n", fb.pixel_size_in_bytes, fb.pixel_format);
813
                exit (EXIT_FAILURE);
814
        }
815
        fb.stride_in_bytes  = fb.size_in_bytes / fb.height_in_pixels;
816
        fb.stride_in_pixels = fb.stride_in_bytes / fb.pixel_size_in_bytes;
817
 
818
        // compute max character lines and columns in framebuffer
819
        fb.max_character_lines = fb.height_in_pixels / CHAR_PIXELS_H;
820
        fb.max_character_columns = fb.width_in_pixels / CHAR_PIXELS_W;
821
 
822
        // compute red, green and blue offsets in a single pixel
823
        for (char_index = 0; char_index < fb.pixel_size_in_bytes; char_index++)
824
        {
825
                character = fb.pixel_format[char_index];
826
                if      ((character == 'R') || (character == 'r')) fb.pixel_indices.r = char_index;
827
                else if ((character == 'G') || (character == 'g')) fb.pixel_indices.g = char_index;
828
                else if ((character == 'B') || (character == 'b')) fb.pixel_indices.b = char_index;
829
        }
830
 
831
        // make the light font the default font
832
        fb.characters_table_16x16_8x16 = characters_table_16x16_8x16_light;
833
 
834
        // map the passed physical address to a virtual memory region
835
        fb.virtual_address = mmap (NULL, fb.size_in_bytes, PROT_READ | PROT_WRITE | PROT_NOCACHE, MAP_SHARED | MAP_PHYS, NOFD, fb.base_address);
836
        if (fb.virtual_address == NULL)
837
        {
838
                fprintf (stderr, "fatal: can't mmap() %zd bytes of framebuffer at 0x%zx\n", fb.size_in_bytes, fb.base_address);
839
                while (getchar () != EOF)
840
                        ; // when we die because of a mmap() failure, we don't want to break the input pipe as this would terminate all feeding processes, so sink everything into oblivion
841
                exit (EXIT_FAILURE); // once we've received a hangup signal, we can safely commit suicide in a low-carbon, green and Earth-friendly manner.
842
        }
843
 
844
        // dump framebuffer info if requested
845
        if (want_debuginfo)
846
        {
847
                fprintf (stderr, "Framebuffer info:\n");
848
                fprintf (stderr, "      base address: 0x%zx\n", fb.base_address);
849
                fprintf (stderr, "      size in bytes: %zd\n", fb.size_in_bytes);
850
                fprintf (stderr, "      width in pixels: %zd\n", fb.width_in_pixels);
851
                fprintf (stderr, "      height in pixels: %zd\n", fb.height_in_pixels);
852
                fprintf (stderr, "      pixel format: '%s'\n", fb.pixel_format);
853
                fprintf (stderr, "      red pixel index: %d\n", fb.pixel_indices.r); // calculated
854
                fprintf (stderr, "      red pixel index: %d\n", fb.pixel_indices.g); // calculated
855
                fprintf (stderr, "      red pixel index: %d\n", fb.pixel_indices.b); // calculated
856
                fprintf (stderr, "      virtual address: 0x%zx\n", (size_t) fb.virtual_address); // calculated (result of mmap)
857
                fprintf (stderr, "      pixel size in bytes: %zd\n", fb.pixel_size_in_bytes); // calculated
858
                fprintf (stderr, "      stride in pixels: %zd\n", fb.stride_in_pixels); // calculated
859
                fprintf (stderr, "      stride in bytes: %zd\n", fb.stride_in_bytes); // calculated
860
                fprintf (stderr, "      max character lines: %zd\n", fb.max_character_lines); // calculated
861
                fprintf (stderr, "      max character columns: %zd\n", fb.max_character_columns); // calculated
862
                fprintf (stderr, "      cursor line: %d\n", fb.cursor_line); // calculated
863
                fprintf (stderr, "      cursor column: %d\n", fb.cursor_column); // calculated
864
        }
865
 
866
        // read characters, either repeating the current one, or unwinding the accumulator, or from stdin
867
        while ((current_char = GET_NEXT_CHARACTER ()) != EOF)
868
        {
869
                // is it a special character ?
870
                if (current_char == '\x07') // bell
871
                {
872
#ifdef __QNXNTO__
873
                        static size_t pit = 0;
874
                        static size_t kbd = 0;
875
                        uint8_t byte;
876
                        if (pit == 0)
877
                        {
878
                                ThreadCtl (_NTO_TCTL_IO_LEVEL, (void *) _NTO_IO_LEVEL_1); // give ourselves hardware I/O privileges
879
                                pit = mmap_device_io (sizeof (size_t), 0x40); // map 8 bytes at address 0x40 (programmable interrupt timer)
880
                                kbd = mmap_device_io (sizeof (size_t), 0x60); // map 8 bytes at address 0x60 (keyboard controller)
881
                        }
882
                        out8 (pit + 3, 0xb6); // set the PC speaker to output a square wave PCM
883
                        out8 (pit + 2, (uint8_t) ((uint16_t) (1193180 / 440) >> 0)); // set the PC speaker period: low byte
884
                        out8 (pit + 2, (uint8_t) ((uint16_t) (1193180 / 440) >> 8)); // set the PC speaker period: high byte
885
                        byte = in8 (kbd + 1); // read PC speaker state
886
                        if (byte != (byte | 3))
887
                                out8 (kbd + 1, byte | 3); // start beeping if necessary
888
                        usleep (100 * 1000); // wait 100 milliseconds
889
                        out8 (kbd + 1, in8 (kbd + 1) & 0xfc); // stop the PC speaker
890
#endif // __QNXNTO__
891
                        if (want_debuginfo)
892
                                fprintf (stderr, "Received bell\n");
893
                        continue; // and proceed to the next character
894
                }
895
                else if (current_char == '\x08') // backspace
896
                {
897
                        if (fb.cursor_column == 0) // back up one character with line wraparound
898
                        {
899
                                if (fb.cursor_line > 0) // can we move to the previous line?
900
                                {
901
                                        fb.cursor_line--; // move one line up
902
                                        fb.cursor_column = fb.max_character_columns - 1; // position at end of line
903
                                }
904
                        }
905
                        else
906
                                fb.cursor_column--; // back up one character
907
                        current_char = ' '; // and erase it
908
                        is_backspace = 1; // remember not to advance the cursor
909
                        if (want_debuginfo)
910
                                fprintf (stderr, "Received backspace\n");
911
                }
912
                else if (current_char == '\t') // tab
913
                {
914
                        current_char = ' '; // turn tabs to spaces
915
                        repeat_count = 7; // and repeat them 8 times
916
                        if (want_debuginfo)
917
                                fprintf (stderr, "Received tab\n");
918
                }
919
                else if (current_char == '\n') // line feed
920
                {
921
                        fb.cursor_line++; // jump down to next line
922
                        fb.cursor_column = 0; // reset cursor to beginning of line
923
                        if (want_debuginfo)
924
                                fprintf (stderr, "Received newline\n");
925
                        continue; // and proceed to the next character
926
                }
927
                else if (current_char == '\x0c') // form feed
928
                {
929
                        memset (fb.virtual_address, 0, fb.size_in_bytes); // clear entire scren
930
                        fb.cursor_line = 0; // move cursor vertically to top of screen
931
                        if (want_debuginfo)
932
                                fprintf (stderr, "Received form feed\n");
933
                        continue; // and proceed to the next character
934
                }
935
                else if (current_char == '\r') // carriage return
936
                {
937
                        fb.cursor_column = 0; // if so, reset cursor to beginning of line
938
                        if (want_debuginfo)
939
                                fprintf (stderr, "Received carriage return\n");
940
                        continue; // and proceed to the next character
941
                }
942
                else if (current_char == '\x1b') // possible sequence
943
                {
944
                        next_char = getchar (); // read one character in advance
945
                        if (next_char == EOF)
946
                                break; // end of stream
947
                        else if (accumulated_character_count < sizeof (accumulated_characters))
948
                        {
949
                                accumulated_character_startidx = accumulated_character_count; // remember where the accumulated data starts
950
                                accumulated_characters[accumulated_character_count++] = next_char; // accumulate it
951
 
952
                                if (next_char == ']') // possible OSC sequence
953
                                {
954
                                        if (want_debuginfo)
955
                                                fprintf (stderr, "Received possible OSC escape sequence\n");
956
 
957
                                        // read characters in the accumulator until we find a BEL (in case of OSC sequences the terminator is a BEL code)
958
                                        while (((next_char = getchar ()) != EOF) && (next_char != 0x07) && (accumulated_character_count + 1 < sizeof (accumulated_characters)))
959
                                                accumulated_characters[accumulated_character_count++] = next_char; // accumulate it
960
                                        if (next_char == EOF)
961
                                                break; // end of stream
962
                                        else if (accumulated_character_count + 1 == sizeof (accumulated_characters))
963
                                                fprintf (stderr, "warning: character accumulator full while reading possible OSC escape sequence. Unwinding.\n");
964
                                        else // it's a BEL and the accumulator is not full yet
965
                                        {
966
                                                accumulated_characters[accumulated_character_count] = 0; // terminate the accumulated string ourselves
967
 
968
                                                // see what sort of OSC sequence this is
969
                                                if (strncmp (&accumulated_characters[accumulated_character_startidx], "]1;", 3) == 0) // set icon name (i.e. background picture name)
970
                                                {
971
                                                        fp = fopen (&accumulated_characters[accumulated_character_startidx + 3], "rb"); // attempt to open the icon file
972
                                                        if (fp != NULL)
973
                                                        {
974
                                                                image_row = NULL;
975
                                                                png = png_create_read_struct (PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
976
                                                                png_info_struct = png_create_info_struct (png);
977
                                                                if ((png != NULL) && (png_info_struct != NULL) && (setjmp (png_jmpbuf (png)) == 0))
978
                                                                {
979
                                                                        png_init_io (png, fp); // read and convert any color_type into 8bit depth, RGBA format - see http://www.libpng.org/pub/png/libpng-manual.txt
980
                                                                        png_read_info (png, png_info_struct);
981
                                                                        image_color_type = png_get_color_type (png, png_info_struct);
982
                                                                        image_bit_depth = png_get_bit_depth (png, png_info_struct);
983
                                                                        if (image_bit_depth == 16)
984
                                                                                png_set_strip_16 (png); // convert all 16-bit samples to 8-bit
985
                                                                        if (image_color_type == PNG_COLOR_TYPE_PALETTE)
986
                                                                                png_set_palette_to_rgb (png); // convert all palette indexes to RGB colors
987
                                                                        if ((image_color_type == PNG_COLOR_TYPE_GRAY) && (image_bit_depth < 8))
988
                                                                                png_set_expand_gray_1_2_4_to_8 (png); // convert all low bit depth grayscales to 8 bits (note: PNG_COLOR_TYPE_GRAY_ALPHA is always 8 or 16bit depth)
989
                                                                        if (png_get_valid (png, png_info_struct, PNG_INFO_tRNS))
990
                                                                                png_set_tRNS_to_alpha (png); // convert all tRNS transparency chunks to an alpha channel
991
                                                                        if ((image_color_type == PNG_COLOR_TYPE_RGB) || (image_color_type == PNG_COLOR_TYPE_GRAY) || (image_color_type == PNG_COLOR_TYPE_PALETTE))
992
                                                                                png_set_filler (png, 0xFF, PNG_FILLER_AFTER); // set 0xff as the alpha value of all color types that don't have an alpha channel
993
                                                                        if ((image_color_type == PNG_COLOR_TYPE_GRAY) || (image_color_type == PNG_COLOR_TYPE_GRAY_ALPHA))
994
                                                                                png_set_gray_to_rgb (png); // convert all grayscale color types to RGB
995
                                                                        png_read_update_info (png, png_info_struct); // commit our changes to the PNG info structure
996
                                                                        image_width = png_get_image_width (png, png_info_struct);
997
                                                                        image_height = png_get_image_height (png, png_info_struct);
998
                                                                        image_row = (uint8_t *) malloc (png_get_rowbytes (png, png_info_struct)); // we'll be reading one row at a time: allocate space for one
999
                                                                        if (image_row != NULL)
1000
                                                                        {
1001
                                                                                if ((fb.cursor_column * CHAR_PIXELS_W) + image_width > fb.width_in_pixels)
1002
                                                                                        image_width = fb.width_in_pixels - fb.cursor_column; // cap image width so that it doesn't extend past the framebuffer on the right
1003
                                                                                for (row_index = 0; row_index < image_height; row_index++)
1004
                                                                                {
1005
                                                                                        // compute the offset of the concerned line in the framebuffer
1006
                                                                                        line_offset_in_framebuffer = ((fb.cursor_line * CHAR_PIXELS_H) + row_index) * fb.stride_in_bytes;
1007
                                                                                        if (line_offset_in_framebuffer > fb.size_in_bytes)
1008
                                                                                                break; // don't draw past the bottom of the framebuffer
1009
                                                                                        png_read_row (png, image_row, NULL); // read one scanline at a time and draw it onto the framebuffer
1010
                                                                                        for (pixel_index = 0; pixel_index < image_width; pixel_index++)
1011
                                                                                        {
1012
                                                                                                // compute the offset of the concerned column in the framebuffer and draw the pixel
1013
                                                                                                column_offset_in_framebuffer = ((fb.cursor_column * CHAR_PIXELS_W) + pixel_index) * fb.pixel_size_in_bytes;
1014
                                                                                                offset_in_framebuffer = line_offset_in_framebuffer + column_offset_in_framebuffer;
1015
                                                                                                fb.virtual_address[offset_in_framebuffer + fb.pixel_indices.r] = image_row[4 * pixel_index + 0]; // red
1016
                                                                                                fb.virtual_address[offset_in_framebuffer + fb.pixel_indices.g] = image_row[4 * pixel_index + 1]; // green
1017
                                                                                                fb.virtual_address[offset_in_framebuffer + fb.pixel_indices.b] = image_row[4 * pixel_index + 2]; // blue
1018
                                                                                        }
1019
                                                                                }
1020
                                                                        }
1021
                                                                        else
1022
                                                                                fprintf (stderr, "error: can't allocate enough memory for PNG row\n");
1023
                                                                }
1024
                                                                else
1025
                                                                        fprintf (stderr, "error: can't read '%s': invalid/unsupported PNG image\n", &accumulated_characters[accumulated_character_startidx + 3]);
1026
                                                                if (image_row != NULL)
1027
                                                                        free (image_row); // free the single scanline buffer
1028
                                                                fclose (fp); // close the input file
1029
                                                        }
1030
                                                        else
1031
                                                                fprintf (stderr, "error: can't open '%s': %s\n", &accumulated_characters[accumulated_character_startidx + 3], strerror (errno));
1032
 
1033
                                                        accumulated_character_count = accumulated_character_startidx; // rewind the accumulator
1034
                                                        continue; // and proceed to the next character
1035
                                                }
1036
                                                else
1037
                                                        accumulated_characters[accumulated_character_count++] = next_char; // not a supported OSC sequence, restore BEL terminator into the accumulator
1038
                                        }
1039
                                }
1040
                                else if (next_char == '[') // possible ANSI escape sequence
1041
                                {
1042
                                        if (want_debuginfo)
1043
                                                fprintf (stderr, "Received possible ANSI escape sequence\n");
1044
 
1045
                                        // read characters in the accumulator until we find a something that's NOT a number nor a semicolon (in case of ANSI sequences the terminator is a letter)
1046
                                        while (((next_char = getchar ()) != EOF) && (isdigit (next_char) || (next_char == ';')) && (accumulated_character_count + 1 < sizeof (accumulated_characters)))
1047
                                                accumulated_characters[accumulated_character_count++] = next_char; // accumulate it
1048
                                        if (next_char == EOF)
1049
                                                break; // end of stream
1050
                                        else if (accumulated_character_count + 1 == sizeof (accumulated_characters))
1051
                                                fprintf (stderr, "warning: character accumulator full while reading possible ANSI escape sequence. Unwinding.\n");
1052
                                        else // it's a terminator character and the accumulator is not full yet
1053
                                        {
1054
                                                accumulated_characters[accumulated_character_count] = 0; // terminate the accumulated string ourselves
1055
 
1056
                                                // see what sort of ANSI escape sequence this is
1057
                                                if (next_char == 'A') // CUU: move cursor up
1058
                                                {
1059
                                                        if (sscanf (&accumulated_characters[accumulated_character_startidx + 1], "%d", &escseq_integers[0]) != 1)
1060
                                                                escseq_integers[0] = 1; // read optional value (default to 1)
1061
                                                        if (want_debuginfo)
1062
                                                                fprintf (stderr, "Identified CUU:%d escape sequence\n", escseq_integers[0]);
1063
                                                        fb.cursor_line = (escseq_integers[0] > fb.cursor_line ? 0 : fb.cursor_line - escseq_integers[0]); // move cursor up N lines
1064
                                                        accumulated_character_count = accumulated_character_startidx; // rewind the accumulator
1065
                                                        continue; // and proceed to next character
1066
                                                }
1067
                                                else if (next_char == 'B') // CUD: move cursor down
1068
                                                {
1069
                                                        if (sscanf (&accumulated_characters[accumulated_character_startidx + 1], "%d", &escseq_integers[0]) != 1)
1070
                                                                escseq_integers[0] = 1; // read optional value (default to 1)
1071
                                                        if (want_debuginfo)
1072
                                                                fprintf (stderr, "Identified CUD:%d escape sequence\n", escseq_integers[0]);
1073
                                                        fb.cursor_line = (fb.cursor_line + escseq_integers[0] < fb.max_character_lines - 1 ? fb.cursor_line + escseq_integers[0] : fb.max_character_lines - 1); // move cursor down N lines
1074
                                                        accumulated_character_count = accumulated_character_startidx; // rewind the accumulator
1075
                                                        continue; // and proceed to next character
1076
                                                }
1077
                                                else if (next_char == 'C') // CUF: move cursor forward
1078
                                                {
1079
                                                        if (sscanf (&accumulated_characters[accumulated_character_startidx + 1], "%d", &escseq_integers[0]) != 1)
1080
                                                                escseq_integers[0] = 1; // read optional value (default to 1)
1081
                                                        if (want_debuginfo)
1082
                                                                fprintf (stderr, "Identified CUF:%d escape sequence\n", escseq_integers[0]);
1083
                                                        fb.cursor_column = (fb.cursor_column + escseq_integers[0] < fb.max_character_columns - 1 ? fb.cursor_column + escseq_integers[0] : fb.max_character_columns - 1); // move cursor right N columns
1084
                                                        accumulated_character_count = accumulated_character_startidx; // rewind the accumulator
1085
                                                        continue; // and proceed to next character
1086
                                                }
1087
                                                else if (next_char == 'D') // CUB: move cursor backwards
1088
                                                {
1089
                                                        if (sscanf (&accumulated_characters[accumulated_character_startidx + 1], "%d", &escseq_integers[0]) != 1)
1090
                                                                escseq_integers[0] = 1; // read optional value (default to 1)
1091
                                                        if (want_debuginfo)
1092
                                                                fprintf (stderr, "Identified CUB:%d escape sequence\n", escseq_integers[0]);
1093
                                                        fb.cursor_column = (escseq_integers[0] > fb.cursor_column ? 0 : fb.cursor_column - escseq_integers[0]); // move cursor left N columns
1094
                                                        accumulated_character_count = accumulated_character_startidx; // rewind the accumulator
1095
                                                        continue; // and proceed to next character
1096
                                                }
1097
                                                else if (next_char == 'E') // CNL: move cursor at beginning of next line
1098
                                                {
1099
                                                        if (sscanf (&accumulated_characters[accumulated_character_startidx + 1], "%d", &escseq_integers[0]) != 1)
1100
                                                                escseq_integers[0] = 1; // read optional value (default to 1)
1101
                                                        if (want_debuginfo)
1102
                                                                fprintf (stderr, "Identified CNL:%d escape sequence\n", escseq_integers[0]);
1103
                                                        fb.cursor_line = (fb.cursor_line + escseq_integers[0] < fb.max_character_lines - 1 ? fb.cursor_line + escseq_integers[0] : fb.max_character_lines - 1); // move cursor one line down
1104
                                                        fb.cursor_column = 0; // set cursor at beginning of line
1105
                                                        accumulated_character_count = accumulated_character_startidx; // rewind the accumulator
1106
                                                        continue; // and proceed to next character
1107
                                                }
1108
                                                else if (next_char == 'F') // CPL: move cursor at beginning of previous line
1109
                                                {
1110
                                                        if (sscanf (&accumulated_characters[accumulated_character_startidx + 1], "%d", &escseq_integers[0]) != 1)
1111
                                                                escseq_integers[0] = 1; // read optional value (default to 1)
1112
                                                        if (want_debuginfo)
1113
                                                                fprintf (stderr, "Identified CPL:%d escape sequence\n", escseq_integers[0]);
1114
                                                        fb.cursor_line = (escseq_integers[0] > fb.cursor_line ? 0 : fb.cursor_line - escseq_integers[0]); // move cursor one line up
1115
                                                        fb.cursor_column = 0; // set cursor at beginning of line
1116
                                                        accumulated_character_count = accumulated_character_startidx; // rewind the accumulator
1117
                                                        continue; // and proceed to next character
1118
                                                }
1119
                                                else if (next_char == 'G') // CHA: move cursor at horizontal absolute position
1120
                                                {
1121
                                                        if (sscanf (&accumulated_characters[accumulated_character_startidx + 1], "%d", &escseq_integers[0]) != 1)
1122
                                                                escseq_integers[0] = 1; // read optional value (default to 1)
1123
                                                        if (want_debuginfo)
1124
                                                                fprintf (stderr, "Identified CHA:%d escape sequence\n", escseq_integers[0]);
1125
                                                        fb.cursor_column = (escseq_integers[0] - 1 < fb.max_character_columns - 1 ? escseq_integers[0] - 1 : fb.max_character_columns - 1); // move cursor at the desired column
1126
                                                        accumulated_character_count = accumulated_character_startidx; // rewind the accumulator
1127
                                                        continue; // and proceed to next character
1128
                                                }
1129
                                                else if (next_char == 'H') // CUP: move cursor at absolute position
1130
                                                {
1131
                                                        if (sscanf (&accumulated_characters[accumulated_character_startidx + 1], "%d;%d", &escseq_integers[0], &escseq_integers[1]) != 1)
1132
                                                        {
1133
                                                                escseq_integers[1] = 1; // read optional value (default to 1)
1134
                                                                if (sscanf (&accumulated_characters[accumulated_character_startidx + 1], "%d", &escseq_integers[0]) != 1)
1135
                                                                        escseq_integers[0] = 1; // read optional value (default to 1)
1136
                                                        }
1137
                                                        if (want_debuginfo)
1138
                                                                fprintf (stderr, "Identified CUP:%d:%d escape sequence\n", escseq_integers[0], escseq_integers[0]);
1139
                                                        fb.cursor_line   = (escseq_integers[0] - 1 < fb.max_character_lines   - 1 ? escseq_integers[0] - 1 : fb.max_character_lines   - 1); // move cursor at the desired line
1140
                                                        fb.cursor_column = (escseq_integers[1] - 1 < fb.max_character_columns - 1 ? escseq_integers[1] - 1 : fb.max_character_columns - 1); // move cursor at the desired column
1141
                                                        accumulated_character_count = accumulated_character_startidx; // rewind the accumulator
1142
                                                        continue; // and proceed to next character
1143
                                                }
1144
                                                else if (next_char == 'J') // ED: erase part of display
1145
                                                {
1146
                                                        if (sscanf (&accumulated_characters[accumulated_character_startidx + 1], "%d", &escseq_integers[0]) != 1)
1147
                                                                escseq_integers[0] = 0; // read optional value (default to 1)
1148
                                                        if (want_debuginfo)
1149
                                                                fprintf (stderr, "Identified ED:%d escape sequence\n", escseq_integers[0]);
1150
                                                        if (escseq_integers[0] == 0)
1151
                                                        {
1152
                                                                for (row_index = 0; row_index < CHAR_PIXELS_H; row_index++)
1153
                                                                {
1154
                                                                        line_offset_in_framebuffer = (fb.cursor_line * CHAR_PIXELS_H + row_index) * fb.stride_in_bytes; // line offset of cursor
1155
                                                                        column_offset_in_framebuffer = (fb.cursor_column * CHAR_PIXELS_W) * fb.pixel_size_in_bytes; // column offset of cursor
1156
                                                                        memset (&fb.virtual_address[line_offset_in_framebuffer + column_offset_in_framebuffer], 0, fb.stride_in_bytes - column_offset_in_framebuffer); // erase from cursor to end of line
1157
                                                                }
1158
                                                                offset_in_framebuffer = (fb.cursor_line + 1) * CHAR_PIXELS_H * fb.stride_in_bytes; // offset of next character line
1159
                                                                memset (&fb.virtual_address[offset_in_framebuffer], 0, fb.size_in_bytes - offset_in_framebuffer); // erase from next line to end of screen
1160
                                                        }
1161
                                                        else if (escseq_integers[0] == 1)
1162
                                                        {
1163
                                                                offset_in_framebuffer = fb.cursor_line * CHAR_PIXELS_H * fb.stride_in_bytes; // offset of beginning of current line
1164
                                                                memset (&fb.virtual_address[0], 0, offset_in_framebuffer); // erase from start of screen to beginning of current line
1165
                                                                for (row_index = 0; row_index < CHAR_PIXELS_H; row_index++)
1166
                                                                {
1167
                                                                        line_offset_in_framebuffer = (fb.cursor_line * CHAR_PIXELS_H + row_index) * fb.stride_in_bytes; // line offset of cursor
1168
                                                                        column_offset_in_framebuffer = (fb.cursor_column * CHAR_PIXELS_W) * fb.pixel_size_in_bytes; // column offset of cursor
1169
                                                                        memset (&fb.virtual_address[line_offset_in_framebuffer], 0, column_offset_in_framebuffer); // erase from beginning of line to cursor
1170
                                                                }
1171
                                                        }
1172
                                                        else if ((escseq_integers[0] == 2) || (escseq_integers[0] == 3))
1173
                                                                memset (fb.virtual_address, 0, fb.size_in_bytes); // clear entire scren
1174
                                                        accumulated_character_count = accumulated_character_startidx; // rewind the accumulator
1175
                                                        continue; // and proceed to next character
1176
                                                }
1177
                                                else if (next_char == 'K') // EL: erase part of line
1178
                                                {
1179
                                                        if (sscanf (&accumulated_characters[accumulated_character_startidx + 1], "%d", &escseq_integers[0]) != 1)
1180
                                                                escseq_integers[0] = 0; // read optional value (default to 1)
1181
                                                        if (want_debuginfo)
1182
                                                                fprintf (stderr, "Identified EL:%d escape sequence\n", escseq_integers[0]);
1183
                                                        if (escseq_integers[0] == 0)
1184
                                                        {
1185
                                                                for (row_index = 0; row_index < CHAR_PIXELS_H; row_index++)
1186
                                                                {
1187
                                                                        line_offset_in_framebuffer = (fb.cursor_line * CHAR_PIXELS_H + row_index) * fb.stride_in_bytes; // line offset of cursor
1188
                                                                        column_offset_in_framebuffer = (fb.cursor_column * CHAR_PIXELS_W) * fb.pixel_size_in_bytes; // column offset of cursor
1189
                                                                        memset (&fb.virtual_address[line_offset_in_framebuffer + column_offset_in_framebuffer], 0, fb.stride_in_bytes - column_offset_in_framebuffer); // erase from cursor to end of line
1190
                                                                }
1191
                                                        }
1192
                                                        else if (escseq_integers[0] == 1)
1193
                                                        {
1194
                                                                for (row_index = 0; row_index < CHAR_PIXELS_H; row_index++)
1195
                                                                {
1196
                                                                        line_offset_in_framebuffer = (fb.cursor_line * CHAR_PIXELS_H + row_index) * fb.stride_in_bytes; // line offset of cursor
1197
                                                                        column_offset_in_framebuffer = (fb.cursor_column * CHAR_PIXELS_W) * fb.pixel_size_in_bytes; // column offset of cursor
1198
                                                                        memset (&fb.virtual_address[line_offset_in_framebuffer], 0, column_offset_in_framebuffer); // erase from beginning of line to cursor
1199
                                                                }
1200
                                                        }
1201
                                                        else if ((escseq_integers[0] == 2) || (escseq_integers[0] == 3))
1202
                                                        {
1203
                                                                for (row_index = 0; row_index < CHAR_PIXELS_H; row_index++)
1204
                                                                {
1205
                                                                        line_offset_in_framebuffer = (fb.cursor_line * CHAR_PIXELS_H + row_index) * fb.stride_in_bytes; // line offset of cursor
1206
                                                                        memset (&fb.virtual_address[line_offset_in_framebuffer], 0, fb.stride_in_bytes); // clear entire line
1207
                                                                }
1208
                                                        }
1209
                                                        accumulated_character_count = accumulated_character_startidx; // rewind the accumulator
1210
                                                        continue; // and proceed to next character
1211
                                                }
1212
                                                else if (next_char == 'm') // SGR: select graphics rendition
1213
                                                {
1214
                                                        if (   ((code_count = sscanf (&accumulated_characters[accumulated_character_startidx + 1], "%d;%d;%d;%d;%d", &escseq_integers[0], &escseq_integers[1], &escseq_integers[2], &escseq_integers[3], &escseq_integers[4])) == 4)
1215
                                                            || ((code_count = sscanf (&accumulated_characters[accumulated_character_startidx + 1], "%d;%d;%d;%d", &escseq_integers[0], &escseq_integers[1], &escseq_integers[2], &escseq_integers[3])) == 4)
1216
                                                            || ((code_count = sscanf (&accumulated_characters[accumulated_character_startidx + 1], "%d;%d;%d", &escseq_integers[0], &escseq_integers[1], &escseq_integers[2])) == 3)
1217
                                                            || ((code_count = sscanf (&accumulated_characters[accumulated_character_startidx + 1], "%d;%d", &escseq_integers[0], &escseq_integers[1])) == 2)
1218
                                                            || ((code_count = sscanf (&accumulated_characters[accumulated_character_startidx + 1], "%d", &escseq_integers[0])) == 1)
1219
                                                            || (code_count == 0))
1220
                                                        {
1221
                                                                if (code_count == 0)
1222
                                                                {
1223
                                                                        escseq_integers[0] = 0; // default to reset
1224
                                                                        code_count = 1;
1225
                                                                }
1226
                                                                for (code_index = 0; code_index < code_count; code_index++)
1227
                                                                        if (escseq_integers[code_index] == 0)
1228
                                                                        {
1229
                                                                                fg_color = &default_foreground_color; // reset color: default foreground
1230
                                                                                if ((bg_color->r != -1) || (bg_color->g != -1) || (bg_color->b != -1))
1231
                                                                                        bg_color = &default_background_color; // reset color: default background (unless it's transparent)
1232
                                                                                fb.text_style = TEXTSTYLE_NONE; // reset effects
1233
                                                                                fb.characters_table_16x16_8x16 = characters_table_16x16_8x16_light; // normal font
1234
                                                                        }
1235
                                                                        else if (escseq_integers[code_index] == 1)
1236
                                                                                fb.text_style = (fb.text_style & ~TEXTSTYLE_DIM) | TEXTSTYLE_BOLD; // increase intensity
1237
                                                                        else if (escseq_integers[code_index] == 2)
1238
                                                                                fb.text_style = (fb.text_style & ~TEXTSTYLE_BOLD) | TEXTSTYLE_DIM; // decrease intensity
1239
                                                                        else if (escseq_integers[code_index] == 3)
1240
                                                                                fb.text_style |= TEXTSTYLE_ITALIC; // enable italics
1241
                                                                        else if (escseq_integers[code_index] == 4)
1242
                                                                                fb.text_style |= TEXTSTYLE_UNDERLINE1; // enable underline
1243
                                                                        else if (escseq_integers[code_index] == 9)
1244
                                                                                fb.text_style |= TEXTSTYLE_STRIKETHROUGH; // enable strikethrough
1245
                                                                        else if (escseq_integers[code_index] == 20)
1246
                                                                                fb.characters_table_16x16_8x16 = characters_table_16x16_8x16_bold; // gothic font
1247
                                                                        else if (escseq_integers[code_index] == 21)
1248
                                                                                fb.text_style |= TEXTSTYLE_UNDERLINE1 | TEXTSTYLE_UNDERLINE2; // enable double underline
1249
                                                                        else if (escseq_integers[code_index] == 22)
1250
                                                                                fb.text_style &= ~TEXTSTYLE_BOLD; // normal intensity
1251
                                                                        else if (escseq_integers[code_index] == 23)
1252
                                                                        {
1253
                                                                                fb.text_style &= ~TEXTSTYLE_ITALIC; // disable italics and gothic font
1254
                                                                                fb.characters_table_16x16_8x16 = characters_table_16x16_8x16_light; // normal font
1255
                                                                        }
1256
                                                                        else if (escseq_integers[code_index] == 24)
1257
                                                                                fb.text_style &= ~(TEXTSTYLE_UNDERLINE1 | TEXTSTYLE_UNDERLINE2); // disable underlines
1258
                                                                        else if (escseq_integers[code_index] == 29)
1259
                                                                                fb.text_style &= ~TEXTSTYLE_STRIKETHROUGH; // disable strikethrough
1260
                                                                        else if ((escseq_integers[code_index] >= 30) && (escseq_integers[code_index] <= 37))
1261
                                                                                fg_color = &ansi_colors_normal[escseq_integers[code_index] - 30]; // normal foreground
1262
                                                                        else if ((escseq_integers[code_index] == 38) && (code_index + 3 == code_count) && (escseq_integers[code_index + 1] == 5))
1263
                                                                        {
1264
                                                                                if (escseq_integers[code_index + 2] < 256)
1265
                                                                                {
1266
                                                                                        custom_foreground_color.r = ansi_256_colors[escseq_integers[code_index + 2]].r;
1267
                                                                                        custom_foreground_color.g = ansi_256_colors[escseq_integers[code_index + 2]].g;
1268
                                                                                        custom_foreground_color.b = ansi_256_colors[escseq_integers[code_index + 2]].b;
1269
                                                                                        fg_color = &custom_foreground_color; // 256-colors table indexed foreground color
1270
                                                                                }
1271
                                                                                else
1272
                                                                                        fg_color = &transparent_color; // not in the ANSI standard ;)
1273
                                                                        }
1274
                                                                        else if ((escseq_integers[code_index] == 38) && (code_index + 5 == code_count) && (escseq_integers[code_index + 1] == 2))
1275
                                                                        {
1276
                                                                                custom_foreground_color.r = escseq_integers[code_index + 2];
1277
                                                                                custom_foreground_color.g = escseq_integers[code_index + 3];
1278
                                                                                custom_foreground_color.b = escseq_integers[code_index + 4];
1279
                                                                                fg_color = &custom_foreground_color; // 24-bit foreground color
1280
                                                                        }
1281
                                                                        else if (escseq_integers[code_index] == 39)
1282
                                                                                fg_color = &default_foreground_color; // default foreground color
1283
                                                                        else if ((escseq_integers[code_index] >= 40) && (escseq_integers[code_index] <= 47))
1284
                                                                                bg_color = &ansi_colors_normal[escseq_integers[code_index] - 40]; // normal background
1285
                                                                        else if ((escseq_integers[code_index] == 48) && (code_index + 3 == code_count) && (escseq_integers[code_index + 1] == 5))
1286
                                                                        {
1287
                                                                                if (escseq_integers[code_index + 2] < 256)
1288
                                                                                {
1289
                                                                                        custom_foreground_color.r = ansi_256_colors[escseq_integers[code_index + 2]].r;
1290
                                                                                        custom_foreground_color.g = ansi_256_colors[escseq_integers[code_index + 2]].g;
1291
                                                                                        custom_foreground_color.b = ansi_256_colors[escseq_integers[code_index + 2]].b;
1292
                                                                                        bg_color = &custom_foreground_color; // 256-colors table indexed background color
1293
                                                                                }
1294
                                                                                else
1295
                                                                                        bg_color = &transparent_color; // not in the ANSI standard ;)
1296
                                                                        }
1297
                                                                        else if ((escseq_integers[code_index] == 48) && (code_index + 5 == code_count) && (escseq_integers[code_index + 1] == 2))
1298
                                                                        {
1299
                                                                                custom_background_color.r = escseq_integers[code_index + 2];
1300
                                                                                custom_background_color.g = escseq_integers[code_index + 3];
1301
                                                                                custom_background_color.b = escseq_integers[code_index + 4];
1302
                                                                                bg_color = &custom_background_color; // 24-bit background color
1303
                                                                        }
1304
                                                                        else if (escseq_integers[code_index] == 49)
1305
                                                                                bg_color = &default_background_color; // default background color
1306
                                                                        else if ((escseq_integers[code_index] >= 90) && (escseq_integers[code_index] <= 97))
1307
                                                                                fg_color = &ansi_colors_bright[escseq_integers[code_index] - 90]; // bright foreground
1308
                                                                        else if ((escseq_integers[code_index] >= 100) && (escseq_integers[code_index] <= 107))
1309
                                                                                bg_color = &ansi_colors_bright[escseq_integers[code_index] - 100]; // bright background
1310
                                                        }
1311
                                                        if (want_debuginfo)
1312
                                                                fprintf (stderr, "Identified SGR (color) escape sequence\n");
1313
                                                        accumulated_character_count = accumulated_character_startidx; // rewind the accumulator
1314
                                                        continue; // and proceed to next character
1315
                                                }
1316
                                                else
1317
                                                        accumulated_characters[accumulated_character_count++] = next_char; // not a supported ANSI escape sequence, restore terminator character into the accumulator
1318
                                        }
1319
                                }
1320
                        } // end if "accumulator is not full yet"
1321
                } // end if "current character is ESC"
1322
 
1323
                // compute row and column in character table
1324
                char_row_in_chartable = current_char / 16;
1325
                char_col_in_chartable = current_char % 16;
1326
 
1327
                // if debug output is enabled, print the character that's about to be written
1328
                if (want_debuginfo)
1329
                        fprintf (stderr, "Will draw char '%c' at screen pos %d,%d at position in the table: row=%zd col=%zd\n", current_char, fb.cursor_line, fb.cursor_column, char_row_in_chartable, char_col_in_chartable);
1330
 
1331
                // for each of the 16 rows of this character, then for each of the 16 columns of it...
1332
                for (char_cury = 0; char_cury < CHAR_PIXELS_H; char_cury++)
1333
                {
1334
                        // compute the offset of the concerned line in the framebuffer
1335
                        line_offset_in_framebuffer = ((CHAR_PIXELS_H * fb.cursor_line) + char_cury) * fb.stride_in_bytes;
1336
 
1337
                        for (char_curx = 0; char_curx < CHAR_PIXELS_W; char_curx++)
1338
                        {
1339
                                // compute pixel offset in character table and determine if this pixel should be lit
1340
                                offset_in_chartable = (char_row_in_chartable * (16 * CHAR_PIXELS_W) * CHAR_PIXELS_H) + (char_cury * (16 * CHAR_PIXELS_W)) + char_col_in_chartable * CHAR_PIXELS_W + char_curx;
1341
                                assert (offset_in_chartable < sizeof (characters_table_16x16_8x16_light) && "offset in chartable beyond end of table");
1342
                                is_pixel_lit = (fb.characters_table_16x16_8x16[offset_in_chartable] != 0);
1343
 
1344
                                // if debug output is enabled, print whether this pixel is lit
1345
                                if (want_debuginfo)
1346
                                        fprintf (stderr, "%c", (is_pixel_lit ? 'B' : ' '));
1347
 
1348
                                // compute the offset of the concerned column in the framebuffer
1349
                                column_offset_in_framebuffer = ((CHAR_PIXELS_W * fb.cursor_column) + char_curx) * fb.pixel_size_in_bytes;
1350
                                if (fb.text_style & TEXTSTYLE_ITALIC)
1351
                                {
1352
                                        // characters which have the italic style are bent rightways (TODO: smooth grayscale blending instead of blocky Bresenham here)
1353
                                        if (char_cury < 1 * CHAR_PIXELS_H / 4)
1354
                                        {
1355
                                                if (line_offset_in_framebuffer + column_offset_in_framebuffer + 3 * fb.pixel_size_in_bytes < fb.size_in_bytes)
1356
                                                        column_offset_in_framebuffer += 3 * fb.pixel_size_in_bytes;
1357
                                        }
1358
                                        else if (char_cury < 2 * CHAR_PIXELS_H / 4)
1359
                                        {
1360
                                                if (line_offset_in_framebuffer + column_offset_in_framebuffer + 2 * fb.pixel_size_in_bytes < fb.size_in_bytes)
1361
                                                        column_offset_in_framebuffer += 2 * fb.pixel_size_in_bytes;
1362
                                        }
1363
                                        else if (char_cury < 3 * CHAR_PIXELS_H / 4)
1364
                                        {
1365
                                                if (line_offset_in_framebuffer + column_offset_in_framebuffer + 1 * fb.pixel_size_in_bytes < fb.size_in_bytes)
1366
                                                        column_offset_in_framebuffer += 1 * fb.pixel_size_in_bytes;
1367
                                        }
1368
                                }
1369
 
1370
                                // compute the framebuffer offset of this pixel
1371
                                offset_in_framebuffer = line_offset_in_framebuffer + column_offset_in_framebuffer;
1372
                                assert (offset_in_framebuffer < fb.size_in_bytes && "offset in framebuffer beyond end of buffer");
1373
 
1374
                                // smack this bitch up?
1375
                                if (is_pixel_lit
1376
                                    || ((fb.text_style & TEXTSTYLE_STRIKETHROUGH) && (char_cury == CHAR_PIXELS_H / 2))
1377
                                    || ((fb.text_style & TEXTSTYLE_UNDERLINE2)    && (char_cury == CHAR_PIXELS_H - 3))
1378
                                    || ((fb.text_style & TEXTSTYLE_UNDERLINE1)    && (char_cury == CHAR_PIXELS_H - 1)))
1379
                                {
1380
                                        if (fg_color->r != -1) // is its red component NOT an explicit transparent color ?
1381
                                        {
1382
                                                final_taint = fg_color->r;
1383
                                                if (fb.text_style & TEXTSTYLE_BOLD)
1384
                                                        final_taint += 76; // if the current character style is bold, increase lightness
1385
                                                else if (fb.text_style & TEXTSTYLE_DIM)
1386
                                                        final_taint -= 76; // else if it's dim, decrease lightness
1387
                                                fb.virtual_address[offset_in_framebuffer + fb.pixel_indices.r] = (final_taint < 0 ? 0 : (final_taint < 255 ? final_taint : 255)); // clamp it between 0 and 255 and paint it (red component)
1388
                                        }
1389
                                        if (fg_color->g != -1) // is its green component NOT an explicit transparent color ?
1390
                                        {
1391
                                                final_taint = fg_color->g;
1392
                                                if (fb.text_style & TEXTSTYLE_BOLD)
1393
                                                        final_taint += 76;
1394
                                                else if (fb.text_style & TEXTSTYLE_DIM)
1395
                                                        final_taint -= 76;
1396
                                                fb.virtual_address[offset_in_framebuffer + fb.pixel_indices.g] = (final_taint < 0 ? 0 : (final_taint < 255 ? final_taint : 255)); // clamp it between 0 and 255 and paint it (blue component)
1397
                                        }
1398
                                        if (fg_color->b != -1) // is its blue component NOT an explicit transparent color ?
1399
                                        {
1400
                                                final_taint = fg_color->b;
1401
                                                if (fb.text_style & TEXTSTYLE_BOLD)
1402
                                                        final_taint += 76;
1403
                                                else if (fb.text_style & TEXTSTYLE_DIM)
1404
                                                        final_taint -= 76;
1405
                                                fb.virtual_address[offset_in_framebuffer + fb.pixel_indices.b] = (final_taint < 0 ? 0 : (final_taint < 255 ? final_taint : 255)); // clamp it between 0 and 255 and paint it (green component)
1406
                                        }
1407
                                }
1408
                                else // this pixel should be extinct
1409
                                {
1410
                                        if (bg_color->r != -1)
1411
                                                fb.virtual_address[offset_in_framebuffer + fb.pixel_indices.r] = (bg_color->r & 0xff); // paint background color (red component) unless it's transparent
1412
                                        if (bg_color->g != -1)
1413
                                                fb.virtual_address[offset_in_framebuffer + fb.pixel_indices.g] = (bg_color->g & 0xff); // paint background color (green component) unless it's transparent
1414
                                        if (bg_color->b != -1)
1415
                                                fb.virtual_address[offset_in_framebuffer + fb.pixel_indices.b] = (bg_color->b & 0xff); // paint background color (blue component) unless it's transparent
1416
                                }
1417
                        }
1418
 
1419
                        // if debug output is enabled, print the framebuffer offsets concerned at the end of the character scanline
1420
                        if (want_debuginfo)
1421
                                fprintf (stderr, "|   offsets 0x%zx-0x%zx\n", line_offset_in_framebuffer + ((CHAR_PIXELS_W * fb.cursor_column) + 0) * fb.pixel_size_in_bytes, line_offset_in_framebuffer + ((CHAR_PIXELS_W * fb.cursor_column) + char_curx) * fb.pixel_size_in_bytes);
1422
                }
1423
 
1424
                // advance cursor by one column, and wraparound if necessary
1425
                if (is_backspace)
1426
                        is_backspace = 0; // that was a backspace: don't advance this time, but remember to advance next time
1427
                else
1428
                {
1429
                        fb.cursor_column++; // advance the cursor by one column
1430
                        if (fb.cursor_column == fb.max_character_columns)
1431
                        {
1432
                                fb.cursor_line++; // wraparound: move one line down
1433
                                fb.cursor_column = 0; // and position the cursor at the beginning of the line
1434
                        }
1435
                }
1436
 
1437
                // if we should make the console scroll up, do so
1438
                if (fb.cursor_line == fb.max_character_lines)
1439
                {
1440
                        offset_in_framebuffer = CHAR_PIXELS_H * fb.stride_in_bytes; // offset of second character line
1441
                        memmove (&fb.virtual_address[0], &fb.virtual_address[offset_in_framebuffer], fb.size_in_bytes - offset_in_framebuffer); // move (max - 1) lines up
1442
                        offset_in_framebuffer = (fb.max_character_lines - 1) * CHAR_PIXELS_H * fb.stride_in_bytes; // offset of last character line
1443
                        memset (&fb.virtual_address[offset_in_framebuffer], 0, fb.size_in_bytes - offset_in_framebuffer); // erase last character line
1444
                        fb.cursor_line = fb.max_character_lines - 1; // and jump back it
1445
                }
1446
        }
1447
 
1448
        // finished, cleanup
1449
        munmap (fb.virtual_address, fb.size_in_bytes);
1450
 
1451
        exit (EXIT_SUCCESS); // *stamp* glory to Arstotzka!
1452
}