changeset 90:312b535f121e

Initial revision
author gongo
date Wed, 27 Feb 2008 21:17:47 +0900
parents a309cf4eafc5
children 4d6bd3c0d90b
files TaskManager/Test/simple_render/test/LoadTexture/Makefile TaskManager/Test/simple_render/test/LoadTexture/base64_de.cpp TaskManager/Test/simple_render/test/LoadTexture/cube.xml TaskManager/Test/simple_render/test/LoadTexture/fb.cpp TaskManager/Test/simple_render/test/LoadTexture/main.cpp TaskManager/Test/simple_render/test/LoadTexture/polygon.cpp TaskManager/Test/simple_render/test/LoadTexture/polygon.h TaskManager/Test/simple_render/test/LoadTexture/spe/Load_Texture.cpp TaskManager/Test/simple_render/test/LoadTexture/spe/Load_Texture.h TaskManager/Test/simple_render/test/LoadTexture/spe/Makefile TaskManager/Test/simple_render/test/LoadTexture/spe/spe-main.cpp TaskManager/Test/simple_render/test/LoadTexture/viewer.cpp TaskManager/Test/simple_render/test/LoadTexture/viewer.h
diffstat 13 files changed, 1673 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TaskManager/Test/simple_render/test/LoadTexture/Makefile	Wed Feb 27 21:17:47 2008 +0900
@@ -0,0 +1,41 @@
+TARGET = test_nogl
+
+SRCS = $(wildcard *.cpp)
+OBJS = $(SRCS:.cpp=.o)
+
+TASK_OBJS = $(TASK_SRCS:.cpp=.o)
+
+CC      = g++
+CFLAGS  = -O9  -g -Wall -DDEBUG
+INCLUDE = -I../../../../include/TaskManager -I.
+
+EXTRA_CFLAGS = `sdl-config --cflags` `xml2-config --cflags`\
+
+EXTRA_LIBS = -lCellManager -lspe2 -lpthread
+#EXTRA_LIBS = -lFifoManager
+
+LIBS = `sdl-config --libs` -lSDL_image -lGL \
+       `xml2-config --libs` -L../../.. $(EXTRA_LIBS)
+
+.SUFFIXES: .cpp .o
+
+.cpp.o:
+	$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(INCLUDE) -c $< -o $@
+
+all: $(TARGET)
+
+$(TARGET): $(OBJS) 
+	$(CC) -o $@ $(OBJS) $(TASK_OBJS) $(LIBS)
+
+link:
+	$(CC) -o $(TARGET) $(OBJS) $(TASK_OBJS) $(LIBS)
+
+run: $(TARGET)
+	sudo ./$(TARGET) -width 576 -height 384 -bpp 32
+
+debug: $(TARGET)
+	sudo ppu-gdb ./$(TARGET) 
+
+clean:
+	rm -f $(TARGET) $(OBJS) $(TASK_OBJS)
+	rm -f *~ \#*
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TaskManager/Test/simple_render/test/LoadTexture/base64_de.cpp	Wed Feb 27 21:17:47 2008 +0900
@@ -0,0 +1,92 @@
+#include <stdio.h>
+//#include <iostream>
+#include <fstream>
+using namespace std;
+
+class tagTT
+{
+public:
+  unsigned char buf;
+  char *cont;
+  int nlen;
+};
+
+
+unsigned char CtoNum(int c)
+{
+  if (c >= 'A' && c <= 'Z') return c-'A';
+  if (c >= 'a' && c <= 'z') return (c - 'a')+26;
+  if (c >= '0' && c <= '9') return (c - '0')+52;
+  if (c == '+') return 62;
+  if (c == '/') return 63;
+  return 0;
+}
+
+
+int GetNumB64(tagTT &pWork)
+{
+  char wr;
+  unsigned char w;
+  unsigned char r;
+  
+  wr = *pWork.cont;
+  pWork.cont++;
+  if (wr=='\0' || wr=='=')
+    return -1;
+  
+  while(wr=='\n' || wr=='\t')
+    {
+      wr = *pWork.cont;
+      pWork.cont++;
+    }
+
+  w = CtoNum(wr);
+  if (pWork.nlen == 0)
+    {
+      unsigned char w2;
+
+      wr = *pWork.cont;
+      pWork.cont++;
+      if (wr!='\0' && wr!='=')
+        w2 = CtoNum(wr);
+      else
+        w2 = 0;
+
+      pWork.buf = w << 2;
+      w = w2;
+      pWork.nlen = 6;
+    }
+
+  pWork.nlen -= 2;     
+
+  r = pWork.buf | (w >> pWork.nlen);
+
+  pWork.buf = (w << (8 - pWork.nlen));
+  return r;
+}
+
+
+//int decode(char *cont, char *file_name)
+int decode(char *cont, FILE *outfile)
+{
+  int rw;
+  tagTT work;
+
+  //ofstream outfile(file_name);
+  
+  work.buf = 0;
+  work.nlen = 0;
+  work.cont = cont;
+  
+  rw = GetNumB64(work);
+  while ( rw != -1 ) 
+    {
+      //outfile << (char)rw;
+      putc(rw, outfile);
+      rw = GetNumB64(work);
+    }
+
+  //outfile.close();
+
+  return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TaskManager/Test/simple_render/test/LoadTexture/cube.xml	Wed Feb 27 21:17:47 2008 +0900
@@ -0,0 +1,987 @@
+<?xml version="1.0"?>
+<OBJECT-3D>
+	<surface name="Cube" size="36" prim="Triangle" parent="NULL">
+		<coordinate>
+			33.894611 -26.947258 -0.020792
+			-10.057590 -35.861061 22.086847
+			-33.894611 -19.425222 -18.676613
+			-33.894611 -19.425222 -18.676613
+			10.057603 -10.511419 -40.784245
+			33.894611 -26.947258 -0.020792
+			33.894611 19.425220 18.676622
+			10.057590 35.861061 -22.086845
+			-33.894608 26.947262 0.020781
+			-33.894608 26.947262 0.020781
+			-10.057608 10.511419 40.784245
+			33.894611 19.425220 18.676622
+			33.894611 -26.947258 -0.020792
+			33.894611 19.425220 18.676622
+			-10.057608 10.511419 40.784245
+			-10.057608 10.511419 40.784245
+			-10.057590 -35.861061 22.086847
+			33.894611 -26.947258 -0.020792
+			-10.057590 -35.861061 22.086847
+			-10.057608 10.511419 40.784245
+			-33.894608 26.947262 0.020781
+			-33.894608 26.947262 0.020781
+			-33.894611 -19.425222 -18.676613
+			-10.057590 -35.861061 22.086847
+			-33.894611 -19.425222 -18.676613
+			-33.894608 26.947262 0.020781
+			10.057590 35.861061 -22.086845
+			10.057590 35.861061 -22.086845
+			10.057603 -10.511419 -40.784245
+			-33.894611 -19.425222 -18.676613
+			33.894611 19.425220 18.676622
+			33.894611 -26.947258 -0.020792
+			10.057603 -10.511419 -40.784245
+			10.057603 -10.511419 -40.784245
+			10.057590 35.861061 -22.086845
+			33.894611 19.425220 18.676622
+		</coordinate>
+		<normal>
+			-0.000000 -0.927450 -0.373948
+			-0.000000 -0.927450 -0.373948
+			-0.000000 -0.927450 -0.373948
+			-0.000000 -0.927450 -0.373948
+			-0.000000 -0.927450 -0.373948
+			-0.000000 -0.927450 -0.373948
+			0.000000 0.927450 0.373948
+			0.000000 0.927450 0.373948
+			0.000000 0.927450 0.373948
+			0.000000 0.927450 0.373948
+			0.000000 0.927450 0.373948
+			0.000000 0.927450 0.373948
+			0.476740 -0.328717 0.815269
+			0.476740 -0.328717 0.815269
+			0.476740 -0.328717 0.815269
+			0.476740 -0.328717 0.815269
+			0.476740 -0.328717 0.815269
+			0.476740 -0.328717 0.815269
+			-0.879044 -0.178276 0.442153
+			-0.879044 -0.178276 0.442153
+			-0.879044 -0.178276 0.442153
+			-0.879044 -0.178276 0.442153
+			-0.879044 -0.178276 0.442153
+			-0.879044 -0.178276 0.442153
+			-0.476740 0.328717 -0.815269
+			-0.476740 0.328717 -0.815269
+			-0.476740 0.328717 -0.815269
+			-0.476740 0.328717 -0.815269
+			-0.476740 0.328717 -0.815269
+			-0.476740 0.328717 -0.815269
+			0.879044 0.178276 -0.442153
+			0.879044 0.178276 -0.442153
+			0.879044 0.178276 -0.442153
+			0.879044 0.178276 -0.442153
+			0.879044 0.178276 -0.442153
+			0.879044 0.178276 -0.442153
+		</normal>
+		<model>
+			0.000000 0.000000 0.000000
+		</model>
+		<texture>
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
+		</texture>
+		<image name="icon.bmp">
+			Qk0cwAAAAAAAABoAAAAMAAAAgACAAAEAGAAAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCk
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Cc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCk
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Cc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCk
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Cc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCk
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Cc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCk
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Cc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCk
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Cc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCk
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Cc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA
+			AJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA
+			kpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA
+			nQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck
+			W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc
+			fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH
+			RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAA==
+		</image>
+	</surface>
+</OBJECT-3D>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TaskManager/Test/simple_render/test/LoadTexture/fb.cpp	Wed Feb 27 21:17:47 2008 +0900
@@ -0,0 +1,87 @@
+#include <iostream>
+#include <SDL.h>
+#include <SDL_opengl.h>
+#include <math.h>
+#include <unistd.h>
+#include <linux/fb.h>
+#include <sys/mman.h>
+#include <sys/ioctl.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include "viewer.h"
+using namespace std;
+
+#define DEVICE_NAME "/dev/fb0"
+#define DIV_BYTE 8
+
+int get_fbdev_addr(void);
+void send_current_error_msg(char *c);
+void send_current_information(char *c);
+
+char *fbptr;
+long int screensize;
+int fd_framebuffer;
+void cleanup_fbdev() {
+  munmap(fbptr, screensize);
+  close(fd_framebuffer);
+}
+
+void send_current_error_msg(char *ptr) {
+  fprintf( stderr, "%s\n", ptr);
+}
+
+void send_current_information(char *ptr) {
+  fprintf( stdout, "%s\n", ptr);
+}
+
+int get_fbdev_addr(void) {
+  struct fb_var_screeninfo vinfo;
+  struct fb_fix_screeninfo finfo;
+  char tmp[DIV_BYTE*10];
+
+  int xres,yres, vbpp, line_len;
+
+  /* open the file only for read */
+  fd_framebuffer = open( DEVICE_NAME, O_RDWR);
+  if( !fd_framebuffer ) {
+    send_current_error_msg("Framebuffer device open error\n");
+    exit(1);
+  }
+  send_current_information("The framebuffer device was opened\n");
+
+  /* Get the fixed screen info */
+  if( ioctl( fd_framebuffer, FBIOGET_FSCREENINFO, &finfo) ) {
+    send_current_error_msg("Fixed information not gotton !");
+    exit(2);
+  }
+
+  /* Get the flucture screen info */
+  if( ioctl( fd_framebuffer, FBIOGET_VSCREENINFO, &vinfo) ) {
+    send_current_error_msg("Variable information not gotton !");
+    exit(3);
+  }
+
+  xres = vinfo.xres;
+  yres = vinfo.yres;
+  vbpp = vinfo.bits_per_pixel;
+  line_len = finfo.line_length;
+  sprintf( tmp, "%d(pixel)x%d(line), %dbpp(bits per pixel)", xres, yres, vbpp);
+  send_current_information( tmp );
+
+  /* calcurate screen size per byte */
+  screensize = xres * yres * vbpp / DIV_BYTE;
+
+  /* mapping device to memory */
+  fbptr = (char *)mmap(0,screensize, PROT_READ | PROT_WRITE, MAP_SHARED, fd_framebuffer, 0);
+  if( atoi(fbptr) == -1) {
+    send_current_error_msg("Don't get framebuffer device to memory !");
+    exit(4);
+  }
+  send_current_information("The framebuffer device was mapped !");
+
+  printf("fbptr:%x\n",atoi(fbptr));
+  //munmap(fbptr, screensize);
+  //close(fd_framebuffer);
+  return atoi(fbptr);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TaskManager/Test/simple_render/test/LoadTexture/main.cpp	Wed Feb 27 21:17:47 2008 +0900
@@ -0,0 +1,107 @@
+#include <iostream>
+#include "viewer.h"
+#include "TaskManager.h"
+#include "error.h"
+
+int init(void*, void*);
+int finish(void*, void*);
+
+
+Viewer *screen;
+TaskManager *manager;
+
+struct init_arg {
+	int bpp;
+	int w;
+	int h;
+};
+
+struct init_arg *initArg;
+
+int init(void *r, void *w) {
+	int fd_sdl_init,fd_run;
+	HTaskPtr task_sdl_init, task_run;
+
+	__debug("[%s]\n",__FUNCTION__);
+
+	screen = new Viewer(initArg->bpp, initArg->w, initArg->h);
+
+	fd_sdl_init = manager->open("sdl_init");
+	fd_run      = manager->open("run");
+
+	task_sdl_init = manager->create_task(fd_sdl_init, 0, 0, 0, NULL);
+	task_run      = manager->create_task(fd_run, 0, 0, 0, NULL);
+
+ 	task_run->set_depend(task_sdl_init);
+
+	task_sdl_init->spawn();
+	task_run->spawn();
+
+	free(initArg);
+	return 0;
+}
+
+int sdl_init(void *r , void *w) {
+	
+	__debug("[%s]\n", __FUNCTION__);
+	screen->sdl_init();
+	return 0;
+}
+
+int run(void *r, void *w) {
+	
+	__debug("[%s]\n", __FUNCTION__);
+	screen->run_init();
+	return 0;
+}
+
+int finish(void *w, void *r)
+{
+	__debug("[%s]\n", __FUNCTION__);
+	delete screen;
+	delete manager;
+	return 0;
+}
+
+
+int main(int argc, char *argv[]) {
+	manager = new TaskManager(1);
+	manager->init();
+
+	//task_initialize();
+	
+	manager->set_symbol("init", (void*)init);
+	manager->set_symbol("sdl_init", (void*)sdl_init);
+	manager->set_symbol("run", (void*)run);
+	manager->set_symbol("finish", (void*)finish);
+
+	int bpp = 0;
+	int width = 640;
+	int height = 480;
+
+	for(int i = 1; argv[i]; ++i) {
+		if (strcmp(argv[i], "-bpp") == 0) {
+			bpp = atoi(argv[++i]);
+		} 
+		if (strcmp(argv[i], "-width") == 0) {
+			width = atoi(argv[++i]);
+		} 
+		if (strcmp(argv[i], "-height") == 0) {
+			height = atoi(argv[++i]);
+		}
+	}
+	HTaskPtr task_init;
+	int fd_init;
+	initArg = new struct init_arg;
+	initArg->bpp = bpp;
+	initArg->w   = width;
+	initArg->h   = height;
+
+	fd_init = manager->open("init");
+	task_init = manager->create_task(fd_init, 0, 0, 0, NULL);
+	task_init->spawn();
+	manager->run();
+	finish(NULL, NULL);
+	return 0;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TaskManager/Test/simple_render/test/LoadTexture/polygon.cpp	Wed Feb 27 21:17:47 2008 +0900
@@ -0,0 +1,117 @@
+#include <iostream>
+#include <SDL_image.h>
+#include <libxml/parser.h>
+#include "polygon.h"
+#include "TaskManager.h"
+using namespace std;
+
+
+#define redMask   0x00ff0000
+#define greenMask 0x0000ff00
+#define blueMask  0x000000ff
+#define alphaMask 0
+#define width     128
+#define height    128
+#define bpp       32
+
+
+extern int get_fbdev_addr();
+
+extern int decode(char *cont, FILE *outfile);
+
+#define LOAD_TEXTURE_SIZE 128*128*3/4
+
+void Polygon::set_data(char *file_name)
+{
+	xmlDocPtr doc;
+	xmlNodePtr cur;
+	Polygon *tmp;
+
+	doc = xmlParseFile(file_name);
+
+	cur = xmlDocGetRootElement(doc);
+
+	xmlStrcmp(cur->name,(xmlChar*)"OBJECT-3D");
+
+	tmp = this;
+
+	for (cur=cur->children; cur; cur=cur->next) {
+		if (!xmlStrcmp(cur->name,(xmlChar*)"surface")) {
+			tmp->create_data(cur);
+			if(cur->next->next) {
+				tmp->add_next();
+				tmp = tmp->next;
+			}
+		}
+	}
+	xmlFreeDoc(doc);
+}
+
+void Polygon::create_data(xmlNodePtr cur)
+{
+	size = atoi((char *)xmlGetProp(cur,(xmlChar *)"size"));
+	name = (char *)xmlGetProp(cur,(xmlChar *)"name");
+	parent_name = (char *)xmlGetProp(cur,(xmlChar *)"parent");
+	next = NULL;
+
+	data = new float[size*3*3];
+
+	get_data(cur->children);
+}
+
+void Polygon::add_next()
+{
+	Polygon *p;
+	p = new Polygon;
+
+	next = p;
+}
+
+
+void Polygon::get_data(xmlNodePtr cur)
+{
+	char *cont;
+	HTaskPtr task_load_texture = NULL;
+	unsigned int fbdev_addr;
+	for(;cur;cur=cur->next) {
+		if(!xmlStrcmp(cur->name,(xmlChar*)"image")) {
+			char image_name[20] = "/tmp/image_XXXXXX";
+			int fd = mkstemp(image_name);
+			FILE *outfile = fdopen(fd, "wb");
+			if(NULL == outfile) {
+				cout << "error open file\n";
+			}
+			cont = (char *)xmlNodeGetContent(cur);
+			decode(cont, outfile);
+			fclose(outfile);
+
+			texture_image = IMG_Load(image_name);
+			//texture_image = SDL_LoadBMP(image_name);
+			if(unlink(image_name)) {
+				cout << "unlink error\n";
+			}
+			
+		}
+	}
+
+	//void *_pixels = new Uint32[width*height*32/8];
+	void *_pixels;
+	SDL_Surface *screen;
+	posix_memalign((void**)&_pixels, 16, 3*128*128);
+	
+	memcpy(_pixels, texture_image->pixels, 3*128*128);
+
+	// screen を返すけど、いつか free して
+	//screen = SDL_CreateRGBSurfaceFrom(_pixels, width, height, 32,
+	//width*4, redMask, greenMask,
+	//			  blueMask,alphaMask);
+
+	fbdev_addr = get_fbdev_addr();
+	task_load_texture
+	    = manager->create_task(0,LOAD_TEXTURE_SIZE, 
+				   //(unsigned int)texture_image->pixels 
+				   (unsigned int)_pixels ,fbdev_addr,NULL); 
+	task_load_texture->set_cpu(CPU_SPE);
+	task_load_texture->spawn();
+}
+	
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TaskManager/Test/simple_render/test/LoadTexture/polygon.h	Wed Feb 27 21:17:47 2008 +0900
@@ -0,0 +1,28 @@
+#include <libxml/parser.h>
+#ifndef INCLUDED_POLYGON
+#define INCLUDED_POLYGON
+
+#ifndef INCLUDED_VIEWER
+#include "viewer.h"
+#endif
+
+#include "TaskManager.h"
+
+extern TaskManager *manager;
+
+class Polygon {
+public:
+	int size;
+	char *name;
+	char *parent_name;
+	float *data;
+	SDL_Surface *texture_image;
+	Viewer *viewer;
+	Polygon *next;
+	void set_data(char*);
+	void create_data(xmlNodePtr);
+	void add_next();
+	void get_data(xmlNodePtr);
+};
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TaskManager/Test/simple_render/test/LoadTexture/spe/Load_Texture.cpp	Wed Feb 27 21:17:47 2008 +0900
@@ -0,0 +1,84 @@
+#include <stdio.h>
+#include <spu_intrinsics.h>
+#include "Load_Texture.h"
+#include "error.h"
+#include "SchedTask.h"
+#include "SchedTaskList.h"
+#include "SchedNop2Ready.h"
+#include "DmaManager.h"
+#include "TaskManager.h"
+
+#define height 128
+#define width  128
+
+void *texture;
+
+int 
+LoadTexture::run(void *rbuf , void *wbuf) 
+{
+	//int rgb;
+	for(int y = 0; y < height; y++) {
+		for(int x = 0; x < width; x++) {
+			//linebuf[x] = get_rgb(x,y);
+		}
+	}
+	printf("hoge\n");
+}
+
+// byteperpixel = 3 width = 128 dma_height= 32
+#define LOAD_SIZE 3*128*32
+
+void 
+LoadTexture::read(void) 
+{
+    __debug("[SchedTask:%s]\n", __FUNCTION__);
+    connector->dma_load(readbuf,task->in_addr,LOAD_SIZE,DMA_READ);
+	connector->dma_load((void*)((int)readbuf+LOAD_SIZE),task->in_addr+LOAD_SIZE,LOAD_SIZE,DMA_READ);
+	connector->dma_load((void*)((int)readbuf+LOAD_SIZE*2),task->in_addr+LOAD_SIZE*2,LOAD_SIZE,DMA_READ);
+	connector->dma_load((void*)((int)readbuf+LOAD_SIZE*3),task->in_addr+LOAD_SIZE*3,LOAD_SIZE,DMA_READ);
+
+}
+
+void 
+LoadTexture::write(void) 
+{
+	__debug("[SchedTask:%s]\n",__FUNCTION__);
+	connector->dma_wait(DMA_WRITE);
+}
+
+/*
+Uint32 Polygon::get_rgb(int tx, int ty)
+{
+SDL_PixelFormat *fmt;
+Uint8 red, green, blue;
+	    
+fmt = texture_image->format;
+
+if (tx<0) tx = 0;
+if (texture_image->w-1< tx) tx = texture_image->w-1 ;
+if (ty<0) ty = 0;
+if (texture_image->h-1< ty) ty = texture_image->h-1 ;
+
+
+
+char *p = get_pixel(tx,ty,texture_image);
+blue  = (Uint8) p[0];
+green = (Uint8) p[1];
+red   = (Uint8) p[2];
+	            
+
+SDL_PixelFormat *pf;
+pf = viewer->screen->format;
+
+//cout << SDL_MapRGB(pf, red, green, blue) << endl;
+return SDL_MapRGB(pf, red, green, blue);
+}
+*/
+
+
+
+SchedTask *
+createTask_LoadTexture(TaskListPtr _taskList, TaskPtr _task,
+                                void *rbuf, void *wbuf, DmaManager *dma) {
+	return new LoadTexture(_taskList, _task, rbuf, wbuf, dma);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TaskManager/Test/simple_render/test/LoadTexture/spe/Load_Texture.h	Wed Feb 27 21:17:47 2008 +0900
@@ -0,0 +1,21 @@
+#ifndef INCLUDED_TASK_LOAD_TEXTURE
+#define INCLUDED_TASK_LOAD_TEXTURE
+
+
+#ifndef INCLUDED_SCHED_TASK
+#include  "SchedTask.h"
+#endif
+
+#define LOAD_TEXTURE 2
+
+class LoadTexture: public SchedTask {
+public:
+	LoadTexture(TaskListPtr _tlist, TaskPtr _task,
+	                      void* _rbuf, void* _wbuf, DmaManager* _con)
+ 	:SchedTask(_tlist, _task, _rbuf, _wbuf, _con) {}
+	int run(void *readbuf, void *writebuf);
+	void read(void);
+	void write(void);
+};
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TaskManager/Test/simple_render/test/LoadTexture/spe/Makefile	Wed Feb 27 21:17:47 2008 +0900
@@ -0,0 +1,23 @@
+TARGET = ../spe-main
+
+SRCS = $(wildcard *.cpp)
+OBJS = $(SRCS:.cpp=.o)
+
+CC      = spu-g++
+CFLAGS  = -O9 #-g -Wall# -DDEBUG
+INCLUDE = -I../../../../../include/TaskManager -I. -I..
+LIBS    = -L../../../.. -lspemanager# -lm
+
+.SUFFIXES: .cpp .o
+
+.cpp.o:
+	$(CC) $(CFLAGS) $(INCLUDE) -c $< -o $@
+
+all: $(TARGET)
+
+$(TARGET): $(OBJS)
+	$(CC) -o $@ $(OBJS) $(TASK_OBJS) $(LIBS)
+
+clean:
+	rm -f $(TARGET) $(OBJS)
+	rm -f *~ \#*
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TaskManager/Test/simple_render/test/LoadTexture/spe/spe-main.cpp	Wed Feb 27 21:17:47 2008 +0900
@@ -0,0 +1,16 @@
+#include "SchedTask.h"
+
+extern SchedTask*
+createTask_LoadTexture(TaskListPtr _taskList, TaskPtr _task,
+						void *rbuf, void *wbuf, DmaManager *dma);
+
+SchedTask::TaskObject task_list[16] = {createTask_LoadTexture, 0, 0, 0};
+
+static void set_task(int cmd, SchedTask::TaskObject task) {
+	task_list[cmd] = task;
+}
+
+void task_init(void) {
+	set_task(0, createTask_LoadTexture);
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TaskManager/Test/simple_render/test/LoadTexture/viewer.cpp	Wed Feb 27 21:17:47 2008 +0900
@@ -0,0 +1,47 @@
+#include <iostream>
+#include <SDL.h>
+#include <math.h>
+#include <unistd.h>
+#include "viewer.h"
+#include "polygon.h"
+using namespace std;
+
+Polygon *polygon;
+
+#define redMask 0x00ff0000
+#define greenMask 0x0000ff00
+#define blueMask 0x000000ff
+#define alphaMask 0
+
+Viewer::Viewer(int b, int w, int h) {
+	bpp = b;
+	width = w;
+	height = h;
+}
+
+void Viewer::sdl_init() {
+	if( SDL_Init( SDL_INIT_VIDEO ) < 0) {
+		fprintf(stderr,"Couldn't initialize SDL: %s\n", SDL_GetError());
+		exit(1);
+	}
+#if 0
+	screen = SDL_SetVideoMode( width, height, bpp, SDL_HWSURFACE);
+	if(screen == NULL) {
+		fprintf(stderr, "Couldn't set GL mode: %s\n", SDL_GetError());
+		SDL_Quit();
+		exit(1);
+	}
+#else 
+	void *_pixels = new Uint32[width*height*32/8];
+	screen = SDL_CreateRGBSurfaceFrom(_pixels, width, height, 32,
+					  width*4, redMask, greenMask,
+					  blueMask,alphaMask);
+#endif
+}
+
+void Viewer::run_init() {
+	polygon = new Polygon;	
+	polygon->set_data("cube.xml");
+	polygon->viewer = this;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TaskManager/Test/simple_render/test/LoadTexture/viewer.h	Wed Feb 27 21:17:47 2008 +0900
@@ -0,0 +1,23 @@
+#include <SDL.h>
+
+#ifndef INCLUDED_VIEWER
+#define INCLUDED_VIEWER
+
+#include "TaskManager.h"
+
+class Viewer {
+public:
+	
+	int width;
+	int height;
+	int bpp;
+	SDL_Surface *screen;
+	Uint32 *pixels;
+
+	Viewer(int b, int w, int h);
+	void sdl_init();
+	void run_init();
+
+};
+
+#endif