From bea606aee5cf835a8917d022d596f04ac16104df Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Fri, 2 Apr 1999 17:04:27 +0000 Subject: New files. This manual was ritten by Eric Valette and Emmanuel Raguet . It was submitted in LaTeX and converted to Texinfo by Joel. At this point, the figures are largely ignored except to put in an example block to show they are missing. The Makefile should be just enough to produce output with no links between chapters. --- doc/rgdb_specs/Makefile | 113 + doc/rgdb_specs/comm.t | 87 + doc/rgdb_specs/conclusion.t | 27 + doc/rgdb_specs/daemon.t | 420 +++ doc/rgdb_specs/garde.eps | 8168 +++++++++++++++++++++++++++++++++++++++++ doc/rgdb_specs/gdbinternals.t | 214 ++ doc/rgdb_specs/interfacing.t | 79 + doc/rgdb_specs/intro.t | 39 + doc/rgdb_specs/layers.eps | 359 ++ doc/rgdb_specs/objectives.t | 307 ++ doc/rgdb_specs/process.eps | 672 ++++ doc/rgdb_specs/revision.t | 36 + doc/rgdb_specs/rgdb-rtems.tex | 1224 ++++++ doc/rgdb_specs/seg_init.eps | 204 + doc/rgdb_specs/seq_break.eps | 311 ++ doc/rgdb_specs/seq_detach.eps | 167 + 16 files changed, 12427 insertions(+) create mode 100644 doc/rgdb_specs/Makefile create mode 100644 doc/rgdb_specs/comm.t create mode 100644 doc/rgdb_specs/conclusion.t create mode 100644 doc/rgdb_specs/daemon.t create mode 100644 doc/rgdb_specs/garde.eps create mode 100644 doc/rgdb_specs/gdbinternals.t create mode 100644 doc/rgdb_specs/interfacing.t create mode 100644 doc/rgdb_specs/intro.t create mode 100644 doc/rgdb_specs/layers.eps create mode 100644 doc/rgdb_specs/objectives.t create mode 100644 doc/rgdb_specs/process.eps create mode 100644 doc/rgdb_specs/revision.t create mode 100644 doc/rgdb_specs/rgdb-rtems.tex create mode 100644 doc/rgdb_specs/seg_init.eps create mode 100644 doc/rgdb_specs/seq_break.eps create mode 100644 doc/rgdb_specs/seq_detach.eps (limited to 'doc') diff --git a/doc/rgdb_specs/Makefile b/doc/rgdb_specs/Makefile new file mode 100644 index 0000000000..349421b38f --- /dev/null +++ b/doc/rgdb_specs/Makefile @@ -0,0 +1,113 @@ +# +# COPYRIGHT (c) 1988-1998. +# On-Line Applications Research Corporation (OAR). +# All rights reserved. +# +# $Id$ +# + +PROJECT=rgdb_specs +DISTRIBUTION_LEVEL=public + +include ../Make.config + +all: html info ps + +dirs: + $(make-dirs) + +COMMON_FILES=../common/cpright.texi ../common/setup.texi + +GENERATED_FILES= \ + intro.texi revision.texi objectives.texi gdbinternals.texi \ + interfacing.texi comm.texi daemon.texi conclusion.texi + + +FILES=$(PROJECT).texi $(GENERATED_FILES) + +INFOFILES=$(wildcard $(PROJECT) $(PROJECT)-*) + +info: dirs $(PROJECT) + #cp $(wildcard $(PROJECT) $(PROJECT)-*) $(INFO_INSTALL) + # cp $(PROJECT) $(INFO_INSTALL) + +$(PROJECT): $(FILES) + $(MAKEINFO) $(PROJECT).texi + +dvi: $(PROJECT).dvi +ps: dirs $(PROJECT).ps + +$(PROJECT).ps: $(PROJECT).dvi + dvips -o $(PROJECT).ps $(PROJECT).dvi + cp $(PROJECT).ps $(PS_INSTALL) + +# run texi2dvi twice to generate the xref's properly. +$(PROJECT).dvi: $(FILES) + $(TEXI2DVI) $(PROJECT).texi + texi2dvi $(PROJECT).texi + +html: dirs $(FILES) + -mkdir -p $(WWW_INSTALL)/$(PROJECT) + $(TEXI2WWW) $(TEXI2WWW_ARGS) -dir $(WWW_INSTALL)/$(PROJECT) \ + $(PROJECT).texi + +clean: + rm -f *.o $(PROG) *.txt core + rm -f *.dvi *.ps *.log *.aux *.cp *.fn *.ky *.pg *.toc *.tp *.vr $(BASE) + rm -f $(PROJECT) $(PROJECT)-* $(GENERATED_FILES) + rm -f *.fixed _* network.t + +# +# Process Automatically Generated Files +# + +@include intro.texi +@include revision.texi +@include objectives.texi +@include gdbinternals.texi +@include interfacing.texi +@include comm.texi +@include daemon.texi +@include conclusion.texi + +intro.texi: intro.t Makefile + $(BMENU) -p "Top" \ + -u "Top" \ + -n "" ${*}.t + +revision.texi: revision.t Makefile + $(BMENU) -p "Top" \ + -u "Top" \ + -n "" ${*}.t + +objectives.texi: objectives.t Makefile + $(BMENU) -p "Top" \ + -u "Top" \ + -n "" ${*}.t + +gdbinternals.texi: gdbinternals.t Makefile + $(BMENU) -p "Top" \ + -u "Top" \ + -n "" ${*}.t + +interfacing.texi: interfacing.t Makefile + $(BMENU) -p "Top" \ + -u "Top" \ + -n "" ${*}.t + +comm.texi: comm.t Makefile + $(BMENU) -p "Top" \ + -u "Top" \ + -n "" ${*}.t + +daemon.texi: daemon.t Makefile + $(BMENU) -p "Top" \ + -u "Top" \ + -n "" ${*}.t + +conclusion.texi: conclusion.t Makefile + $(BMENU) -p "Top" \ + -u "Top" \ + -n "" ${*}.t + + diff --git a/doc/rgdb_specs/comm.t b/doc/rgdb_specs/comm.t new file mode 100644 index 0000000000..398d19849b --- /dev/null +++ b/doc/rgdb_specs/comm.t @@ -0,0 +1,87 @@ +@c +@c RTEMS Remote Debugger Server Specifications +@c +@c Written by: Eric Valette +@c Emmanuel Raguet +@c +@C +@c $Id$ +@c + +@chapter Communication with GDB + +The RTEMS remote debugger will be accessed by GDB on a host machine +through a communication link. We will use the TCP/IP stack included in RTEMS +: the FreeBSD stack. The communication link will be based based on the UDP protocol +and the BSD sockets which are parts of the FreeBSD stack. On top of these layers, +we will plug a module which allows a simple communication between different +machines (especially between different endianess machines) : the SUN Remote +Procedure Call (SUN RPC). This code is freely available on the net and comes +with a BSD like license. With this module, a process can invoke a procedure +on a remote system. The RTEMS remote debugger will be seen by GDB as a SUN RPC +server. Commands will be packed by the GDB SUN RPC client and sent to the server. +This server will unpack these commands, execute them and, if needed, return +results to the SUN RPC client. + + +Only a minimal subset of the SUN RPC library must be implemented. +For example, the portmapper related API which allows a dynamic allocation of +port numbers will not be implemented and some specific UDP port numbers will +be used to establish the communication between the host and the target. The +SUN RPC library implements the XDR module (eXternal Data Representation) which +is a standard way of encoding data in a portable fashion between different endian +systems. Below are figures describing the additional code and data size for +the minimal library implementation we currently have already implemented for +RTEMS : + +@example +$ size -x librpc.a +text data bss dec hex filename +0x40e 0x0 0x0 1038 40e rpc_callmsg.o (ex librpc.a) +0x2f1 0x18 0x0 777 309 rpc_prot.o (ex librpc.a) +0x458 0x0 0x0 1112 458 svc.o (ex librpc.a) +0x4f 0x4 0x0 83 53 svc_auth.o (ex librpc.a) +0x75c 0x18 0x0 1908 774 svc_udp.o (ex librpc.a) +0x711 0x4 0x10 1829 725 xdr.o (ex librpc.a) +0x149 0x0 0x0 329 149 xdr_array.o (ex librpc.a) +0x165 0x20 0x0 389 185 xdr_mem.o (ex librpc.a) +@end example + +We have a constraint with the use of the UDP protocol. Because this +protocol is connectionless, it is impossible, especially for the target, to +detect if the connection is always active. On the other hand, using the TCP/IP +protocols seems to be heavy especially if we plan to implement a dedicated micro +stack for debug in the future. It can be a real problem to let the debugged +process stopped during a long time even if there is no more debugger connected +to the system. To avoid such a problem, the target must periodically test the +connection with the host on another way than the one used to receive the commands. +We must therefore open two communication ways so we need two fixed UDP port +numbers. + +@enumerate +@item One port will be used by the debugger to send its commands to the +debugged process and to receive the result of these commands. View from the +remote debugger, this port will be called primary port. For this one, we choose +arbitrarily the port number 2000. +@item The other socket will be used as secondary port by the target to sometimes +test the connection between the host and the target. These tests will occur +in specific situations, when a process will be stopped on a breakpoint, single +step instruction or other means. This secondary port will also be used by the +target to signal any change in the behavior of a debugged process (stopped, +killed, waiting for,...). For the secondary port, we choose the port number +2010. +@end enumerate + +These two port numbers are used by the remote debugger to open the +two communication sockets. GDB will use its own mean to choose its port numbers +(probably the Unix portmapper). The figure layer shows the different +layers we need to implement. + +@example +XXXXX reference it in the previous paragraph +XXXXX insert layers.eps +XXXXX Caption Communications Layers +@end example + + + diff --git a/doc/rgdb_specs/conclusion.t b/doc/rgdb_specs/conclusion.t new file mode 100644 index 0000000000..42389cfe8c --- /dev/null +++ b/doc/rgdb_specs/conclusion.t @@ -0,0 +1,27 @@ +@c +@c RTEMS Remote Debugger Server Specifications +@c +@c Written by: Eric Valette +@c Emmanuel Raguet +@c +@c +@c $Id$ +@c + +@chapter Conclusion + +In this document we have presented how we envisage to add remote debugging facilities +to RTEMS by implementing a remote debugger daemon for GDB. As any debug implemented +in software, it will have limitation but we are confident that most of them +can be removed by adding separate software components dedicated to debug activity. +We must keep in mind that even with this approach, no software will enable the +debug of code with interrupt entirely masked at processor level and that In +Circuit Emulator (ICE) or use of BDM extension on the target board are the ultimate +way to really debug any portion of an RTOS. BDM support in GDB is still weak +but people are working on it and we may get something better in a near future. + +@example +XXXXX insert process.eps +XXXXX Caption remote debugger tasks and handlers +@end example + diff --git a/doc/rgdb_specs/daemon.t b/doc/rgdb_specs/daemon.t new file mode 100644 index 0000000000..fb505a8d07 --- /dev/null +++ b/doc/rgdb_specs/daemon.t @@ -0,0 +1,420 @@ +@c +@c RTEMS Remote Debugger Server Specifications +@c +@c Written by: Eric Valette +@c Emmanuel Raguet +@c +@c +@c $Id$ +@c + +@chapter RTEMS Debugger Server Daemon + +We will describe in this section how this debugger server will be +implemented on RTEMS environment. Our initial target is based on Intel Pentium +and we will use an Ethernet link to communicate between the host and the target. + +The RTEMS remote debugger will be composed by several tasks and exception +handlers : + +@itemize @b +@item an initialization task which opens the sockets and runs the SUN RPC +server. This task will also connect the interrupt handlers and launch the communication +task +@item a communication task which receives the SUN RPC commands, executes +them and sends the result to the GDB client, +@item A debuggee event management task which waits for events. We need a different +task than the command management task in order to be able to still accept commands +while no event has yet occurred for the debuggee. An example could be a continue +command from GDB and then hitting to DEL key to see what is currently going +on on the target side because an expected breakpoint is not caught... +@item a debug exception handler which manages the hardware breakpoint and +single step exceptions (INT 1 on Intel x86), +@item a breakpoint exception handler which manages the software breakpoints +exceptions (INT 3 on Intel x86), +@item a default exception handler used to catch every possible errors make on the +target system, +@end itemize + +@c XXX figure reference +@c XXX references to other sections +Figure @b{remote debugger tasks and handlers} represents these +different tasks and handlers. The synchronization between the different task +and exception handlers will be described below in the section +@b{Synchronization Among Tasks and Exception Handlers}. +Some open issues we have faced for a prototype implementation are described +in the section @b{Open Issues}. The temporary workaround we chose are described +in chapter @b{Workarounds for Open Issues in Prototype}. + + +@subsection The INITIALIZATION task + +This is the task that must be executed at the boot phase of RTEMS. +It initializes the debug context. It must : + +@itemize @b +@item open the UDP sockets, +@item run the SUN RPC server main loop, +@item create the COMMAND MANAGEMENT task, +@item connect the DEBUG EXCEPTION handler, +@item connect the SOFTWARE BREAKPOINT handler, +@item delete itself. +@end itemize +If an error occurs at any step of the execution, the connections established +before the error will be closed, before the initialization task deletes itself. + + +@subsection The COMMAND_MNGT task + +This task is in charge of receiving the SUN RPC messages and executing +the associated commands. This task must have an important priority because it +must be executed each time a command message comes from the debugger. It must +be executed even if one or both exception handlers are executed. But the COMMAND +MANAGEMENT task must not block the TCP/IP module without which no message can +be received. + +When not executing a command, this task is waiting for a SUN RPC message +on the primary port. This idle state blocks the task, so the other active tasks +can run. Once a message comes from Ethernet via the primary port, the COMMAND +MANAGEMENT task wakes up and receives the message which is a request from GDB. +This request is sent to the SUN RPC server code which extracts the command and +its arguments, executes it and, if needed, sends a result to GDB. After having +performed these actions, the task sleeps, waiting for another message. + +A particular case is the reception of the ATTACH command : in this +case the COMMAND_MNGT task creates the EVENT_MNGT task described below before +going to wait on UDP socket again. + + +@subsection The EVENT_MNGT task + +This task is in charge of managing events happening on the debuggee such as +breakpoint, exceptions. This task does a basic simple loop waiting for event +on a synchronization variable. It is waken up by exception handlers code. It +then signals GDB that an event occurred and then go sleeping again as further +requests will be processed by the COMMAND_MNGT task. + + +@subsection The DEBUG EXCEPTION handler + +This handler is connected to the DEBUG exception (INT 1 on Intel ix86). +This exception is entered when : + +@itemize @b +@item executing a single-step instruction, +@item hardware breakpoint condition is true, +@end itemize +These events will be treated by the debugger because they are the +primary event used when debugging a software for instruction stepping. In both +cases, the DEBUG EXCEPTION handler code is executed. Please note that the execution +context of the exception handler is the supervisor stack of the task that generated +the exception . This implies : + +@itemize @b +@item We may sleep in this context, +@item We have as many possible execution context for the DEBUG EXCEPTION handler as +we need to, +@item When we enter the high level exception handler code, a normalized exception +context has been pushed on the system stack and a pointer to this context is +available as the first argument (cf c/src/exec/score/cpu/i386/cpu.c for more +details), +@end itemize +First the exception handler wakeup the EVENT_MNGT task. Then it will +cause the faulting thread to sleep on a synchronization object. As soon as GDB +receives the event notifying that the debuggee status has changed, it will start +sending requests to get the debuggee status (registers set, faulty task id, +...). These requests are handled by the COMMAND MANAGEMENT task. When this task +receive a PTRACE_CONT command it will resume the execution of the task that +caused the exception by doing a V on the synchronization object. + + +@subsection The BREAKPOINT EXCEPTION handler + +This handler is connected to the BREAKPOINT exception (INT3 on Intel +Ix86). Each time the debugger wants to place a software breakpoint in the debuggee, +a debuggee opcode is temporarily replaced by an instruction causing BREAKPOINT +exception (the ``INT 3'' instruction on Intel ix86). When ``INT 3'' is executed, +the BREAKPOINT handler is executed. Otherwise, the exception processing is the +same than the one described in previous section. + + +@subsection Synchronization Among Tasks and Exception Handlers + +The previous chapters have presented a simplified and static view of the various +tasks and exceptions handlers. This chapter is more focussed on synchronization +requirements about the various pieces of code executed when RGDBSD is operating. + + +@subsubsection Implicit Synchronization Using Task Priorities + +This chapter is relevant on Uniprocessor System (UP) only. However, it will +also list the requirements for explicit synchronization on Multi-processor Systems +(MP). Below are the task priorities sorted by high priority. They are not supposed +to be equal : + +@enumerate +@item Network Input Task. This is the highest priority task. This can be regarded +as a software interrupt task for FreeBSD code, +@item RGDBSD command task. As this task waits on UDP sockets, it shall not prevent +the previous task from running. As the main debug entry point, it should preempt +any other task in the system, +@item RGDBSD event task. This task should preempt any task but the two mentionned +before to signal a debug event to GDB. The command task shall be able to preempt +this task for emergency command such as DEL, or REBOOT, +@item Applications tasks (task we are able to debug), +@end enumerate +Using theses priorities eliminates the need for adding more synchronization +objects in the next section. My belief is that symmetric MP support will require +more important change in the RTEMS than RGDBSD itself like multiple scheduler +queues, task to processor binding for non symmetric IO, use a different implementation +for @emph{task_disable_preemption}, ... + + +@subsubsection Explicit Synchronization + +This chapter will describe the synchronization variables that need to be implemented +in order to sequence debug events in a way that is compatible with what GDB +code expects. The root of the problem is that GDB code mainly expects that once +a debug event has occurred on the debuggee, the entire debuggee is frozen and +no other event will occur before the CONTINUE command is issued. This behavior +is hard to achieve in our case as once we hit a breakpoint, only the task that +hits the breakpoint will be asleep on a synchronization object. Other tasks +may hit other breakpoints while we are waiting commands from GDB generating +potential unexpected events. There is a solutions if RGDBSD itself use RTEMS +threads to fix this problem by creating a task that loops forever at a priority +superior to any debugged task but below RGDBSD task priorities. Unfortunately +this will not work for the case we use the nano-kernel implementation and we +think it is better to study synchronization problems now. We also expects that +multi-thread debug support hardening in GDB will remove some event serializations +requirements. Here is the list of synchronization variables we plan to use and +their usage. They are all regular semaphores. They are not binary semaphores +because the task that does V is not the task that has done the P. + +@itemize @b +@item @emph{WakeUpEventTask} : used by exception handler code to wake up the EVENT_MNGT +task by doing a V operation on this object. When target code is running normally +the EVENT_MNGT task sleeps due to a P operation on this semaphore, +@item @emph{SerializeDebugEvent} : used to serialize events in a way compatible to +what GDB expects. Before doing a V operation on @emph{WakeUpEventTask,} the +exception handler does a P on this semaphore to be sure processing of another +exception is not in progress. Upon reception of a CONTINUE command, the COMMAND_MNGT +task will issue a V operation so that the exception code can wake up EVENT_MNGT +task using the mechanism described above, +@item @emph{RestartFromException} : (in fact one semaphore per task) used by exception +handling code to put a faulty task to sleep once it has generated an exception +by doing a P operation on this semaphore. In the case the exception was generated +due to a breakpoint, GDB command will modify back the BREAKPOINT opcode to the +original value before doing the CONTINUE command. This command will perform +a V on this semaphore. In the case it is a real non restartable exception (faulty +memory reference via invalid pointer for example), GDB will not allow to restart +the program avoiding any loop. So not special analysis of cause of exception +is foreseen as far as RGDBSD code is concerned, +@end itemize + +@subsection Open Issues + +Here are some problems we have faced while implementing our prototype : + +@table @b +@item [Protected ReadMem/WriteMem (I1)]: +A GDB user can request to see the content +of a corrupted pointer. The request PEEK_DATA will be performed by the COMMAND_MNGT +task. It shall not enter the default exception handler set by RGDBSD or it will +cause a dead lock in the RGDBSD code. Replacing the default exception vector +before calling @b{readMem/writeMem} can be temporarily sufficient but : + +@itemize @b +@item It will never work on MP system as it will rely on task priorities to insure +that other task will not cause exceptions while we have removed the default +exception handler, + +@item This feature should not be usable in RGDBSD only but also by an embedded debugger +that may run without any task. It is also unavoidable in case of protected memory +and in this case no priority mechanism can be used, + +@item In the case of using RGDBSD code on a dedicated nano kernel, this code will +be called from interrupt level and we need a way to be sure we can debug other +interrupts that may also cause exceptions, +@end itemize + +@item [ATTACH Command Implementation (I2)]: +After the @emph{target rtems symbolic_ip_target_name} +command, the normal operation is to issue an @emph{attach lid} command where +@emph{lid} represents a valid execution context. For Unix this is a process +id, for other multi-tasking system this is the id of a thread. After the attach +command, GDB expects to be waken up in the same manner as it is for normal events. +Once waken up it expects to have a complete register context available and also +that the target task is in a stopped state and that it can restart it using +the regular CONTINUE command. In RTEMS there is a way to get force a thread +to become inactive via @emph{rtems_task_suspend} but no way to get the full +registers set for the thread. A partial context can be retrieved from the task +@emph{Registers} data structure. On the other hand, relying on @emph{rtems_task_suspend +will be a problem for the nano-kernel implementation. + +@item [Stopping Target System (I3)]: +Allthough it might not be obvious, most of the +actions made by a GDB user assume the target is not running. If you modify a +variable via the @emph{set variable = value} command you expect that the value +is the one you have put when restarting. If a still running task modifies the +same value in the mean time, this may be false. On the other hand, stopping +all the tasks on the target system impose to have a very deep knowledge of the +system. Using an interrupt driven RGDBSD, may facilitate the implementation +on the nano-kernel. + +@item [Getting Tasks Contexts (I4)]: +As previously mentionned there is no way to get +tasks execution contexts via the RTEMS API. This is needed when debugging for +example via this classical sequence : + +@enumerate + +@item @emph{(gdb) target rtems symbolic_ip_target_name} + +@item @emph{(gdb) info threads <=} get a thread list on screen + +@item @emph{(gdb)} @emph{attach thread_id} <= thread_id is one of the thread in +the list + +@item @emph{(gdb) b a_function_of_interest } + +@item @emph{(gdb) continue} + +@item @emph{(gdb)} @emph{backtrace} <= print the call stack on the screen once we +have hit the breakpoint + +@item @emph{(gdb) thread target another_thread_li <=} change implicit current thread +value for gdb commands + +@item @emph{(gdb)} @emph{backtrace <=} should print the backtrace for the chosen thread +@end enumerate +In our execution model, we have a valid context only for the threads that hits +the breakpoint as it has been pushed by the exception handler code. The other +thread is still running and during the various RPC requesting memory access, +it even changes as the COMMAND_MNGT thread is going to sleep. So the backtrace +command will fail. We must find a way to make this work as it is very usefull +when debugging multi-threaded programs, + + +@item [Backtrace Stop convention (I5)]: +The backtrace command on RTEMS task does not +gracefully terminate as GDB does not find some backtrace termination condition +it expects. +@end table + +@subsection Workarounds for Open Issues in Prototype + +@table @b + +@item [(I1)]: +Not implemented.We would rather like to work on the formalization of +per thread flags and global flags that are much more general than any kludge +we could implement, + +@item [(I2)]: +We have tried two solutions in our prototype. The first one was to use +the @emph{idle} thread context contained in the @emph{Registers} task control +block field. The drawback of this solution was that we had to implement specific +code for the continue operation immediately following the attach command. We +then decided to create a dedicated task that will only exist during the attach +phase. This task will call the ``ENTER_RGDB'' exception. This call will execute +the Exception Handler that saves a valid context and that notifies a change +to GDB. After the first CONTINUE command from GDB, this task will continue its +execution and delete itself, + +@item [(I3)]: +As explained above in the synchronization chapter, we choose to serialize +events in a way that makes GDB think the system is frozen, + +@item [(I4)]: +As a temporary fix, we have called @emph{rtems_task_suspend} and used +the context switch contex for tasks that are unknown to RGDBSD, + +@item [(I5)]: +Not Implemented yet. If I remember correctly, setting the frame pointer +to 0 at task initialization for CISC processor solves this problem (ebp = 0x0 +on Intel or a6 = 0x0 on 680x0). This should be done in rtems_task_create function +in the path to really starts the task for the first time. The processor/system +specific stop condition can be found as macros in the GDB source tree. +@end table + +@subsection Output of a Debug Session with the Prototype + +@example +GNU gdb 4.17 +Copyright 1998 Free Software Foundation, Inc. +GDB is free software, covered by the GNU General Public License, and you are +welcome to change it and/or distribute copies of it under certain conditions. +Type "show copying" to see the conditions. +There is absolutely no warranty for GDB. Type "show warranty" for details. +This GDB was configured as --host=i686-pc-linux-gnu --target=i386-rtems". +Attaching remote machine across net... +Connected to net-test. +Now the "run" command will start a remote process. +Setting up the environment for debugging gdb. +(gdb) attach 1 +Attaching program: /build-rtems/pc386/tests/debug.exe pid 1 +0x230715 in enterRdbg () +(gdb) info threads +There are 8 threads: +Id. Name Detached Suspended +134283273 Rini No No <= current target thread +0x230715 in enterRdbg () +134283272 Evnt No No +_Thread_Dispatch () at /rtems/c/src/exec/score/src/thread.c:315 +134283271 SPE2 No No +_Thread_Dispatch () at /rtems/c/src/exec/score/src/thread.c:315 +134283270 SPE1 No No +_Thread_Handler () at /rtems/c/src/exec/score/src/thread.c:1107 +134283269 RDBG No No +0x230715 in enterRdbg () +134283268 SCrx No No +_Thread_Dispatch () at /rtems/c/src/exec/score/src/thread.c:315 +134283267 SCtx No No +_Thread_Dispatch () at /rtems/c/src/exec/score/src/thread.c:315 +134283266 ntwk No No +_Thread_Dispatch () at /rtems/c/src/exec/score/src/thread.c:315 +(gdb) b init.c:89 +Breakpoint 1 at 0x200180: file /rtems/c/src/tests/samples/debug/init.c, line 89. +(gdb) c +Continuing. +Thread 134283273 (Rini) has been deleted. +[Switching to Rtems thread 134283271 (Not suspended) ( <= current target thread )] +Breakpoint 1, example2 (argument=4) at /rtems/c/src/tests/samples/debug/init.c:89 +89 tuto += tuti; +(gdb) s +90 if (print_enable2) +(gdb) c +Continuing. +Breakpoint 1, example2 (argument=4) at /rtems/c/src/tests/samples/debug/init.c:89 +89 tuto += tuti; +(gdb) b init.c:66 +Breakpoint 2 at 0x200128: file /rtems/c/src/tests/samples/debug/init.c, line 66. +(gdb) c +Continuing. +{Switching to Rtems thread 134283270 (Not suspended) ( <= current target thread )] +Breakpoint 2, example1 (argument=4) at /rtems/c/src/tests/samples/debug/init.c:66 +66 toto += titi; +(gdb) c +Continuing. +[Switching to Rtems thread 134283271 (Not suspended) ( <= current target thread )] +Breakpoint 1, example2 (argument=4) at /rtems/c/src/tests/samples/debug/init.c:89 +89 tuto += tuti; +(gdb) bt +#0 example2 (argument=4) + at /rtems/c/src/tests/samples/debug/init.c:89 +#1 0xf0009bd0 in ?? () +(gdb) thread target 134283270 +thread 134283270 [SPE1], _Thread_Dispatch () at /rtems/c/src/exec/score/src/thread.c:315 +315 executing = _Thread_Executing; +(gdb) c +Continuing. +Breakpoint 2, example1 (argument=4) at /rtems/c/src/tests/samples/debug/init.c:66 +66 toto += titi; +(gdb) detach +Detaching program: /build-rtems/pc386/tests/debug.exe pid 1 +Warning: the next command will be done localy! If you want to restart another remote +program, reuse the target command +(gdb) +@end example + + diff --git a/doc/rgdb_specs/garde.eps b/doc/rgdb_specs/garde.eps new file mode 100644 index 0000000000..6d31db2f92 --- /dev/null +++ b/doc/rgdb_specs/garde.eps @@ -0,0 +1,8168 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: garde.eps +%%Creator: fig2dev Version 3.2 Patchlevel 1 +%%CreationDate: Fri Oct 30 13:27:47 1998 +%%For: valette@tri-yann (Eric Valette,,6891,) +%%Orientation: Portrait +%%BoundingBox: 0 0 521 694 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%Magnification: 1.0000 +%%EndComments +/$F2psDict 200 dict def +$F2psDict begin +$F2psDict /mtrx matrix put +/col-1 {0 setgray} bind def +/col0 {0.000 0.000 0.000 srgb} bind def +/col1 {0.000 0.000 1.000 srgb} bind def +/col2 {0.000 1.000 0.000 srgb} bind def +/col3 {0.000 1.000 1.000 srgb} bind def +/col4 {1.000 0.000 0.000 srgb} bind def +/col5 {1.000 0.000 1.000 srgb} bind def +/col6 {1.000 1.000 0.000 srgb} bind def +/col7 {1.000 1.000 1.000 srgb} bind def +/col8 {0.000 0.000 0.560 srgb} bind def +/col9 {0.000 0.000 0.690 srgb} bind def +/col10 {0.000 0.000 0.820 srgb} bind def +/col11 {0.530 0.810 1.000 srgb} bind def +/col12 {0.000 0.560 0.000 srgb} bind def +/col13 {0.000 0.690 0.000 srgb} bind def +/col14 {0.000 0.820 0.000 srgb} bind def +/col15 {0.000 0.560 0.560 srgb} bind def +/col16 {0.000 0.690 0.690 srgb} bind def +/col17 {0.000 0.820 0.820 srgb} bind def +/col18 {0.560 0.000 0.000 srgb} bind def +/col19 {0.690 0.000 0.000 srgb} bind def +/col20 {0.820 0.000 0.000 srgb} bind def +/col21 {0.560 0.000 0.560 srgb} bind def +/col22 {0.690 0.000 0.690 srgb} bind def +/col23 {0.820 0.000 0.820 srgb} bind def +/col24 {0.500 0.190 0.000 srgb} bind def +/col25 {0.630 0.250 0.000 srgb} bind def +/col26 {0.750 0.380 0.000 srgb} bind def +/col27 {1.000 0.500 0.500 srgb} bind def +/col28 {1.000 0.630 0.630 srgb} bind def +/col29 {1.000 0.750 0.750 srgb} bind def +/col30 {1.000 0.880 0.880 srgb} bind def +/col31 {1.000 0.840 0.000 srgb} bind def + +end +save +-27.0 696.0 translate +1 -1 scale + +/cp {closepath} bind def +/ef {eofill} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth} bind def +/tr {translate} bind def +/tnt {dup dup currentrgbcolor + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} + bind def +/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul + 4 -2 roll mul srgb} bind def +/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def +/$F2psEnd {$F2psEnteredState restore end} def +%%EndProlog + +$F2psBegin +10 setmiterlimit +n -1000 12037 m -1000 -1000 l 9697 -1000 l 9697 12037 l cp clip + 0.06299 0.06299 sc +/Times-Roman ff 210.00 scf sf +2115 8595 m +gs 1 -1 sc (CRF) col0 sh gr +/Times-Roman ff 210.00 scf sf +2115 8280 m +gs 1 -1 sc (CRF) col0 sh gr +/Times-Roman ff 210.00 scf sf +2115 7965 m +gs 1 -1 sc (CRF) col0 sh gr +/Times-Bold ff 210.00 scf sf +3600 5445 m +gs 1 -1 sc (Validated By :) col0 sh gr +/Times-Bold ff 210.00 scf sf +540 5850 m +gs 1 -1 sc (Name :) col0 sh gr +/Times-Bold ff 210.00 scf sf +495 6210 m +gs 1 -1 sc (Company : ) col0 sh gr +/Times-Bold ff 210.00 scf sf +495 6570 m +gs 1 -1 sc (Received on :) col0 sh gr +/Times-Bold ff 210.00 scf sf +5985 6210 m +gs 1 -1 sc (Sign : ) col0 sh gr +/Times-Bold ff 210.00 scf sf +3420 6210 m +gs 1 -1 sc (Department :) col0 sh gr +/Times-Bold ff 210.00 scf sf +3420 6615 m +gs 1 -1 sc (Deadline : ) col0 sh gr +/Times-Bold ff 210.00 scf sf +3420 5850 m +gs 1 -1 sc (Position : ) col0 sh gr +/Times-Bold ff 210.00 scf sf +585 4275 m +gs 1 -1 sc (Name :) col0 sh gr +/Times-Bold ff 210.00 scf sf +540 4635 m +gs 1 -1 sc (Company : ) col0 sh gr +/Times-Bold ff 210.00 scf sf +540 4995 m +gs 1 -1 sc (Received on :) col0 sh gr +/Times-Bold ff 210.00 scf sf +6030 4635 m +gs 1 -1 sc (Sign : ) col0 sh gr +/Times-Bold ff 210.00 scf sf +3465 4635 m +gs 1 -1 sc (Department :) col0 sh gr +/Times-Bold ff 210.00 scf sf +3465 5040 m +gs 1 -1 sc (Deadline : ) col0 sh gr +/Times-Bold ff 210.00 scf sf +3465 4275 m +gs 1 -1 sc (Position : ) col0 sh gr +/Times-Bold ff 210.00 scf sf +3645 3870 m +gs 1 -1 sc (Verified By :) col0 sh gr +/Times-Bold ff 210.00 scf sf +3060 2340 m +gs 1 -1 sc (Last Modified on :) col0 sh gr +/Times-Bold ff 210.00 scf sf +6570 2340 m +gs 1 -1 sc (Version : ) col0 sh gr +/Times-Bold ff 210.00 scf sf +540 2340 m +gs 1 -1 sc (Created on : ) col0 sh gr +% Polyline +7.500 slw +n 2970 2025 m 2970 2520 l gs col0 s gr +% Polyline +n 6390 2025 m 6390 2520 l gs col0 s gr +% Polyline +n 450 2520 m 8685 2520 l 8685 2565 l gs col0 s gr +% Polyline +n 450 3555 m 8685 3555 l 8685 3600 l gs col0 s gr +% Polyline +n 450 3015 m 8685 3015 l 8685 3060 l gs col0 s gr +% Polyline +n 450 6750 m 8685 6750 l 8685 6795 l gs col0 s gr +% Polyline +n 450 7200 m 8685 7200 l 8685 7245 l gs col0 s gr +% Polyline +n 450 5490 m 8685 5490 l 8685 5535 l gs col0 s gr +% Polyline +n 450 3915 m 8685 3915 l 8685 3960 l gs col0 s gr +% Polyline +n 450 5175 m 8685 5175 l 8685 5220 l gs col0 s gr +/Times-Bold ff 210.00 scf sf +540 3375 m +gs 1 -1 sc (Document Internal Reference : ) col0 sh gr +/Times-Bold ff 210.00 scf sf +585 2835 m +gs 1 -1 sc (Author : ) col0 sh gr +/Times-Bold ff 270.00 scf sf +3420 7065 m +gs 1 -1 sc (DISTRIBUTION LIST) col0 sh gr +% Polyline +n 1980 7200 m 1980 10305 l gs col0 s gr +% Polyline +n 5895 7200 m 5895 10305 l gs col0 s gr +% Polyline +n 4500 7200 m 4500 10305 l gs col0 s gr +% Polyline +n 3105 7200 m 3105 10305 l gs col0 s gr +% Polyline +n 7515 7200 m 7515 10305 l gs col0 s gr +/Times-Bold ff 210.00 scf sf +495 7515 m +gs 1 -1 sc (Name) col0 sh gr +/Times-Bold ff 210.00 scf sf +5985 7515 m +gs 1 -1 sc (Reason) col0 sh gr +/Times-Bold ff 210.00 scf sf +4590 7515 m +gs 1 -1 sc (Position) col0 sh gr +/Times-Bold ff 210.00 scf sf +2025 7515 m +gs 1 -1 sc (Company) col0 sh gr +/Times-Bold ff 210.00 scf sf +3150 7515 m +gs 1 -1 sc (Department) col0 sh gr +/Times-Bold ff 210.00 scf sf +7560 7515 m +gs 1 -1 sc (Has Copy) col0 sh gr +% Polyline +n 450 7650 m 8685 7650 l 8685 7695 l gs col0 s gr +/Times-Bold ff 270.00 scf sf +4320 450 m +gs 1 -1 sc (Canon Research Centre France S.A) col0 sh gr +/Times-Roman ff 240.00 scf sf +4725 765 m +gs 1 -1 sc (Rue de la touche Lambert) col0 sh gr +/Times-Roman ff 240.00 scf sf +4725 1125 m +gs 1 -1 sc (35515 CESSON SEVIGNE Cedex) col0 sh gr +/Times-Roman ff 240.00 scf sf +4725 1440 m +gs 1 -1 sc (FRANCE) col0 sh gr +% Polyline +% +% Begin Imported EPS File: /home/valette/ev-perso-doc/canon.eps +%%BeginDocument: /home/valette/ev-perso-doc/canon.eps +% +n gs +540 180 tr +5.220486 -5.126582 sc +0 -158 tr +-18 -18 tr +sa +n 18 18 m 594 18 l 594 176 l 18 176 l cp clip n +countdictstack +mark +/showpage {} def +% EPS file follows: +%!PS-Adobe-2.0 EPSF-1.2 +%%Creator: tops on IRIS workstation +%%BoundingBox: 18 18 594 176 +%% $Header$ +%%EndComments +%%BeginPreview: 250 68 1 68 +% 0000000000000000000000000000000000000000000000000000000000000019 +% 0000000000000000000000000000000000000000000000000000000000000019 +% 0000000000000000000000000000000000000000000000000000000000000019 +% 0000000000000000000000000000000000000000000000000000000000000019 +% 0000000000000000000000000000000000000000000000000000000000000019 +% 0000000000000000000000000000000000000000000000000000000000000019 +% 0000000000000000000000000000000000000000000000000000000000000019 +% 0000000000000000000000000000000000000000000000000000000000000019 +% 0000000000000000000000000000000000000000000000000000000000000019 +% 0000000000000000000000000000000000000000000000000000000000000019 +% 0000001fffc00000000000000000000000000000000000000000000000000019 +% 000001fffffc0000000000000000000000000000000000000000000000000019 +% 00000fffffff8000000000000000000000000000000000000000000000000019 +% 00003fffffffe000000000000000000000000000000000000000000000000019 +% 0000fffff800780000000000000000000000000003ffc0000000700007c00019 +% 0003ffffe0001c000000018000000f80007e00001ffff8000003fc001ff00019 +% 0007ffff80003e0000003ff000003fe003ff00003ffffe00000ffe007ff80019 +% 000ffffe00003f800001fffc0000fff00fff8000fc0fff80003fff03fffc0019 +% 001ffffc00007fc00003fffe0003fff81fffc001fc0fffc0007fff87fffc0019 +% 003ffff800007fe0001fffff000ffff87fffe007f80fffe001ffff9ffffc0019 +% 007ffff00000fff0007fffff001ffffdffffe007f807fff007ffffe3fffe0019 +% 00ffffe00000ffe003ffffff007ffffe1fffe00ffc07fff81fffffc1fffe0019 +% 00ffffe00001ffc00fffffff80fffffc1fffe01ffc07fff83fffffc1fffe0019 +% 01ffffc00001ff003fffffff8003fffc1fffe03ffc03fffc003fffc1fffe0019 +% 01ffffc00003fe0000003fff8003fffc1fffe03ffc03fffc003fffc1fffe0019 +% 03ffff800003f00000001fffc003fffc1fffe07ffe03fffe003fffc1fffe0019 +% 03ffff800007e00000001fffc003fffc1fffe07ffe01fffe003fffc1fffe0019 +% 03ffff800007c00000000fffc003fffc1fffe07ffe01ffff003fffc1fffe0019 +% 03ffff00000f000000000fffe003fffc1fffe0ffff01ffff003fffc1fffe0019 +% 03ffff00000e000000000fffe003fffc1fffe0ffff01ffff003fffc1fffe0019 +% 07ffff000010000000000fffe003fffc1fffe0ffff00ffff003fffc1fffe0019 +% 07ffff0000000000000007ffe003fffc1fffe0ffff80ffff803fffc1fffe0019 +% 07ffff000000000001ff07fff003fffc1fffe0ffff80ffff803fffc1fffe0019 +% 03ffff000000000007ffc7fff003fffc1ffff0ffff807fff803fffc1fffe0019 +% 03ffff00000000001ffffffff003fffc1fffe0ffffc07fff803fffc1fffe0019 +% 03ffff00000000003ffffffff803fffc1ffff0ffffc07fff803fffc1fffe0019 +% 03ffff00000000007ffffffff803fffc1ffff0ffffc07fff003fffc1fffe0019 +% 03ffff0000000000fffc1ffff803fffc1ffff0ffffe03fff003fffc1fffe0019 +% 03ffff8000000001fff007fffc03fffc1ffff0ffffe03fff003fffc1fffe0019 +% 01ffff8000000001ffe003fffc03fffe1ffff0ffffe03fff003fffc1fffe0019 +% 01ffffc000000001ffe001fffc03fffe1ffff07fffe01fff003fffc1fffe0019 +% 00ffffc000000003ffc001fffc03fffe1ffff07ffff01ffe003fffc1fffe0019 +% 00ffffe000000003ffc000fffe01fffe0ffff03ffff01ffe003fffc1fffe0019 +% 007fffe000000013ff8000fffe01fffe0ffff03ffff00ffc003fffc1fffe0019 +% 007ffff000000033ff8000fffe03fffe0ffff01ffff80ffc003fffc1fffe0019 +% 003ffff800000023ffc000ffff03fffe1ffff01ffff80ff8003fffc1fffe0019 +% 001ffffc00000063ffc000ffff01fffe0ffff00ffff80ff0003fffc1fffe0019 +% 000ffffe00000181ffc001ffff01fffe0ffff007fffc07e0003fffc1fffe0019 +% 0007ffff80000301ffe0013fff81fffe0ffff003fffc0fc0003fffc1fffe0019 +% 0003ffffc0000601fff0033fff81fffe0ffff001fffc0fc0003fffc1fffe0019 +% 0001fffff0001c00fff80e3fff81fffe0ffff000fffe1f00003fffc1fffe0019 +% 00007fffff87f0007ffffc3fffc1fffe0ffff0003ffffe00003fffc1fffe0019 +% 00003fffffffc0001ffff81fffc1fffe0ffff0000ffff800003fffc1fffe0019 +% 00000fffffff00000fffe01fffc1fffe0ffff00003ffe0000000000000000019 +% 000001fffff8000001ff80000000000000000000000000000000000000000019 +% 00000007fc000000000000000000000000000000000000000000000000000019 +% 0000000000000000000000000000000000000000000000000000000000000019 +% 0000000000000000000000000000000000000000000000000000000000000019 +% 0000000000000000000000000000000000000000000000000000000000000019 +% 0000000000000000000000000000000000000000000000000000000000000019 +% 0000000000000000000000000000000000000000000000000000000000000019 +% 0000000000000000000000000000000000000000000000000000000000000019 +% 0000000000000000000000000000000000000000000000000000000000000019 +% 0000000000000000000000000000000000000000000000000000000000000019 +% 0000000000000000000000000000000000000000000000000000000000000019 +% 0000000000000000000000000000000000000000000000000000000000000019 +% 0000000000000000000000000000000000000000000000000000000000000019 +% 0000000000000000000000000000000000000000000000000000000000000019 +%%EndPreview +gsave +18.000000 176.000000 translate +/bwproc { + rgbproc + dup length 3 idiv string 0 3 0 + 5 -1 roll { + add 2 1 roll 1 sub dup 0 eq + { pop 3 idiv 3 -1 roll dup 4 -1 roll dup + 3 1 roll 5 -1 roll put 1 add 3 0 } + { 2 1 roll } ifelse + } forall + pop pop pop +} def +systemdict /colorimage known not { + /colorimage { + pop + pop + /rgbproc exch def + { bwproc } image + } def +} if +576.000000 -158.000000 scale +/picstr 991 string def +991 272 8 +[991 0 0 -272 0 272] +{currentfile picstr readhexstring pop} +image +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffff3f3ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffd7950000000000000000000000 +00000000000000000000000000000000000000000057a5dcfbffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffe10000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000b3ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000002fbaffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffbdce6d7dcefffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffb3000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000057ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffba0000000000000000000000000000 +0000000000000000a5efffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffd70000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000020efffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffff4a0000000000000000 +00000000000000000000000000000000000000000000000000fbffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcc000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00e1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4a00 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000083ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffff7d7efe1ebffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcc00000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000002fffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffff0400000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000079ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000e1ffffffffffffffffffffffffffffffffffc0634a206e95 +9d959db3acbaccc0c6ebe6f3f7f7e1ebfff7ffe6ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc02f000000000000000000000000000000000000 +00000000baffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +e100000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000efffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffff6e0000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000008cffffffffffffffffffffffff +ffffffffff000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000ffff +ffffffffffffffffffffffffffffffffffff3d00000000000000000000000000000000 +000000000000040000042000000020202f572f4a795795a579a5c6d2e1effbf7fffbff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff7900000000000000000000000000 +0000000000000000000000000000000000000000008cffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffff0400000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000efffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000c6ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffff00000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000ffff +ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffff2f000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00e1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffba0000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000efffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000ffffffffffffffffffffffffffffffffffff0000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000ffffffffffffffffffffffffffffff +ffffffffff000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +a500000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000006effffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffff8c0000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00a5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffff0000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00ffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000ffffffffffffffffffffffffffffff +ffffff0000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000ffffffff +ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffd20000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000baffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000ffffffffffffffffffffffffffffffffffffffff630004003d2f +3d123d63838c956363836e04639db3953dacd2d2d7d7bab3d7e1d2dce6ebefeff7e6ef +fff3ebffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +3d00000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000004ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff9d00000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000063ffffffffffffffffffffffffffffffffffffffffff +ffffffff00000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000ffffffffff +ffffffffffffffffffffffffffff000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffff7000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000004ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000ffffffffffffffffffffffffffffff +ffffffffff000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000baff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffff1200000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000f3ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000ffffffffffffffffff +ffffffffffffffffffffffffffffff0000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000ffffffffffffffffffffffffffffffffffffff00000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000ffffffffffffffffffffffffffffffffff +ffffff0000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000ffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffe1000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffff0000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000ffffffff +ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000004affffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff6e00000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000c6ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2f +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000e6ffffffffffffffffffffffffffffffffffffffffffeb000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff +ff00000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000ffffffffffff +ffffffffffffffffffffffffffff000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffba +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000020 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffff000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000004affffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffff7900000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000c0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffff0000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000057ffffffffffffffffffffffffffffffffffffff +ff00000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000dcffffffffffffff +ffffffffffffffffffffffff0000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000ffffffffffffffffffffffffffffffffffffffff00000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffc00000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000002fffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000ffffffffffffffffffffffffffffffffff +ffffff0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000083ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffc0000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000efffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000ffffffffffffff +ffffffffffffffffffffffff0000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000ffffffffffffffffffffffffffffffffffffff +ff00000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffdc0000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ff00000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000ffffffffffff +ffffffffffffffffffffffffffff000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000c0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000579dffffffffffffffffffffffffffffffefac9520000000000000000000000000 +00000000000000000000fbffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000ffffffffffffffffffffffffffffffffffff000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000ffffffffffffffff +ffffffffffffffffffffffff0000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffff30000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000004affffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffff0000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000ffffffffffffffffffffffffffffffffffffffff00000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000acffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffff8c0000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000004baefffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffefb320000000000000000000000000000000000000ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcc00000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000200420000000 +0000000000000000000000000000000000ffffffffffffffffffffffffffffffffac00 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000a5ffffffffffffffffffff +ffffffffffffffffffff00000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ff00000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000dcffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000ffffffffffffffffffffffffffffffffffffff +ff00000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000b3ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000baffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc000000000000000000000000000000000 +4affffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffdc000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000002f +ccffffffffffffffffffffffffd2000000000000000000000000000000ffffffffffff +ffffffffffffffffff0000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +ffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffb3000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000ffffffffffffffff +ffffffffffffffffffffffff0000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000acffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffff79000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000003dffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7900 +00000000000000000000000000e1ffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffff30000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000083ffffffffffffffffffffffffffffffffffffffff12000000000000 +000000000000ffffffffffffffffffffffffffff000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000ffffffffffffffffffffffffffffffffffffffffff000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000ffffffffffffffffffff +ffffffffffffffffffff00000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000063efffffffffffba00000000000000000000000000000000 +0000000000008cffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffff00000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000009dffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffff000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000003dffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffff0400000000000000000000000000ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000006effffffffffffffffffffffffffffffffffff +ffffffffffff57000000000000000000004affffffffffffffffffffffffff00000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000ffffffffffffffffffffffffff +ffffffffffffffff000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000ffffffffffffffffffffffff630000 +00000000000000000000000000000000000000ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000a5ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffff70000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000d7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffdc000000000000000000 +000000acffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffff0000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000057ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffff4a0000000000000000009dffffffffff +ffffffffffff0400000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000ffffff +ffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffff00000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000f3ffffffffff +ffffffffffffffffffff000000000000000000000000000000000000000000ffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000ffffffffffffffffffff +ffffffffffffffffffff00000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000acffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6300 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000020ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffff000000000000000000000000ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7000000 +000000000000ffffffffffffffffffffff000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000ffffffffffffffffffffffffffffffffffffffffffff0000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000ffffffffffffffffffffffff +ffffffffffffffff000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffff000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000ffffffffffffffffffffffffffffffffffff2f000000000000000000000000 +00000000000000009dffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffff000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000d7ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffff000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000002fffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffff0400000000000000000000baffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd20000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000b3ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffac0000000000000000ffffffffffffffffffff00000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000ffffffffffffffffffffffffffffffff +ffffffffffff0000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000ff +ffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffd70000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000fbffffffffffffffffffffffffffffffffffffff57 +000000000000000000000000000000000000000000ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000e6ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000063ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000 +00000000002fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffff000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000efffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffffffffff +ffffffc000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000fbffffffffff +ffffffffffffffffffffffffffffffffff000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6e00 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000ffffffffffffffffffffff +ffffffffffffffffffffff00000000000000000000000000000000000000000000ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000ffffffffffffffffffffffff +ffffffffffffffff000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00dcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000002fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffb00000000000000000000ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff0000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 +000000000000e1ffffffffffffff000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000ffffffffffffffffffffffffffffffffffffffffffffff00000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000ffffffffffffffffffffffffffff +ffffffffffff0000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffff000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000d2 +ffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000 +00000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffff0000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000ff +ffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000d2ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffdc0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffd2000000000000000000ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffff00000000000000ffffffffffffff00000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000ffffffffffffffffffffffffffffffffffffff +ffffffff00000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000ffffff +ffffffffffffffffffffffffffffffffff000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff3d +00000000000000000000000000000000000000000000ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffff000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000e1ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffac00000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000acffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2f00 +00000000000000c0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ff00000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000d2ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffff0000000000003dffffffffff +ff00000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000d2ffffffffffffffff +ffffffffffffffffffffffffffffff0000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000ffffffffffffffffffffffffffffffffffffffff00000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000f7ffffffffffffffffffffffffffff +ffffffffffffffffffffff0000000000000000000000000000000000000000000000ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000ffffffffffffffffffffffffffff +ffffffffffff0000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000f3 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffff95000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffff00000000000000002fffffffffffffffffffffffffffffff +fffffffffffffffffffffffb0000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000063ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +000000000000ffffffffff200000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000ffffffffffffffffffffffffffffffff +ffffffff00000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffff0000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000ffffffff +ffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000 +0000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffff00000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000ffffff +ffffffffffffffffffffffffffffffffff000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000efffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6e0000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000d2ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffff2f0000000000000000ffffff +ffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffe6000000000000ffffffff00000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffff +ffff000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000ffffffffff +ffffffffffffffffffffffffffffff0000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffff00000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffa500 +0000000000000000000000000000000000000000000000ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff0000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000ffffffffffffffffffffffffffffffffffffffff00000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffff63000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +f70000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff0000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffff040000000000ffffffff0000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000004affffffffffffffffffffff +ffffffffffffffffffffffffff00000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000e1ffffffffffffffffffffffffffffffffff +ffffffffffffffffffff00000000000000000000000000000000000000000000000000 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000ffffffffffffffffffffffffffffffff +ffffffff00000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffff4a0000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000004affffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffff +ffffffffffffffff830000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000c6ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +000000000000ffff950000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000ff +ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff +ffff000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000 +000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffff000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000ffffffffff +ffffffffffffffffffffffffffffff0000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffac00000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +ebffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffff0400000000000000ffff +ffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000ffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffd20000000000ffff00000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffff +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000ffffffffffffff +ffffffffffffffffffffffffff00000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffff000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000 +000000000000000000000000000000000000000000000000ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffff00000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffac0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffc600000000000000ffffffffffffffffffffffffffffffffffffffff0000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000e1ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffff000000000000e10000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000ffffffffffffffffffffffffffff +ffffffffffffffffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000e6ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffff000000000000000000000000000000000000000000000000000000 +00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff +ffeb000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000efffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd200000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000020ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff00000000000000ffffffffffffffffffffffffff +ffffffffff570000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000f3ffffff +fffffffffffffffffffffffffffffffffffffffffff700000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000fffffffffffffffffffffffffffffffffffffff7 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffff04000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000 +00000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000ffffffffffffff +ffffffffffffffffffffffffe600000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000006effffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffef00000000000000ff +ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000d7ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffeb0000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000ffffffffffffffffff +ffffffffffffffffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffc600000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000 +00000000000000000000000000000000000000000000000000ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000ffffffffffffffffffffffffffffffffffffffef0000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000acffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffff6e00000000000000ffffffffffffffffffffffffffffffff0000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffd7000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000ffffffffffffffffffffffffffffffffff +fffffffffffffffff30000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000ffffffffffffffffffffffffffffffffffffffff00000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffff000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000acffffffffffffffffffffffffffffffffffffffffffffff +ffffffffff9d0000000000000000000000000000000000000000000000000000000000 +008cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffb +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffff000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000d2ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff00000000000000ffffffffffffffffffffffff +ffffd20000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000dcffffffffffff +ffffffffffffffffffffffffffffffffffffffeb000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000fffffffffffffffffffffffffffffffffffffffb0000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000 +00000000000000000000000000f3ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000ffffffffffffffffff +ffffffffffffffffffffe6000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000acffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000 +ffffffffffffffffffffffffff00000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000efffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffff00000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffdc00000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000ffffffffffffffffffffff +ffffffffffffffffd20000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000 +00000000000000000000000000000000000000000000000000ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffff0000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000ffffffffffffffffffffffffffffffffffffffd700000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffac000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000079 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffff00000000000000ffffffffffffffffffffffff0000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffc600000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff +ffffffffffffd200000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +ffffffffffffffffffffffffffffffffffffffd7000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffba00000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000083ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffd20000000000000000000000000000000000000000000000000000000000000000 +0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000ffffffffffffffffffffffffffffffffffffffb30000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffff00000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000063ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffff00000000000057ffffffffffffffffffffff +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000acffffffffffffffffff +ffffffffffffffffffffffffffffffffffc60000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000ffffffffffffffffffffffffffffffffffffffe100000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffff00000000000000000000000000000000000000000000 +000000000000000000000000008cffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000ffffffffffffffffffffff +ffffffffffffffffc60000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffff000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000003dffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb000000000000 +e1ffffffffffffffffffff000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffff0000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00ffffffffffffffffffffffffffffffffffffffffffffffffffffffcc000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000ffffffffffffffffffffffffff +ffffffffffffc600000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000 +00000000000000000000000000000000000000000000000000ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffff00000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +ffffffffffffffffffffffffffffffffffffffd7000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffa5000000000000ffffffffffffffffffff00000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000003dffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffd2000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000ffff +ffffffffffffffffffffffffffffffffffc00000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffff9d0000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000057ffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000ffffffffffffffffffffffffffffffffffffffeb00000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffff3d000000000000fffffffffffffffff30000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000f7ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000003dffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000ffffffffffffffffffffffffffffffffffffffcc000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffff00000000000000000000000000000000000000000000000000 +0000000000000000000000000095ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000ffffffffffffffffffffffffff +ffffffffffffdc00000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffff00000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000 +ffffffffffffffffd20000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffff12000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffac0000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000ffffffffffffffffffffffffffffff +ffffffffd2000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000 +00000000000000000000000000000000000000000000000000ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffff000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000ffff +ffffffffffffffffffffffffffffffffffc60000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000f7ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffff0000000000ffffffffffffffff95000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff2000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffac0000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000ffffffff +ffffffffffffffffffffffffffffffc000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffac000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000012ffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000ffffffffffffffffffffffffffffffffffffffc0000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +6effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff4a00000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffff9d000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000ffffffffffffffffffffffffffffffffffffff9d0000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000ffffffffffffffffffffffffffffff +ffffffffffffffffffffffff0000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000f3ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffff00000000000000000000000000000000000000000000000000000000 +00000000000000000000000000f3ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000ffffffffffffffffffffffffffffff +ffffffffac000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffff0000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff57000000ffff +ffffffffffff0000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffff000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000efffffffff +ffffffffffffffffffffffffffffffffffffffffffffffff9d00000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000ffffffffffffffffffffffffffffffffff +ffffac0000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000ffffffff +ffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffff0000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000ffffffff +ffffffffffffffffffffffffffffff9500000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffb3000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffff000000ffffffffffffffff000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +9500000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000ffffffffffff +ffffffffffffffffffffffffffa5000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff0000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +008cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffef000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000ffffffffffffffffffffffffffffffffffffff8c0000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000ebffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff0000ffffffffffffffff12000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffff630000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffff950000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000ffffffffffffffffffffffffffffffffffffff8300000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000ffffffffffffffffffffffffffffffffff +ffffffffffffffff000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000095ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffff00000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffef00000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000ffffffffffffffffffffffffffffffffff +ffff950000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000ffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffff000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffac00ffffffff +ffffffffac000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000c0ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffff000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000d2ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffff79000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000ffffffffffffffffffffffffffffffffffffff +9d00000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000ffffffffffff +ffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff0000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000083ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ef00000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000ffffffffffff +ffffffffffffffffffffffffff79000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffb00000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffff00ffffffffffffffffff00000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffff00000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5700 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000ffffffffffffffff +ffffffffffffffffffffffa50000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000ffffffffffffffffffffffffffffffffffffffffffffffff000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffff70000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000ffffffffffffffffffffffffffffffffffffff4a00000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000acffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffd20000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffff3d00000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000ffffffffffffffffffffffffffffffffffffff8c000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000ffffffffffffffffffffffffffffffffffffff +ffffffffff000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000012ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ff3d000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000d7ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffeb000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000ffffffffffffffffffffffffffffffffffffff +5700000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb00 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffff0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000008cffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffff120000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000ffffffffffffffffffffffffffffffffffffff6e00 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000ffffffffffffffff +ffffffffffffffffffffffffffffff0000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffff0000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe100 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000ffffffffffffffff +ffffffffffffffffffffff200000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffff0000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffff000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffff00000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000ffffffffffffffffffff +ffffffffffffffffff2f00000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000ffffffffffffffffffffffffffffffffffffffffffffff000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +e1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffdc00000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000ffffffffffffffffffffffffffffffffffffff12000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffd7000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000004ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffa5000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffe60000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffff00000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00ffffffffffffffffffffffffffffffffffffff040000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff +ff57000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff6300 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffe10000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000ffffffffffffffffffffffffffffffffffffff2f00 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffff000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000020ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000ffffffffffffffffffffffffffffffffffffff04000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000ffffffffffffffffffff +ffffffffffffffffffffffff0000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000083ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffff0000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd2000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000ffffffffffffffffffff +ffffffffffffffffff0000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffeb0000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000063ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffff00000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000efffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffff00000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000ffffffffffffffffffffffff +ffffffffffffff04000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00fffffffffffffffffffffffffffffffffffffffffffb000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000020 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffba000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00ffffffffffffffffffffffffffffffffffffff000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffff8c0000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffff000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000ff +ffffffffffffffffffffffffffffffffffff1200000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff0000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc00000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb300000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000ffffffffffffffffffffffffffffffffffffff00000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000003dffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +d700000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000012ffffffffffffffffffffffffffffffffffffff000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000ffffffffffffffffffffffff +ffffffffffffffffff0000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000083ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffff0000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb30000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000ffffffffffffffffffffffff +ffffffffffffff00000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffff000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffff0000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffff0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000f3ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000003dffffffffffffffffffffffffffff +ffffffffff000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000ff +ffffffffffffffffffffffffffffffffffffffc6000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffff000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000012ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffac0000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000ff +ffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffff00000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +b3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffff000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffff0000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000004affffff +ffffffffffffffffffffffffffffffff04000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff9d000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000ffffffffffffffffffffffffffffffffffffff000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffba0000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffac +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffff000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000ffffffffffffffffffffffffffffffffffffff0000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000ffffffffffffffffffffffffffff +ffffffffffff0000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffff4a00000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffff6e00000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000ffffffffffffffffffffffffffff +ffffffffff000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffff000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000008cffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000012ffffffffffffffffffffffffffffffff +ffffff0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000ffffff +ffffffffffffffffffffffffffffffffd2000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000d2ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffff000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffff7900000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000ffffff +ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffff00000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000f3ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffff4a000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffe100000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ff00000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000063ffffffffff +ffffffffffffffffffffffffffff000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000ffffffffffffffffffffffffffffffffffffff0000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000ffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffff8c0000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000004ffffffffffffffffffffffffffffffffffffff0000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffff2f0000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000e1ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffff0000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000acffffffffffffffffffffffffffffffffffffff00000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000ffffffffffffffffffffffffffffffff +ffffff0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +9d00000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffff6e000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000004ffffffffffffffffffffffffffffffff +ffffff0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000012 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffff00000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000f3ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000063ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000009dffffffffffffffffffffffffffffffffffff +ff00000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000ffffffffff +ffffffffffffffffffffffffffd7000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000083ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffff000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000d2ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ff79000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000020ffffffffff +ffffffffffffffffffffffffffff000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffff00000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00ebffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffff000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000acffffffffffffff +ffffffffffffffffffffffff0000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000ffffffffffffffffffffffffffffffffffff0000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffff6e00000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000063ffffffffffffffffffffffffffffffffffffff00000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffff200000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000095ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffff950000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffff00000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000e1ffffffffffffffffffffffffffffffffffffff000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffff120000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000004affffffffffffffffffffffffffffffffffff +ff00000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000057ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffff00000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffff0400000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000003dffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000ffffffffffffff +ffffffffffffffffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffff000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000003dffffffffffffff +ffffffffffffffffffffffff0000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffff00000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff2000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000e1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000ffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000ffffffffffffffffffff +ffffffffffffffffffff00000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000ffffffffffffffffffffffffffffffffffff00000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000d2ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffff00000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000079ffffffffffffffffffffffffffffffffffffff000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffc00000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000ffffffffffffffffffffffffffffffffffffff +ffffffffffffffff000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffff000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000ffffffffffffffffffffffffffffffffff9d0000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000079ffffffffffffffffffffffffffffffffffffff00 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffc000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000002fffffffffffff +ffffffffffffffffffffffffffffffffff000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000ffffffffffffffffff +ffffffffffffffff000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffff9d0000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000079ffffffffffffffffff +ffffffffffffffffffff00000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ff00000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000ccffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000a5ffffffffffffffffffffffffffffffffff2f000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000d2ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000ffffffffffffffffffffffff +ffffffffffffffff000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000ffffffffffffffffffffffffffffffffff00000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000d7ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffff000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0063ffffffffffffffffffffffffffffffffffffff0000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffff0000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000b3ffffffffffffffffff950000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffff0000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000ff +ffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000ffffffffffffffffffffffffffffffffff0000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000079ffffffffffffffffffffffffffffffffffffff000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffc0000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffff00000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffff000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000002fffffffffffffffffffffff +ffffffffffff0000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffef0000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000079ffffffffffffffffffffff +ffffffffffffffff000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1200 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +006effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff7900000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000d2ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000ffffffffffffffffffffffffffff +ffffffffffff0000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000004a +ffffffffffffffffffffffffffffffffff000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000006effffffffffffffffffffffffffffff +ffffffffffffffffffffffffff00000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000e6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffff0000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000079 +ffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffff0000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000fbffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffff00000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000ffffff +ffffffffffffffffffffffffffffffffff000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000004affffffffffffffffffffffffffffffffd200000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000006effffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffff000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000baffffffffffffffffffffffffffffffffffffff0000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffff00000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff0000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000ffffffffffffffffffffffffffffffffffffffff00000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000004affffffffffffffffffffffffff +ffffff3d00000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000d7ffffffffffffffffffffffffff +ffffffffffff0000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000063ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000ffffffffffffffffffffffffffffffff +ffffffff00000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000002fffff +ffffffffffffffffffffffffffff000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffff63000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffff00000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000d2ffff +ffffffffffffffffffffffffffffffffff000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffff00000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffff000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000ffffffffff +ffffffffffffffffffffffffffffff0000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000004affffffffffffffffffffffffffffffff00000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000d7ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff0000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000ccffffffffffffffffffffffffffffffffffffff00000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffac0000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffff00000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000009dffffffffffffffffffffffffffffff +ff00000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000a5ffffffffffffffffffffffffffffff +ffffffff00000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000006effffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000006e0000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff +ffff000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000c6ffffffff +ffffffffffffffffffffffff0000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffb3000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffff000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000083ffffffff +ffffffffffffffffffffffffffffff0000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffff00000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000f7ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000a5ffc60000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000ffffffffffffff +ffffffffffffffffffffffffff00000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000d7ffffffffffffffffffffffffffffffff000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000009dffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffff00000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000c0ffffffffffffffffffffffffffffffffffffff000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff0000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffff6300000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000ffffff00000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000009dffffffffffffffffffffffffffffffff00 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000ebffffffffffffffffffffffffffffffffff +ffff000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000ffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffff300000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000b3ffffffff0000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000006effffffffffff +ffffffffffffffffffff00000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff +fffffffff3000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000ebffffffffffff +ffffffffffffffffffffffffff00000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffff000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffff040000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000ffffff +ffffff0000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000d7ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000ffffffffffffffffff +ffffffffffffffffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000009dffffffffffffffffffffffffffffffff0000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000004ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff2f00000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000f3ffffffffffffffffffffffffffffffffffffff0000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffff00000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffdc0000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000f7ffffffffffffb3000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffff0000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000ffffffffffffffffffffffffffffffffffffffff00000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000083ffffffffffffffffffffffffffffffff000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000f7ffffffffffffffffffffffffffffffffffffff +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffd20000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffba00000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000efffffffffffffffff0000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000008cffffffffffffffff +ffffffffffffffff000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffff000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000ffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000fbffffffffffffffff +ffffffffffffffffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffdc0000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000efffffffffffffffffffff +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000009dffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000ffffffffffffffffffffff +ffffffffffffffffff0000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000c0ffffffffffffffffffffffffffffffff00000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffff9d00000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffff0000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000ffffffffffffffffffffffffffffffffffffffff00000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffff12000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffdc00000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000003dffff +ffffffffffffffffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffff00000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000c6ffffffffffffffffffffffffffffffff0000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000baffffffffff +ffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffba0000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000c6ffffffffffffffffffffffffffff9d00000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000ffffffffffffffffffffffffffffffffffffffff00000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000d7ffffffffffffffffffff +ffffffffffff0000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000ffffffffffffffffffffff +ffffffffffffffffff0000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffff950000000000000000000000000000000000000000000000 +0000000000000000000000000063f3ffffffffffffffffffffffffffffffffff000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000008cffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000ffffffffffffffffffffffffff +ffffffffffffff00000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +dcffffffffffffffffffffffffffffffff000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffef00000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffff00000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffff000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffff6e0000000000000000 +00000000000000000000000000000000000000003debffffffffffffffffffffffffff +ffffffffffffffff000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffff000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000ffff +ffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000e6ffffffffffffffffffffffffffffffff00000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000095ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000ffffffffffffffffffffffffffffffffffffffff00000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffba63000000000000000000000000000000002fa5ebffffffffffffff +ffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000efffffffffffffffffffffffff +ffffffff00000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000ffffffffffffffffffffffffff +ffffffffffffff00000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +04ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff570000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000ffffffffffffffffffffffffffffff +ffffffffff000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000ffff +ffffffffffffffffffffffffffffff0000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd200000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffff000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000ffff +ffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000057ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffff0000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffff000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000f3ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffff0000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000ffffffff +ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000ffffffffffffffffffffffffffffffffff3d0000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000a5ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffff000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000020ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000006effffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffff000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffff20fbffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffff000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000ffffffffffffffffffffffffffffff +ffffd20000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000b3ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000ffffffffffffffffffffffffffffff +ffffffffff000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000009dff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffc60000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffeb0000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000ffffffffffffffffffffffffffffffffff +ffffff0000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000ffffffff +ffffffffffffffffffffffffffff000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffff00000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffff0000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000ffffffff +ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000009dffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffff00000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffff0000009dffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffff000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000d7ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ff00000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000ffffffffffff +ffffffffffffffffffffffffffff000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000ffffffffffffffffffffffffffffffffffff00000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000006effffffffffffffffffffffffffff +ffffffffffffffffffffffffffff6e0000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffff000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000095ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff0000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffb300000000ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffff00000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffff0000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000ffffffffffffffffffffffffffffffffffffffff00000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000ffffffffffffffffffffffffffffffffff +ff00000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000ffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000ffffffffffffffffffffffffffffffffff +ffffff0000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000008cffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffff000000000012ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000ffffffffffffffffffffffffffffffffffffff +ff00000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000ffffffffffff +ffffffffffffffffffffffff0000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ff00000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ff00000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000ffffffffffff +ffffffffffffffffffffffffffff000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000012ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffff000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000a5ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffc0000000000000baffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8c +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000012ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000ffffffffffffffff +ffffffffffffffffffffffff0000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000ffffffffffffffffffffffffffffffffffff040000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffba0000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffff0000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000ffffffffffffffffffffffffffffffffffffffff00000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffff00000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffff00000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000dc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffff00000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000ffffffffffffffffffffffffffffffffffffba +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000ccffffffffffff +ffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000083ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000ffffffffffffffffffffffffffffffffffffff +ff00000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000008cffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffff0400000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffac000000000000000057ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000ffffffffffffffff +ffffffffffffffffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000ffffffffffffffff +ffffffffffffffffffffffff0000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000ccffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +6e00000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffff00000000000000000000e6ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000ffffffffffffffffffff +ffffffffffffffffffff00000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000ffffffffffffffffffffffffffffffffffffff00000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffff0000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffff00000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000d2ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffef0000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffac00000000000000000000 +00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffff00000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000ffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffff000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000ffffffffffffffffffffffffffffffffffffff0000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000003dffffffffffffffffff +ffffffffffffffffffffffffffffffffffffff4a000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000d7ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ff000000000000000000000000baffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000ffffffffffffffffffff +ffffffffffffffffffcc00000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000008cffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000ffffffffffffffffffff +ffffffffffffffffffff00000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000ccffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000095ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffff2f00000000000000000000000000ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000ffffffffffffffffffffffff +ffffffffffffffff000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffff0000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffff000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000d2ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffff00000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000 +0000003dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffb3000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000dcffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffff0000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000ff +ffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffd2000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000ccffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +6e000000000000000000000000000000ebffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff0000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffff000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000ffffffffffffffffffffffff +ffffffffffffffff120000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000008cff +ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000ffffffffffffffffffffffff +ffffffffffffffff000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00c6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff200000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffff0000000000000000000000000000000000ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000ffffffffffffffffffffffffffff +ffffffffffff0000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000ff +ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffff0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +d2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffff0000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000ff +ffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000f3ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffcc0000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000002fffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffff830000000000000000000000 +0000000000008cffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffff000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000009dffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffff00000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000ffffff +ffffffffffffffffffffffffffffffffff000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000ffffffffffffffffffffffffffffffffffffffffff00000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffff000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffff000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000f3ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +00000000000000000000000000000000000000ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffff8300000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff0000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000ffffffffffffffffffffffffffffffffffffffff00000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000ffffffffffffffffffffffffffff +ffffffffffffff04000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000079ffffffff +ffffffffffffffffffffffffffffffffffffffffffffffff6e00000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000ffffffffffffffffffffffffffff +ffffffffffff0000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000ef +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffff2f0000000000000000000000000000000000000000ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000ffffffffffffffffffffffffffffffff +ffffffff00000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000ffffff +ffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000c0ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffff00000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000ffffff +ffffffffffffffffffffffffffffffffff000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffff00000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000ccffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000 +000000000000000000c0ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffff000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000ffffffffff +ffffffffffffffffffffffffffffff0000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000ffffffffffffffffffffffffffffffffffffffffffff0000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff0000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000ffffffffffffffffffffffffffffffffffffffff00000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffdc00000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83 +00000000000000000000000000000000000000000000ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffff00000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffff00000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000ffffffffffffffffffffffffffffffff +ffffffffffffb300000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd200000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000ffffffffffffffffffffffffffffffff +ffffffff00000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000fbffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffff00000000000000000000000000000000000000000000006e +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffff040000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff +ffff000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000ffffffffff +ffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000e1ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000ebffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffff000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000ffffffffff +ffffffffffffffffffffffffffffff0000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffff0000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000e6ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffff57000000000000000000000000 +000000000000000000000000e6ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000ffffffffffffff +ffffffffffffffffffffffffff00000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000ffffffffffffffffffffffffffffffffffffffffffffff000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffff000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffff00000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffc00000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 +00000000000000000000000000000000000000000000000000ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffff00000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000e1ffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff +ffffffffffff0000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000057ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff +ffff000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffff20000000000000000000000000000000000000000000000000 +0000acffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffcc0000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000ffffffffffffff +ffffffffffffffffffffffffffffffffff000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +6effffffffffffffffffffffffffffffffffffffffffffffffffffffff2f0000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000ffffffffffffff +ffffffffffffffffffffffffff00000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffff000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000057ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000 +000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000ffffffffffffffffff +ffffffffffffffffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000ffffffffffffffffffffffffffffffffffffffffffffffffe1000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffff000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffc0000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2f00 +00000000000000000000000000000000000000000000000000000000ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffff00000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000006effffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffff0000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000ffffffffffffffffffffffffffffffffffffffff00000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff +ffffffffff000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000fffffffffffffffffffffffffffffffffffffff7 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000d7ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffff00000000000000000000000000000000000000000000000000 +0000000000e1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff0000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000ffffffffffffffffff +ffffffffffffffffffffffffffffffff79000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffc00000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000ffffffffffffffffff +ffffffffffffffffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffff00000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff3d00000000000000000000000000 +000000000000000000000000000000000000ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffff20000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000ffffffffffffffffffffff +ffffffffffffffffff0000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000ffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000f3ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffff000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffff0000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000ffffffffffffffffffffffffffffffffffffffff00000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000c6ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 +0000000000000000000000000000000000000000000000000000000000004affffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ff00000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000004ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffef00000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffff +ffffffff57000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffff00000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffff2000000000000000000000000000000000000000000000000000 +0000000000000000ebffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffff0000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffe60000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000ffffffffffffffffffffffffffffffffffffffff00000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000ffffffffffffffffffffff +ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000ffffffffffffffffffffff +ffffffffffffffffff0000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffff300000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000fbffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000 +000000000000000000000000000000000000000000ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffff4a000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000ffffffffffffffffffffffffff +ffffffffffffff00000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd200000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000095ffffffffffffffffffffffffffffffffffffffffffffffffffffffff2f +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffff00000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff0000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000 +000000000000000000000000000000000000000000000000000000000000000000d2ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffe11200000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffff04000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000ffff +ffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffff00000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffff00000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000ffffffffffffffffffffffffffffffffffffffff00000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffd70000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000fbffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffff0000000000000000000000000000000000000000000000000000 +0000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff5700000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000e1ffff +ffffffffffffffffffffffffffffffffff120000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000008cffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000ffffffffffffffffffffffffff +ffffffffffffff00000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffff0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffff200000000000000000000000000000 +000000000000000000000000000000000000000000000063ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffa5000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000ffffffffffffffffffffffffffffffffffffffffff790000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000ffffffffffffffffffffffffffffff +fffffffff3000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffff9d00000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffff000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000ffff +fffffffffffffffffffffffffffffffffffb0000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffeb0000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000063ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00f3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffb00000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000ffffffffffffffffffffffffffffffff +ffffffffffffff00000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000ffffffff +ffffffffffffffffffffffffffffff6e00000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffff00000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000e6ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffff00000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000ffffffffffffffffffffffffffffffffffffffef000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffff000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffb200000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000a5ffffffffff +ffffffffffffffffffffffffffffffffffffffef000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000ffffffffffffffffffffffffffffffffffffff000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000ffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffff700000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000095ffffffffffffffffffffffffffffffff20000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000ffffffffffffffffffffffffffffff +ffffffffd2000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffff0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000c6ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2f00 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffba0000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000c6ffffffffffffffffffffffffffffffff +ffff000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000063ffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffff7900000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000ffffffffffffffffffffffffff +ffffffffff000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000ffffffff +ffffffffffffffffffffffffffffff4a00000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffff000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000ebffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffff9d0000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffff3d000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000ffffffffff +ffffffffffffffffffffffffff00000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffff00000000000000000000000000000000000000000000000000000000000000 +0000000000000000000057ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffff79000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000ffffff +ffffffffffffffffffffffffffffffffffe10000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000ffffffffffffffffffffffffffffffffffffff000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffff000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000079ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffdc00000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000063ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000095ffffffffffffffffffffffffffffffff000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000 +000000000000000000000000000000000000000000ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff0000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000a5ffffffffffffffffffffffffffffffffffffffffffff8c00000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000ffffffffffffffffffffffffffffffffff +ffff000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000ffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffef0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffff0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +e600000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000dcffffffffffffffffffffffffffff9500 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe100000000000000 +0000000000000000000000000000000000000000000000000000000000000000ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000ffffffffffffffffffffffffffffffffff +ffffffffffffffff000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000ffffffffffff +ffffffffffffffffffffffffff00000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffff000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000c6ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000002fffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff3d000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffff4a000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000009dffffffff +ffffffffffffffff120000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffff00000000000000000000000000000000000000000000000000000000000000 +0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffa5000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000ffffffffffffffffffffffffffffffffffe60000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffff00000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000efffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9d0000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000009dffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000e6fffffffffffffff7630000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000020ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000 +000000000000000000000000000000000000dcffffffffffffffffffffffffffffffff +ffffffffffffffffffffffff0000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc00 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000ffffffffffffffffffffffffffffffff00 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000d7ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffff0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000ffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffff000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffff00000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000f3ff200000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000 +0000000000000000000000000000000000000000000000000000000000ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000acffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffff8c0000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000ffffffffffff +ffffffffffffffffff8c00000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffff570000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000004affffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff4a00000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffac000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000ffffffff0000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffff000000000000000000000000000000000000000000000000000000000000 +0000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffb00 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffff0400000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000ffffffffffffffffffffffffff3d000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000008cffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffff00000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8c +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000ffff +ffffffffff000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffe6000000000000000000000000000000000000 +00000000000000000000000000000000ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffff2f00000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffff000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000020ffffffffffffffffff4a000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffff0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000d2ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffe100000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000ffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffff00000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000ffffffffffffffffc60000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000d2ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffff8c000000000000 +000000000000000000000000000000000000000000000000000000ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffac0000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000dc9d00000000000000002f12 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +004affffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff0000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff7000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcc000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000004affffffffffffffffffff6e00000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffff830000000000000000000000000000000000000000000000000000000000 +000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000ff +ffff3d0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffd70000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffff0000000000000000000000000000000000000000000000000000000000 +000000000000000000000000c6ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffff3d000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff630000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000ffffffffff +ffffffffffffffff200000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffa50000000000000000000000000000000000 +0000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffc000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffff000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000efffffffffff1200000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffff7900000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000 +00000000000000000000000000000000000000000000a5ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffba0000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffff00000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000ffffffffffffffffffffffffffffff0000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff790000000000 +00000000000000000000000000000000000000000000000000ffffffffffffffffffff +ffffffffffffffffffffffffffffffffff000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffd70000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000ffffffffffffffff00000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000004ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff0000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000 +0000000000000000000000000000000000000000000000000000000000000000a5ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd200000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000baffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffb000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000fbffffffffffffffffffffffffffffffffd700 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffff7900000000000000000000000000000000000000000000000000000000 +00ffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9500000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000ffffffff +ffffffffffff0000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffff0000000000000000000000000000000000000000000000000000000000 +000000000000004affffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffff0000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +9d00000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000ffffffffffffffff +ffffffffffffffffffffffcc0000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff8300000000000000000000000000000000 +000000000000000000000000efffffffffffffffffffffffffffffffffffffffffffff +ffffffff00000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffff000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000ffffffffffffffffffffffffe100000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffff00000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffff000000000000000000000000000000000000 +00000000000000000000000000000000002fffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffff83000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffff00000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000f3ffffffffffffffffffffffffffffffffffffffffff6e00000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb300000000 +000000000000000000000000000000000000000000000000ffffffffffffffffffffff +ffffffffffffffffffffffffffff000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffe60000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000ffffffffffffffffffffffffffffc0000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000b3ffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000 +00000000000000000000000000000000000000000000000000000020ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +e100000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000e1ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffcc000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffff +ffff000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000f7ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffa5000000000000000000000000000000000000000000000000000000 +ffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000002fffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000dcffffffffffffff +ffffffffffffffffff9d00000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffff000000000000000000000000000000000000000000000000000000000000 +000057ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffff000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000004ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffff7900000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000ffffffffffffffffffffffff +ffffffffffffffffffffffffffffe60000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000 +000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffff +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000002fffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffff040000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000ffffffffffffffffffffffffffffffffffffff00000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffff000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000079ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffff000000000000000000000000000000000000 +000000000000000000000000a5ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffff4a00000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000ffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffff300000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000 +0000000000000000000000000000000000000000000000ffffffffffffffffffffffff +ffffffffffffffffffffba000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000dcffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000e1ffffffffffffffffffffffffffffffffffffffffa5 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffff200000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000 +00000000000000000000000000000000000000000000efffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffff8c0000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffac0000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000ccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffff9d00000000000000000000000000000000000000000000000000 +ffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffe6000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000ffffffffffffffffffffff +ffffffffffffffffffffffffe100000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000020ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6e0000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffff000000000000000000000000000000000000000000000000000000efffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd700000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000004ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffff9500000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff0400000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffff300000000000000000000000000 +000000000000000000000000ffffffffffffffffffffffffffffffffffffff00000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000083ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffff9d0000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000ff +ffffffffffffffffffffffffffffffffffffffffffffffffff8c000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffc000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000e6ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000 +00000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff120000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000079ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffff12000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 +000000000000000000000000000000000000000000000000ffffffffffffffffffffff +ffffffffffd20000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000d7ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffff2f00000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000083ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffff6e00000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000d7ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffeb00000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000020ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000 +0000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffff3d000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000d2ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000f3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffeb0000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffba0000000000000000000000000000000000000000000000 +002fffffffffffffffffffffffffff0000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffff000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffff0000000000000000000000000000000000000000000000ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcc0000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffdc00000000000000000000000000000000000000000000000000 +0000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffba00000000000000000000000000 +00000000000000000000000000000000000000000000000000000000f3ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffff1200000000000000000000 +000000000000000000000000000000ffffffffffffffffff0000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000e1ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffe60000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffff000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000003dffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffeb00000000000000000000000000000000000000 +009dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffff120000000000000000000000000000000000000000000000000000000000000000 +00000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffff2f000000000000000000000000 +000000000000000000000000000000000000000000000000ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff57 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000f3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffff000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000baffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3d00000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000baffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd700000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000dcffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffff630000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000e6ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000 +0000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffdc00000000000000000000000000000000000000 +00000000000000000000000000000000dcffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +00000000000000000000000000000000000000000000000000000000000000000000ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffff0000000000000000000000000000000000000000000000 +00000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffff000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffff000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000008cffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffff9d000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000063ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff30000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffb0000000000000000000000000000000000ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe63d00000000 +00000000000000000000000000000000000000000000000063ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffff63000000000000000000000000000000000000000000 +0000000000000000d2ffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffff700000000000000000000 +0000000000000000000000000000000000000000000000ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffff1200000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffa50000000000000000000000000000 +000000000000000000000000000000000000000000000000008cffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff570000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000008cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffff00000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000020ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff000000000000000000000000000000acffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffb6e00000000000000000000000000000000000000000083ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffdc0000000000000000 +0000000000000000000000000000000000a5ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffff2000000000000000000000000000000000000000000000000000000000a5ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffff000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9500 +0000000000000000000000000000000000000000000000000000000000000000000000 +a5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffff00000000000000000000000000000000000000000000000000 +0000000000000000000000000000acffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffff6e000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000002fffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffb30000000000000000 +0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffe18c3d000000000000 +000457baffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffff78c00000000000000000000000000000000000020ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffff790000000000000000000000000000000000 +000000000000ccffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffff000000000000000000000000000000000000000000000000 +00000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000 +000000000000000000000000000000000000000000000000e1ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000003dffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffff8300000000000000000000006effffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffc62f00000000000000000004a5ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0000000 +00000000000000000000000000006effffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff20000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000004affffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffff7900000000000000000000 +0000000000000000000000000000000000000012ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +cc000000000000000000000000000000000000000000000000000000000000000000ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffef000000000000000000000000ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffb6e00000000000020638cebffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffc600000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000e6 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffff70000000000000000000000000000000000000000000000000000f7ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffff630000000000000000000000000000000000000000 +0000000000000000d2ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00008cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffff79000000000000000000000000c6ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffff6e0000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000baffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffff790000000000000000000000000000000000 +00004affffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffb57000000000000 +0000000000000000000000000000000000b3ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffb0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000dcffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6000000000000 +0000000000000020ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffff790000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000009dffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc04a00 +0000000000000000004ad2ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffeb57000000000000000000000000000000004affffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb300000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000008cffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +dc00000000000000000000000000000000ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffff3200000000000000000000000000000000000 +000000000000000000000000000000000000000000004ae1ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffba4a1200000000005795d7ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000b3ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffff9d0000000000000000000000000000000000b3ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0120000 +00000000000000000000000000000000000000000000000000000000008cdcffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffff0000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000009dffffffffffffffff +ffffffffffffffffffffffffffeb200000000000000000000000000000000000000000 +4affffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffb3200000000000000000000000000000000000001257 +a5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffeb00000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000002fa54a0412000000000000000000000000000000000000 +0000000000000000006effffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000057ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffe600000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000083ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffe1000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00d7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ff4a000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000e6ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffa50000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000003dffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe100000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000dcffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffff9500000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +ccffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffff950000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000ccffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff74a +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000004d2ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffff3a5000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000063ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0200000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000a5ffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffff76e000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +004accffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffefa5040000000000 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000000002095f3ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffe6d2a56e0000000000000000000000000000000000000000 +000000000000004a799dc6e6fbffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +baffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffff +grestore + +cleartomark +countdictstack exch sub { end } repeat +restore grestore +% +% End Imported PIC File: /home/valette/ev-perso-doc/canon.eps +%%EndDocument +% +% Polyline +n 450 1530 m 8685 1530 l 8685 1575 l gs col0 s gr +% Polyline +n 450 2025 m 8685 2025 l 8685 2070 l gs col0 s gr +% Polyline +n 2970 1530 m 2970 2025 l gs col0 s gr +/Times-Bold ff 210.00 scf sf +585 1845 m +gs 1 -1 sc (Project : ) col0 sh gr +/Times-Bold ff 210.00 scf sf +3060 1845 m +gs 1 -1 sc (Document title : ) col0 sh gr +% Polyline +n 450 10305 m 8685 10305 l 8685 10350 l gs col0 s gr +% Polyline +n 450 45 m 8685 45 l 8685 11025 l 450 11025 l cp gs col0 s gr +/Times-Roman ff 210.00 scf sf +4500 4275 m +gs 1 -1 sc (Tools project Leader) col0 sh gr +/Times-Roman ff 210.00 scf sf +4770 4635 m +gs 1 -1 sc (TA) col0 sh gr +/Times-Roman ff 210.00 scf sf +1350 4275 m +gs 1 -1 sc (E. Valette) col0 sh gr +/Times-Roman ff 210.00 scf sf +4725 6210 m +gs 1 -1 sc (TA) col0 sh gr +/Times-Roman ff 210.00 scf sf +1620 6210 m +gs 1 -1 sc (CRF) col0 sh gr +/Times-Roman ff 210.00 scf sf +1305 5850 m +gs 1 -1 sc (E. Valette) col0 sh gr +/Times-Roman ff 210.00 scf sf +4410 5850 m +gs 1 -1 sc (Tools project Leader) col0 sh gr +/Times-Roman ff 210.00 scf sf +1620 4635 m +gs 1 -1 sc (CRF) col0 sh gr +/Times-Roman ff 210.00 scf sf +495 7965 m +gs 1 -1 sc (H. Dias) col0 sh gr +/Times-Roman ff 210.00 scf sf +495 8280 m +gs 1 -1 sc (E. Valette) col0 sh gr +/Times-Roman ff 210.00 scf sf +495 8595 m +gs 1 -1 sc (E. Raguet) col0 sh gr +/Times-Roman ff 210.00 scf sf +3240 7965 m +gs 1 -1 sc (TA) col0 sh gr +/Times-Roman ff 210.00 scf sf +3240 8595 m +gs 1 -1 sc (TA) col0 sh gr +/Times-Roman ff 210.00 scf sf +6030 8595 m +gs 1 -1 sc (Author) col0 sh gr +/Times-Roman ff 210.00 scf sf +3240 8280 m +gs 1 -1 sc (TA) col0 sh gr +/Times-Roman ff 210.00 scf sf +4590 8280 m +gs 1 -1 sc (Project Leader) col0 sh gr +/Times-Roman ff 210.00 scf sf +4590 7965 m +gs 1 -1 sc (Manager) col0 sh gr +/Times-Roman ff 210.00 scf sf +4590 8595 m +gs 1 -1 sc (Engineer) col0 sh gr +/Times-Roman ff 210.00 scf sf +6030 8280 m +gs 1 -1 sc (Approval) col0 sh gr +/Times-Roman ff 210.00 scf sf +7650 7965 m +gs 1 -1 sc (1 \(Paper\)) col0 sh gr +/Times-Roman ff 210.00 scf sf +7650 8280 m +gs 1 -1 sc (2 \(Paper\)) col0 sh gr +/Times-Roman ff 210.00 scf sf +7650 8595 m +gs 1 -1 sc (3 \(Paper\)) col0 sh gr +/Times-Roman ff 210.00 scf sf +3690 3375 m +gs 1 -1 sc (98.TA.0373.M.ER) col0 sh gr +/Times-Roman ff 210.00 scf sf +6030 7965 m +gs 1 -1 sc (Info) col0 sh gr +/Times-Roman ff 270.00 scf sf +1530 1845 m +gs 1 -1 sc (TOOLS ) col0 sh gr +/Times-Roman ff 210.00 scf sf +1800 2340 m +gs 1 -1 sc (29/09/98) col0 sh gr +/Times-Roman ff 210.00 scf sf +1665 2835 m +gs 1 -1 sc (Emmanuel RAGUET, Eric VALETTE CRF TA Dept. ) col0 sh gr +/Times-Roman ff 210.00 scf sf +7470 2340 m +gs 1 -1 sc (2.0) col0 sh gr +/Times-Roman ff 210.00 scf sf +4905 2340 m +gs 1 -1 sc (02/11/98) col0 sh gr +/Times-Roman ff 210.00 scf sf +4725 1845 m +gs 1 -1 sc (RTEMS Remote Debugger Server Specs) col0 sh gr +$F2psEnd +rs diff --git a/doc/rgdb_specs/gdbinternals.t b/doc/rgdb_specs/gdbinternals.t new file mode 100644 index 0000000000..caef8928bc --- /dev/null +++ b/doc/rgdb_specs/gdbinternals.t @@ -0,0 +1,214 @@ +@c +@c RTEMS Remote Debugger Server Specifications +@c +@c Written by: Eric Valette +@c Emmanuel Raguet +@c +@c +@c $Id$ +@c + +@chapter A Rapid Tour of GDB Internals + +To help the reader to understand what needs to be implemented, we +will present briefly how GDB works regardless if the target is local or remote. +A debugger is a tool which enables control of the execution of software on a +target system. In most of cases, the debugger connects to a target system, attaches +a process, inserts breakpoints and resumes execution. Then the normal execution +is completely events driven (process execution stopped due to a breakpoint, +process fault, single-step,...) coming from the debuggee. It can also directly +access some parts of the target processor context (registers, data memory, code +memory,...) and change their content. Native GDB debugger can just be seen as +special cases where the host and the target are on the same machine and GDB +can directly access the target system debug API. + + +In our case, the host and the target are not on the same machine and +an Ethernet link is used to communicate between the different machines. Because +GDB needs to be able to support various targets (including Unix core file, ...), +each action that needs to be performed on the debuggee is materialized by a +field of the following @emph{targets_op}s structure : + +@example +struct target_ops +@{ + char *to_shortname; /* Name this target type */ + char *to_longname; /* Name for printing */ + char *to_doc; /* Documentation. Does not include trailing + newline, and starts with a one-line descrip- + tion (probably similar to to_longname). */ + void (*to_open) PARAMS ((char *, int)); + void (*to_close) PARAMS ((int)); + void (*to_attach) PARAMS ((char *, int)); + void (*to_detach) PARAMS ((char *, int)); + void (*to_resume) PARAMS ((int, int, enum target_signal)); + int (*to_wait) PARAMS ((int, struct target_waitstatus *)); + void (*to_fetch_registers) PARAMS ((int)); + void (*to_store_registers) PARAMS ((int)); + void (*to_prepare_to_store) PARAMS ((void)); + + /* Transfer LEN bytes of memory between GDB address MYADDR and + target address MEMADDR. If WRITE, transfer them to the target, else + transfer them from the target. TARGET is the target from which we + get this function. + + Return value, N, is one of the following: + + 0 means that we can't handle this. If errno has been set, it is the + error which prevented us from doing it (FIXME: What about bfd_error?). + + positive (call it N) means that we have transferred N bytes + starting at MEMADDR. We might be able to handle more bytes + beyond this length, but no promises. + + negative (call its absolute value N) means that we cannot + transfer right at MEMADDR, but we could transfer at least + something at MEMADDR + N. */ + + int (*to_xfer_memory) PARAMS ((CORE_ADDR memaddr, char *myaddr, + int len, int write, + struct target_ops * target)); + + void (*to_files_info) PARAMS ((struct target_ops *)); + int (*to_insert_breakpoint) PARAMS ((CORE_ADDR, char *)); + int (*to_remove_breakpoint) PARAMS ((CORE_ADDR, char *)); + void (*to_terminal_init) PARAMS ((void)); + void (*to_terminal_inferior) PARAMS ((void)); + void (*to_terminal_ours_for_output) PARAMS ((void)); + void (*to_terminal_ours) PARAMS ((void)); + void (*to_terminal_info) PARAMS ((char *, int)); + void (*to_kill) PARAMS ((void)); + void (*to_load) PARAMS ((char *, int)); + int (*to_lookup_symbol) PARAMS ((char *, CORE_ADDR *)); + void (*to_create_inferior) PARAMS ((char *, char *, char **)); + void (*to_mourn_inferior) PARAMS ((void)); + int (*to_can_run) PARAMS ((void)); + void (*to_notice_signals) PARAMS ((int pid)); + int (*to_thread_alive) PARAMS ((int pid)); + void (*to_stop) PARAMS ((void)); + enum strata to_stratum; + struct target_ops + *DONT_USE; /* formerly to_next */ + int to_has_all_memory; + int to_has_memory; + int to_has_stack; + int to_has_registers; + int to_has_execution; + struct section_table + *to_sections; + struct section_table + *to_sections_end; + int to_magic; + /* Need sub-structure for target machine related rather than comm related? */ +@}; +@end example + +This structure contains pointers to functions (in C++, this would +be called a virtual class). Each different target supported by GDB has its own +structure with the relevant implementation of the functions (some functions +may be not implemented). When a user connects GDB to a target via the ``target'' +command, GDB points to the structure corresponding to this target. Then the +user can attache GDB to a specific task via the ``attach'' command. We have +therefore identified two steps to begin a remote debug session : + +@enumerate +@item the choice of the target type (in our case RTEMS), +@item the choice of what to debug (entire system, specific task,...), +@end enumerate +Note that in the case of natives debugger, the choice of the target is implicitly +performed by commands like @b{run}, @b{attach}, @b{detach}. Several +figures will now be described showing the main steps of a debug session. + +@C XXX figure reference +Figure @b{Debug session initialization} explains how the debugger connects to the target +: + +@enumerate +@item The debugger opens a connection to the target. The word ``connection'' +doesn't only mean Ethernet or serial link connection but all the ways by which +a process can communicate with another one (direct function call, messages mailbox, +...), +@item The targets checks if it can accept or reject this connection, +@item If the connection is accepted, the host ``attaches'' the process, +@item the target stops the process, notifies a child's stop to the host +and waits for command, +@item the host can ask information about the debugged process (name, registers,...) +or perform some action like setting breakpoints, ... +@end enumerate + +@C XXX figure reference +Figure @b{Breakpoint and process execution} explains how the debugger manages the +breakpoints and controls the execution of a process : + +@enumerate +@item The host asks the debuggee what is the opcode at the concerned address +in order for GDB to memorize this instruction, +@item the host sends a CONTINUE command : it asks the target to write the +``DEBUG'' opcode (for example, the INTEL ``DEBUG'' opcode is INT3 which +generate a breakpoint trap) instead of the debugged opcode. +@item then the host waits for events, +@item after the change of instruction, the target resumes the execution +of the debuggee, +@item when the ``DEBUG'' opcode is executed, the breakpoint exception +handler is executed and it notifies the host that the process is stopped. Then +it waits for commands (if no command is sent after a certain amount of time, +the connection will be closed by the target). +@item the host asks the target to re-write the right opcode instead of the +''DEBUG'' opcode and then can ask information +@end enumerate + +@C XXX figure reference +Figure @b{Breakpoint and process execution} also shows the case of other ``CONTINUE'' +commands (remember that the ``DEBUG'' opcode has been replaced by the right +instruction): + +@enumerate +@item Host sends first a ``single step'' command to execute the debugged +instruction, +@item It then waits for ``single step`` exception event, +@item the target, once the single step executed, calls the debug exception +handler. It notifies the host that execution is suspended and wait for commands. +@item the host asks the target to re-write the ``DEBUG'' opcode (breakpoint +trap) instead of the debugged one. +@item then the host sends a ``CONTINUE'' command in order the target to +resume the process execution to the next breakpoint. +@end enumerate + +@C XXX figure reference +Figure @b{Detach a process and close a connection} explains how the debugger disconnects from +a target : + +@enumerate +@item the host sends a detach command to the target. +@item the target detaches the concerned process, notifies the detachment +and resumes the process execution. +@item once notified, the host sends a close connection command. +@item the target closes the connection. +@end enumerate +These 3 examples show that the mains actions that are performed by +the host debugger on the target are only simple actions which look like : + +@itemize @b +@item read/write code, +@item read/write data, +@item read/write registers, +@item manage exceptions, +@item send/receive messages to/from the host. +@end itemize + + +@example +XXX Figure seg_init.eps +XXX Debug session initialization +@end example + +@example +XXX Figure seq_break.eps +XXX Breakpoint and process execution +@end example + +@example +XXX Figure seq_detach.eps +XXX Detach a process and close a connection +@end example + diff --git a/doc/rgdb_specs/interfacing.t b/doc/rgdb_specs/interfacing.t new file mode 100644 index 0000000000..8416ec5266 --- /dev/null +++ b/doc/rgdb_specs/interfacing.t @@ -0,0 +1,79 @@ +@c +@c RTEMS Remote Debugger Server Specifications +@c +@c Written by: Eric Valette +@c Emmanuel Raguet +@c +@c +@c $Id$ +@c + +@chapter Interfacing GDB with RTEMS as a Target + +@C XXX figure reference +So, basically, porting GDB to RTEMS environment requires implementing +the functions contained in the target_ops structure. The native debugger implementation +(where the host machine is also the target one) uses direct function calls. +For our needs (remote debugging), these functions must be implemented to support +the encapsulation in UDP/IP layers and communications between different types +of host machines : the best solution is use the SUN Remote Procedure Calls API +(SUN RPC). This SUN RPC module will be explained below (see paragraph @b{Communication with GDB}). + +We can note that the functions described in the target_ops structure +are high-level functions. The main reason is that GDB was designed in order +to be able to use monitor firmware as a debug server. In the case of a Unix +OS target, these high-level functions are implemented themselves using a lower +level POSIX API. Because we want to simplify the code running on the target +and decrease its size of this code, we propose to use the POSIX layer API used +for the debug like @b{waitpid}, @b{ptrace}, ... Due to the GDB working +mode and due to our requirements, we can establish here a non-exhaustive list +of some commands required to implement the previously described functions : + +@itemize @b +@item set up a connection with a target, +@item close a connection, +@item send a signal to the specified process, +@item get a list of process/thread/connection running, +@item control process under debug, +@item ... +@end itemize +Control means that, with this function, we can read, write the memory +of the debuggee, insert breakpoint to stop the process and resume the process +execution. This command can be implemented by emulating in the RTEMS environment +a Unix function called ``ptrace''. This function allows the control of a child +process. The ``ptrace'' function has some sub-functions which are described +below (some of these actions and standardized, the others are added due to our +needs) : + +@itemize @b +@item PTRACE_PEEKTEXT, PTRACE_PEEKDATA : read word at address, +@item PTRACE_POKETEXT, PTRACE_POKEDATA :write word at address, +@item PTRACE_CONT : restart after signal, +@item PTRACE_KILL : send the child a SIGKILL to make it exit, +@item PTRACE_SINGLESTEP : set the trap flag for single stepping, +@item PTRACE_ATTACH : attach to the process specified, +@item PTRACE_DETACH : detach a process that was previously attached. +@end itemize +This list only contains the command that are described in the ptrace +Unix manpage. For some specific needs (debug of one task among several ones, +register read/write,...), it is possible to create some special ptrace commands +as described after : + +@itemize @b +@item get current task registers, +@item set current task registers, +@item list of the threads, +@item identifier of the target thread, +@item restart to address, +@item set breakpoint at address, +@item clear breakpoint, +@item get breakpoints, +@item load dynamically a task, +@item ... +@end itemize +This list is not exhaustive and can be increased due to the needs. +All the described functions will not be implemented in a first version, only +the strictly needed. If some commands are added, the modifications must be implemented +both in RTEMS and in GDB. + + diff --git a/doc/rgdb_specs/intro.t b/doc/rgdb_specs/intro.t new file mode 100644 index 0000000000..5490eefa51 --- /dev/null +++ b/doc/rgdb_specs/intro.t @@ -0,0 +1,39 @@ +@c +@c RTEMS Remote Debugger Server Specifications +@c +@c Written by: Eric Valette +@c Emmanuel Raguet +@c +@c +@c $Id$ +@c + +@chapter Introduction + +The TOOLS project aims to provide a complete development environment +for RTEMS OS. This environment must be as close as possible to the Chorus one +(gnu compiler, gnu linker, gnu debugger, ...), because it is currently the OS +which is the most used at CRF and we want to simplify the migration path from +the ChorusOs environment to the RTEMS environment. One important item of this +development environment is the remote debugger which allows the developer to +debug his software on a target machine from a host machine via a communication +link (Ethernet, serial link, ...). + + +The choice of GDB as debugger has been made with because in CRF, every +developer, which uses the ChorusOs development environment, debugs his software +using the remote debugging functionality of GDB. Providing a remote GDB debug +server running on RTEMS, will enable the developers to use transparently the +same debugger for a different RTOS. Another reason for the choice of GDB is +its constant evolution, and that it can be interfaced with graphic user interfaces +like DDD providing a very powerfull debugging environment. + + +The subject of this document is to explain how GDB works and the way +to implement a daemon on RTEMS that will be used as a debugger server for a +GDB client. We will call this daemon Rtems GDB Debug Server Daemon (RGDBSD). +We aim to provide this debugger running at least on 2 host systems : Linux 2.x +and Solaris 2.5.1 as they are the two platforms used for developing Chorus applications +today. + + diff --git a/doc/rgdb_specs/layers.eps b/doc/rgdb_specs/layers.eps new file mode 100644 index 0000000000..e3427f67eb --- /dev/null +++ b/doc/rgdb_specs/layers.eps @@ -0,0 +1,359 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: layers.eps +%%Creator: fig2dev Version 3.2 Patchlevel 0-beta3 +%%CreationDate: Mon Oct 5 16:01:44 1998 +%%For: raguet@genesis (Emmanuel Raguet) +%%Orientation: Portrait +%%BoundingBox: 0 0 445 609 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%Magnification: 1.0000 +%%EndComments +/$F2psDict 200 dict def +$F2psDict begin +$F2psDict /mtrx matrix put +/col-1 {0 setgray} bind def +/col0 {0.000 0.000 0.000 srgb} bind def +/col1 {0.000 0.000 1.000 srgb} bind def +/col2 {0.000 1.000 0.000 srgb} bind def +/col3 {0.000 1.000 1.000 srgb} bind def +/col4 {1.000 0.000 0.000 srgb} bind def +/col5 {1.000 0.000 1.000 srgb} bind def +/col6 {1.000 1.000 0.000 srgb} bind def +/col7 {1.000 1.000 1.000 srgb} bind def +/col8 {0.000 0.000 0.560 srgb} bind def +/col9 {0.000 0.000 0.690 srgb} bind def +/col10 {0.000 0.000 0.820 srgb} bind def +/col11 {0.530 0.810 1.000 srgb} bind def +/col12 {0.000 0.560 0.000 srgb} bind def +/col13 {0.000 0.690 0.000 srgb} bind def +/col14 {0.000 0.820 0.000 srgb} bind def +/col15 {0.000 0.560 0.560 srgb} bind def +/col16 {0.000 0.690 0.690 srgb} bind def +/col17 {0.000 0.820 0.820 srgb} bind def +/col18 {0.560 0.000 0.000 srgb} bind def +/col19 {0.690 0.000 0.000 srgb} bind def +/col20 {0.820 0.000 0.000 srgb} bind def +/col21 {0.560 0.000 0.560 srgb} bind def +/col22 {0.690 0.000 0.690 srgb} bind def +/col23 {0.820 0.000 0.820 srgb} bind def +/col24 {0.500 0.190 0.000 srgb} bind def +/col25 {0.630 0.250 0.000 srgb} bind def +/col26 {0.750 0.380 0.000 srgb} bind def +/col27 {1.000 0.500 0.500 srgb} bind def +/col28 {1.000 0.630 0.630 srgb} bind def +/col29 {1.000 0.750 0.750 srgb} bind def +/col30 {1.000 0.880 0.880 srgb} bind def +/col31 {1.000 0.840 0.000 srgb} bind def + +end +save +-51.0 635.0 translate +1 -1 scale + +/cp {closepath} bind def +/ef {eofill} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth} bind def +/tr {translate} bind def +/tnt {dup dup currentrgbcolor + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} + bind def +/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul + 4 -2 roll mul srgb} bind def +/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def +/$F2psEnd {$F2psEnteredState restore end} def +%%EndProlog + +$F2psBegin +10 setmiterlimit +n -1000 11576 m -1000 -1000 l 9251 -1000 l 9251 11576 l cp clip + 0.06000 0.06000 sc +% Polyline +7.500 slw + [60] 0 sd +gs clippath +4530 2904 m 4500 3048 l 4470 2904 l 4470 3090 l 4530 3090 l cp +clip +n 5325 2100 m 5324 2101 l 5321 2104 l 5313 2111 l 5302 2121 l 5290 2133 l + 5278 2143 l 5267 2153 l 5257 2161 l 5248 2168 l 5238 2175 l + 5229 2181 l 5219 2187 l 5209 2193 l 5198 2199 l 5186 2205 l + 5173 2211 l 5161 2216 l 5148 2222 l 5135 2227 l 5123 2231 l + 5112 2234 l 5100 2238 l 5088 2240 l 5077 2242 l 5064 2244 l + 5051 2246 l 5037 2247 l 5023 2248 l 5009 2249 l 4994 2249 l + 4980 2250 l 4966 2250 l 4952 2250 l 4938 2250 l 4923 2250 l + 4908 2250 l 4891 2250 l 4874 2250 l 4857 2250 l 4839 2250 l + 4822 2250 l 4805 2250 l 4790 2250 l 4775 2250 l 4762 2250 l + 4750 2250 l 4737 2250 l 4724 2250 l 4712 2250 l 4701 2251 l + 4689 2252 l 4678 2253 l 4668 2255 l 4658 2257 l 4648 2259 l + 4638 2263 l 4627 2266 l 4615 2271 l 4603 2277 l 4590 2283 l + 4577 2291 l 4564 2299 l 4552 2308 l 4542 2318 l 4533 2327 l + 4525 2338 l 4520 2345 l 4516 2353 l 4513 2363 l 4510 2373 l + 4507 2385 l 4505 2398 l 4503 2412 l 4502 2428 l 4501 2445 l + 4501 2464 l 4500 2483 l 4500 2504 l 4500 2526 l 4500 2550 l + 4500 2566 l 4500 2583 l 4500 2602 l 4500 2622 l 4500 2644 l + 4500 2668 l 4500 2695 l 4500 2724 l 4500 2756 l 4500 2790 l + 4500 2826 l 4500 2864 l 4500 2903 l 4500 2940 l 4500 2975 l + 4500 3006 l 4500 3032 l 4500 3075 l gs col0 s gr gr + [] 0 sd +% arrowhead +n 4530 2904 m 4500 3048 l 4470 2904 l 4500 2928 l 4530 2904 l cp gs 0.00 setgray ef gr col0 s +% Polyline + [60] 0 sd +gs clippath +6180 2904 m 6150 3048 l 6120 2904 l 6120 3090 l 6180 3090 l cp +clip +n 5325 2100 m 5326 2101 l 5329 2104 l 5337 2111 l 5348 2121 l 5360 2133 l + 5372 2143 l 5383 2153 l 5393 2161 l 5402 2168 l 5413 2175 l + 5421 2181 l 5431 2187 l 5441 2193 l 5452 2199 l 5464 2205 l + 5477 2211 l 5489 2216 l 5502 2222 l 5515 2227 l 5527 2231 l + 5538 2234 l 5550 2238 l 5562 2240 l 5573 2242 l 5586 2244 l + 5599 2246 l 5613 2247 l 5627 2248 l 5641 2249 l 5656 2249 l + 5670 2250 l 5684 2250 l 5698 2250 l 5713 2250 l 5727 2250 l + 5742 2250 l 5759 2250 l 5776 2250 l 5793 2250 l 5811 2250 l + 5828 2250 l 5845 2250 l 5860 2250 l 5875 2250 l 5888 2250 l + 5900 2250 l 5913 2250 l 5926 2250 l 5938 2250 l 5949 2251 l + 5961 2252 l 5972 2253 l 5982 2255 l 5992 2257 l 6002 2259 l + 6013 2263 l 6023 2266 l 6035 2271 l 6047 2277 l 6060 2283 l + 6073 2291 l 6086 2299 l 6098 2308 l 6108 2318 l 6117 2327 l + 6125 2338 l 6130 2345 l 6134 2353 l 6137 2363 l 6140 2373 l + 6143 2385 l 6145 2398 l 6147 2412 l 6148 2428 l 6149 2445 l + 6149 2464 l 6150 2483 l 6150 2504 l 6150 2526 l 6150 2550 l + 6150 2566 l 6150 2583 l 6150 2602 l 6150 2622 l 6150 2644 l + 6150 2668 l 6150 2695 l 6150 2724 l 6150 2756 l 6150 2790 l + 6150 2826 l 6150 2864 l 6150 2903 l 6150 2940 l 6150 2975 l + 6150 3006 l 6150 3032 l 6150 3075 l gs col0 s gr gr + [] 0 sd +% arrowhead +n 6180 2904 m 6150 3048 l 6120 2904 l 6150 2928 l 6180 2904 l cp gs 0.00 setgray ef gr col0 s +% Polyline +n 2614 5738 m 2615 5737 l 2619 5734 l 2628 5727 l 2642 5715 l 2659 5700 l + 2676 5685 l 2693 5670 l 2707 5656 l 2719 5644 l 2730 5632 l + 2738 5620 l 2746 5609 l 2752 5599 l 2758 5588 l 2763 5576 l + 2769 5563 l 2774 5550 l 2779 5535 l 2783 5520 l 2787 5504 l + 2791 5487 l 2795 5470 l 2798 5453 l 2801 5436 l 2804 5418 l + 2807 5400 l 2809 5385 l 2811 5370 l 2814 5353 l 2816 5336 l + 2818 5318 l 2821 5299 l 2823 5279 l 2825 5259 l 2828 5238 l + 2830 5217 l 2832 5196 l 2834 5174 l 2836 5153 l 2837 5133 l + 2839 5112 l 2840 5092 l 2842 5073 l 2843 5054 l 2844 5036 l + 2845 5019 l 2845 5001 l 2846 4982 l 2847 4963 l 2847 4944 l + 2848 4924 l 2848 4903 l 2849 4882 l 2849 4860 l 2849 4838 l + 2849 4816 l 2850 4794 l 2850 4773 l 2850 4751 l 2850 4729 l + 2850 4708 l 2850 4686 l 2850 4665 l 2850 4644 l 2850 4622 l + 2850 4599 l 2850 4576 l 2850 4552 l 2850 4527 l 2850 4501 l + 2850 4475 l 2850 4449 l 2850 4422 l 2850 4395 l 2850 4369 l + 2850 4343 l 2850 4318 l 2850 4293 l 2850 4270 l 2850 4248 l + 2850 4227 l 2850 4207 l 2850 4188 l 2850 4170 l 2850 4149 l + 2850 4129 l 2850 4109 l 2850 4090 l 2850 4072 l 2851 4054 l + 2851 4036 l 2852 4019 l 2852 4003 l 2853 3987 l 2854 3972 l + 2856 3957 l 2857 3943 l 2859 3930 l 2860 3917 l 2863 3904 l + 2865 3888 l 2868 3872 l 2872 3855 l 2875 3838 l 2880 3820 l + 2884 3801 l 2889 3783 l 2894 3765 l 2900 3748 l 2905 3731 l + 2910 3716 l 2915 3702 l 2920 3690 l 2925 3678 l 2932 3664 l + 2939 3651 l 2947 3638 l 2955 3627 l 2964 3618 l 2974 3609 l + 2983 3601 l 2993 3594 l 3002 3589 l 3013 3583 l 3021 3579 l + 3031 3574 l 3042 3569 l 3055 3563 l 3070 3557 l 3087 3550 l + 3105 3543 l 3122 3536 l 3136 3531 l 3145 3527 l 3149 3525 l + 3150 3525 l gs col0 s gr +% Polyline +n 2614 5735 m 2615 5736 l 2619 5739 l 2628 5746 l 2642 5758 l 2659 5772 l + 2676 5788 l 2693 5803 l 2707 5816 l 2719 5829 l 2730 5840 l + 2738 5852 l 2746 5863 l 2752 5874 l 2758 5884 l 2763 5896 l + 2769 5909 l 2774 5922 l 2779 5937 l 2783 5952 l 2787 5968 l + 2791 5985 l 2795 6002 l 2798 6019 l 2801 6036 l 2804 6054 l + 2807 6072 l 2809 6087 l 2811 6102 l 2814 6119 l 2816 6136 l + 2818 6154 l 2821 6173 l 2823 6193 l 2825 6213 l 2828 6234 l + 2830 6255 l 2832 6276 l 2834 6298 l 2836 6319 l 2837 6339 l + 2839 6360 l 2840 6380 l 2842 6399 l 2843 6418 l 2844 6436 l + 2845 6453 l 2845 6471 l 2846 6490 l 2847 6509 l 2847 6528 l + 2848 6548 l 2848 6569 l 2849 6590 l 2849 6612 l 2849 6634 l + 2849 6656 l 2850 6678 l 2850 6699 l 2850 6721 l 2850 6743 l + 2850 6764 l 2850 6786 l 2850 6807 l 2850 6829 l 2850 6850 l + 2850 6873 l 2850 6896 l 2850 6920 l 2850 6945 l 2850 6971 l + 2850 6997 l 2850 7023 l 2850 7050 l 2850 7077 l 2850 7103 l + 2850 7129 l 2850 7154 l 2850 7179 l 2850 7202 l 2850 7224 l + 2850 7245 l 2850 7265 l 2850 7284 l 2850 7302 l 2850 7323 l + 2850 7343 l 2850 7363 l 2850 7382 l 2850 7400 l 2851 7418 l + 2851 7436 l 2852 7453 l 2852 7469 l 2853 7485 l 2854 7500 l + 2856 7515 l 2857 7529 l 2859 7542 l 2860 7555 l 2863 7569 l + 2865 7584 l 2868 7600 l 2872 7617 l 2875 7635 l 2880 7653 l + 2884 7671 l 2889 7689 l 2894 7707 l 2900 7725 l 2905 7741 l + 2910 7756 l 2915 7770 l 2920 7783 l 2925 7795 l 2932 7809 l + 2939 7822 l 2947 7834 l 2955 7845 l 2964 7855 l 2974 7864 l + 2983 7871 l 2993 7878 l 3002 7884 l 3013 7889 l 3021 7893 l + 3031 7898 l 3042 7903 l 3055 7909 l 3070 7915 l 3087 7922 l + 3105 7929 l 3122 7936 l 3136 7941 l 3145 7945 l 3149 7947 l + 3150 7947 l gs col0 s gr +% Polyline +n 3930 8325 m 3825 8325 3825 9345 105 arcto 4 {pop} repeat + 3825 9450 6720 9450 105 arcto 4 {pop} repeat + 6825 9450 6825 8430 105 arcto 4 {pop} repeat + 6825 8325 3930 8325 105 arcto 4 {pop} repeat + cp gs col0 s gr +% Polyline +gs clippath +5295 8046 m 5325 7902 l 5355 8046 l 5355 7860 l 5295 7860 l cp +5355 8154 m 5325 8298 l 5295 8154 l 5295 8340 l 5355 8340 l cp +clip +n 5325 8325 m 5325 7875 l gs col0 s gr gr + +% arrowhead +n 5355 8154 m 5325 8298 l 5295 8154 l 5325 8178 l 5355 8154 l cp gs 0.00 setgray ef gr col0 s +% arrowhead +n 5295 8046 m 5325 7902 l 5355 8046 l 5325 8022 l 5295 8046 l cp gs 0.00 setgray ef gr col0 s +% Polyline +n 3930 6750 m 3825 6750 3825 7770 105 arcto 4 {pop} repeat + 3825 7875 6720 7875 105 arcto 4 {pop} repeat + 6825 7875 6825 6855 105 arcto 4 {pop} repeat + 6825 6750 3930 6750 105 arcto 4 {pop} repeat + cp gs col0 s gr +% Polyline +gs clippath +5295 6471 m 5325 6327 l 5355 6471 l 5355 6285 l 5295 6285 l cp +5355 6579 m 5325 6723 l 5295 6579 l 5295 6765 l 5355 6765 l cp +clip +n 5325 6750 m 5325 6300 l gs col0 s gr gr + +% arrowhead +n 5355 6579 m 5325 6723 l 5295 6579 l 5325 6603 l 5355 6579 l cp gs 0.00 setgray ef gr col0 s +% arrowhead +n 5295 6471 m 5325 6327 l 5355 6471 l 5325 6447 l 5295 6471 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +5295 4896 m 5325 4752 l 5355 4896 l 5355 4710 l 5295 4710 l cp +5355 5004 m 5325 5148 l 5295 5004 l 5295 5190 l 5355 5190 l cp +clip +n 5325 5175 m 5325 4725 l gs col0 s gr gr + +% arrowhead +n 5355 5004 m 5325 5148 l 5295 5004 l 5325 5028 l 5355 5004 l cp gs 0.00 setgray ef gr col0 s +% arrowhead +n 5295 4896 m 5325 4752 l 5355 4896 l 5325 4872 l 5295 4896 l cp gs 0.00 setgray ef gr col0 s +% Polyline +n 3930 3600 m 3825 3600 3825 4620 105 arcto 4 {pop} repeat + 3825 4725 6720 4725 105 arcto 4 {pop} repeat + 6825 4725 6825 3705 105 arcto 4 {pop} repeat + 6825 3600 3930 3600 105 arcto 4 {pop} repeat + cp gs col0 s gr +% Polyline +gs clippath +4470 3321 m 4500 3177 l 4530 3321 l 4530 3135 l 4470 3135 l cp +4530 3429 m 4500 3573 l 4470 3429 l 4470 3615 l 4530 3615 l cp +clip +n 4500 3600 m 4500 3150 l gs col0 s gr gr + +% arrowhead +n 4530 3429 m 4500 3573 l 4470 3429 l 4500 3453 l 4530 3429 l cp gs 0.00 setgray ef gr col0 s +% arrowhead +n 4470 3321 m 4500 3177 l 4530 3321 l 4500 3297 l 4470 3321 l cp gs 0.00 setgray ef gr col0 s +% Polyline +n 3930 2025 m 3825 2025 3825 3045 105 arcto 4 {pop} repeat + 3825 3150 6720 3150 105 arcto 4 {pop} repeat + 6825 3150 6825 2130 105 arcto 4 {pop} repeat + 6825 2025 3930 2025 105 arcto 4 {pop} repeat + cp gs col0 s gr +% Polyline +gs clippath +5295 1746 m 5325 1602 l 5355 1746 l 5355 1560 l 5295 1560 l cp +5355 1854 m 5325 1998 l 5295 1854 l 5295 2040 l 5355 2040 l cp +clip +n 5325 2025 m 5325 1575 l gs col0 s gr gr + +% arrowhead +n 5355 1854 m 5325 1998 l 5295 1854 l 5325 1878 l 5355 1854 l cp gs 0.00 setgray ef gr col0 s +% arrowhead +n 5295 1746 m 5325 1602 l 5355 1746 l 5325 1722 l 5295 1746 l cp gs 0.00 setgray ef gr col0 s +% Polyline +n 3930 450 m 3825 450 3825 1470 105 arcto 4 {pop} repeat + 3825 1575 6720 1575 105 arcto 4 {pop} repeat + 6825 1575 6825 555 105 arcto 4 {pop} repeat + 6825 450 3930 450 105 arcto 4 {pop} repeat + cp gs col0 s gr +% Polyline +gs clippath +6120 3321 m 6150 3177 l 6180 3321 l 6180 3135 l 6120 3135 l cp +6180 3429 m 6150 3573 l 6120 3429 l 6120 3615 l 6180 3615 l cp +clip +n 6150 3600 m 6150 3150 l gs col0 s gr gr + +% arrowhead +n 6180 3429 m 6150 3573 l 6120 3429 l 6150 3453 l 6180 3429 l cp gs 0.00 setgray ef gr col0 s +% arrowhead +n 6120 3321 m 6150 3177 l 6180 3321 l 6150 3297 l 6120 3321 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +5364 10069 m 5263 10176 l 5312 10038 l 5217 10197 l 5268 10228 l cp +5211 9581 m 5311 9473 l 5263 9612 l 5358 9453 l 5307 9422 l cp +clip +n 5325 9450 m 5100 9825 l 5475 9825 l 5250 10200 l gs col0 s gr gr + +% arrowhead +n 5211 9581 m 5311 9473 l 5263 9612 l 5249 9576 l 5211 9581 l cp gs 0.00 setgray ef gr col0 s +% arrowhead +n 5364 10069 m 5263 10176 l 5312 10038 l 5326 10074 l 5364 10069 l cp gs 0.00 setgray ef gr col0 s +% Polyline +n 3930 5175 m 3825 5175 3825 6195 105 arcto 4 {pop} repeat + 3825 6300 6720 6300 105 arcto 4 {pop} repeat + 6825 6300 6825 5280 105 arcto 4 {pop} repeat + 6825 5175 3930 5175 105 arcto 4 {pop} repeat + cp gs col0 s gr +/Times-Roman ff 300.00 scf sf +5325 7500 m +gs 1 -1 sc (IP Protocol) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman ff 300.00 scf sf +5325 9150 m +gs 1 -1 sc (drivers) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman ff 300.00 scf sf +5325 5775 m +gs 1 -1 sc (UDP Protocol) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman ff 300.00 scf sf +5250 4200 m +gs 1 -1 sc (BSD Sockets) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman ff 300.00 scf sf +5325 1050 m +gs 1 -1 sc (Remote Debugger) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman ff 300.00 scf sf +5325 8850 m +gs 1 -1 sc (Ethernet / serial link / ...) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman ff 300.00 scf sf +1650 6075 m +gs 1 -1 sc (TCP/IP stack) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman ff 300.00 scf sf +1575 5775 m +gs 1 -1 sc (FreeBSD) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman ff 300.00 scf sf +5325 10500 m +gs 1 -1 sc (Physical link) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman ff 225.00 scf sf +7275 3450 m +gs 1 -1 sc (secondary port \(2010\)) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman ff 225.00 scf sf +3525 3450 m +gs 1 -1 sc (primary port \(2000\)) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman ff 300.00 scf sf +5325 2700 m +gs 1 -1 sc (SUN RPC Server) dup sw pop 2 div neg 0 rm col0 sh gr +$F2psEnd +rs diff --git a/doc/rgdb_specs/objectives.t b/doc/rgdb_specs/objectives.t new file mode 100644 index 0000000000..1dbbf7175c --- /dev/null +++ b/doc/rgdb_specs/objectives.t @@ -0,0 +1,307 @@ +@c +@c RTEMS Remote Debugger Server Specifications +@c +@c Written by: Eric Valette +@c Emmanuel Raguet +@c +@c +@c $Id$ +@c + +@chapter Objectives + +@C XXX reference +This section is intended to clearly define the current objectives of our work. +First, we will try here to list some ambitious requirements for the debugger +in section @b{List of Requirements}. These requirements will deliberately be much more +ambitious than what we will provide directly ourselves in the hope that the +Internet development model will enable others to implement some features we +rejected for man-power reasons in the first step. We are committed to do the +core work and redistribute it but would appreciate any comment and enhancement. +Then, in section @b{Requirements Analysis} we will analyze each requirement to see +what technical problem must be solved if we want to fullfill it. After this +analysis, we will determine in section @b{Requirements Selection} the requirements we +chose to implement and the ones we will not. We will then clearly identify the +limits of our solution in section @b{Implied Restrictions}. + + +@subsection List of Requirements + +We will identify here possible requirements for the type of debug that may be +provided : + +@table @b + +@item [(R1)]: +We want to use GDB as the front-end debugger, + +@item [(R2)]: +We want to support at least Intel and PowerPC as target processor architecture, + +@item [(R3)]: +We want to use the GDB thread debugging interface, + +@item [(R4)]: +We want to be able to debug a remote target over a serial line, + +@item [(R5)]: +We want to be able to debug a remote target over Ethernet, + +@item [(R6)]: +The set of target code path we will be able to debug using RGDBSD must +be clearly identified. It will be called Debug Path Set (@emph{DPS}) in the +remaining of this document, + +@item [(R7)]: +@emph{DPS} must include the RTEMS core executive itself, + +@item [(R8)]: +@emph{DPS} must include the FreeBSD stack, + +@item [(R9)]: +@emph{DPS} must include anything but the FreeBSD stack and the RTEMS +core executive, + +@item [(R10)]: +We want to enable several persons to debug different parts of the code +running on the target, + +@item [(R11)]: +As much as possible the system must be frozen during a debug session +so that debugging a particular portion of code does not prevent another part +from functioning, +@end table + +@subsection Requirements Analysis + +@table @b + +@item [(R1)]: +Worth recalling it. It mainly imposes few restrictions on the binary +files type, target processor type as : + +@itemize @b + +@item the binary format must be understood by GDB (to find debugging information). +Elf, Coff and A.out are the main formats currently supported. Elf/Dwarf 2.0 +binary support will be our main target as they are the preferred format for +Intel and PowerPC processors. No change in GDB will be required for other binaries +except may be a new configuration file changing the binary/debug file format, + +@item the processor must be supported for disassemble/step instruction command, + +@item the target system must be supported. As far as I know RTEMS is not currently +@emph{officially} supported anyway, +@end itemize + +@item [(R2)]: +Our primary targets are Intel and PowerPC. We however do not think implementing +RGDBSD for other processors will be a heavy task. It will mainly require : + +@enumerate +@item Implementing exception handling for the target processor, + +@item Interfacing the generic part of RGDBSD with the low level exception handling +and make RGDBSD aware of exception used for debugging (usually illegal instruction +or dedicated trap, single step), + +@item Making GDB aware of the frame layout pushed on exceptions, + +@item Implement the code for data transfer for the exception frame, + +@item Implement code to copy data cache back to main memory and invalidate instruction +cache. This is needed in order to be sure opcode modification used to set breakpoint +that use the data cache will be proagated to the instruction cache, +@end enumerate + +As soon as we will have completed the first core work a document describing +how to port it to a new processor should be written. So far we will organize +the source tree with processor dependent directories so that port will be as +easy as possible. May be a bare processor support should be created, + + +@item [(R3)]: +GDB already has an interface for manipulating multi-threaded programs. +This interface is rather weak at the moment but it will certainly be improved +in the future with the generalization of POSIX thread API on Linux and other +operating systems. This implies that either GDB or RGDBSD is able to obtain +the list of threads currently executing. The choice of implementing this in +GDB or RGDBSD is a tradeof between target code size and simplicity, + +@item [(R4)]: +Regular GDB code contains clients code for debugging over a serial line. +However only few functions are implemented. We would like to provide a better +support and to uniformize serial line debugging with debugging over Ethernet +via the use of SLIP, + +@item [(R5)]: +Regular GDB code contains client code for debugging over Ethernet for +VxWorks via the SUN RPC library. So there will be at least one starting point +to implement remote debugging over Ethernet via SUN RPC. The Chorus remote debugging +code has been disclosed under GPL and also contains code for debugging suing +SUN RPC, + +@item [(R6)]: +Due to a classical chicken and egg problems, the remote debugging daemon +cannot be used to debug code it uses to function. Thus depending on the API +used by RGDBSD, some parts of the target system will not be debuggable via GDB. +The most important point is documentation because my feeling is that implementing +RGDBSD on a totally different @emph{dedicated} nano kernel should be possible, + +@item [(R7)]: +RTEMS core executive is a real-time OS which implements priority level +scheduling, synchronization objects, and interrupt handling. As mentioned in +previous item, we may not debug theses features if RGDBSD uses them. This requirement +is thus very strong because it impose that : + +@enumerate + +@item RGDBSD is totally interrupt driven (no thread API available), + +@item But it does not use RTEMS interrupt management, + +@item Nor does not use RTEMS exception management, + +@item RGDBSD must provide its own UDP/IP stack as the current FreeBSD code rely on +tasks switching and RTEMS provided synchronization object for input path handling, +@end enumerate + +So our feeling is that the @b{(R7)} more or less requires to write a @emph{dedicated} +nano kernel with a very small dedicated UDP/IP stack. + + +@item [(R8)]: +GDB remote debugging over Ethernet code communicates with the remote +target via the SUN RPC protocol. This requires a UDP/IP protocol and a minimal +socket like interface. In RTEMS environment, this feature is currently provided +by the FreeBSD stack. Again, if we use the FreeBSD stack itself for remote communication, +it will be impossible to debug this stack as a breakpoint in the stack code +will stop its execution and there would be no more way to communicate with the +target. A solution consists in implementing a minimal, dedicated UDP/IP stack +(with at least IP and UDP protocols, a minimal BSD sockets) and a simple SUN +RPC library, which will be both dedicated to the debug. We can use RTEMS API +to implement it if @b{(R7)} is not required. As the two stack will need +to share the same chip, a kind of shared filter must be implemented at the bottom +of the two stacks so that Ethernet frames can be dynamically directed either +to the dedicated UDP/IP debug stack or to the regular FreeBSD stack. The fact +that in the current design, the low level ethernet input routine mainly signal +a thread should facilitate the design of this filter. The output path is less +complicated as it is run by a task and thus can sleep on a synchronization object, + +@item [(R9)]: +This requirement represents what we find reasonable as a first target. +However, we can still present to the final user this kind of debugging via different +model. RTEMS can be represented as a single threaded system or, because RTEMS +is a multitasking system, as an ensemble of separate tasks. In the first representation, +the debugger sees only 1 ``task'' without distinguishing the core executive +part from the applicative part. This is the simplest way to implement the debugger +but also implies that there is no way to protect the core executive. Some of +these tasks are system tasks (tasks form the core executive and from the FreeBSD +stack), the other ones are tasks implemented by the developer. The developer +wants to debug his tasks, and sometimes only one of his tasks. We can provide +a way to debug not the entire system but only the concerned task by testing +if the current running task is a debugged task (test on the task identifier). +GDB offers an API to ``detach'' thread so that if a detached thread hits a +breakpoint it is automatically restarted without user intervention, + +@item [(R10)]: +Several developers can work on a large project, each on a specific +module. Sometimes only one target is available for everyone. This requirements +is not really meaningfull until RTEMS supports dynamic code loading, + +@item [(R11)]: +This requirement heavily depends on the @b{(R7)} and @b{(R8)} +requirements. +@end table + +@subsection Requirements Selection + + +@subsubsection Requirement We Will Take Into Account For the First Implementation + +@table @b + +@item [(R1)]: +Obviously. + +@item [(R2)]: +As these are our targets. Of course other will be free to contribute. +We will however document the works that needs to be done in order to port the +debug code to other processors, + +@item [(R3)]: +We think it is feasible with only few RTEMS modifications, + +@item [(R5)]: +We think serial line debugging is nowadays too restrictive as most equipment +are now connected via Ethernet, + +@item [(R6)]: +This is a documentation problem and should be fairly easy to describe +once we have the RGDBSD code, + +@item [(R9)]: +We will try to provide the multi-thread target system presentation, +@end table + +@subsubsection Requirements We Will Not Implement + +@table @b + +@item [(R4)]: +it will not be implemented for the moment. It is just a matter on implementing +SLIP in the FreeBSD stack and alternative solutions already exist in the meantime, + +@item [(R7)]: +To simplify the first developments, we don't plan to implement a @emph{dedicated} +nano-kernel to allow the RTEMS kernel to be debugged. It means that, if any +breakpoint is set in the kernel, unpredictable behaviors can occur. So, developers +must keep in mind to avoid stopping the kernel. They must also keep in mind, +in order to not stop the kernel, that the user's tasks must have a lower priority +than the tasks used for debug. The solution is to use a specific very-high priority +level for the system tasks used directly or indirectly by RGDBSD. The SYSTEM_TASK +attribute that already exists should be fine. + +@item [(R8)]: +To avoid increasing the code size and the used memory and because the +FreeBSD stack doesn't need to be debug any more, we choose not to implement +a minimal TCP/IP stack but rather to use the FreeBSD one as communication protocol, + +@item [(R10)]: +We will see later when a file system will be available and we can implement +@b{exec} system call, + +@item [(R11)]: +Without a separate TCP/IP stack it will be hard to freeze the system +as some interrupts must occur in order to enable the FreeBSD stack to function, +@end table + +@subsection Implied Restrictions + +High priority level must be used for these features : + +@itemize @b + +@item FreeBSD interrupt handling thread, + +@item Debugger threads. +@end itemize + +This will allows these tasks not to be stopped when a process is stopped +in debug mode + +If we don't want to use a ``specific'' priority level, we must affect +priority to each of these tasks as follow : + +@itemize @b + +@item FreeBSD stack (high priority) + +@item Debugger (less high priority) +@end itemize + +The user must remember the higher priority level he can use for his +software in order not to block one of the previous threads and to not put breakpoints +in part of the code executed by RGDBSD. + + diff --git a/doc/rgdb_specs/process.eps b/doc/rgdb_specs/process.eps new file mode 100644 index 0000000000..14ebd297e9 --- /dev/null +++ b/doc/rgdb_specs/process.eps @@ -0,0 +1,672 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: process.eps +%%Creator: fig2dev Version 3.2 Patchlevel 1 +%%CreationDate: Tue Nov 10 13:55:53 1998 +%%For: valette@tri-yann (Eric Valette,,6891,) +%%Orientation: Portrait +%%BoundingBox: 0 0 1245 646 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%Magnification: 1.0000 +%%EndComments +/$F2psDict 200 dict def +$F2psDict begin +$F2psDict /mtrx matrix put +/col-1 {0 setgray} bind def +/col0 {0.000 0.000 0.000 srgb} bind def +/col1 {0.000 0.000 1.000 srgb} bind def +/col2 {0.000 1.000 0.000 srgb} bind def +/col3 {0.000 1.000 1.000 srgb} bind def +/col4 {1.000 0.000 0.000 srgb} bind def +/col5 {1.000 0.000 1.000 srgb} bind def +/col6 {1.000 1.000 0.000 srgb} bind def +/col7 {1.000 1.000 1.000 srgb} bind def +/col8 {0.000 0.000 0.560 srgb} bind def +/col9 {0.000 0.000 0.690 srgb} bind def +/col10 {0.000 0.000 0.820 srgb} bind def +/col11 {0.530 0.810 1.000 srgb} bind def +/col12 {0.000 0.560 0.000 srgb} bind def +/col13 {0.000 0.690 0.000 srgb} bind def +/col14 {0.000 0.820 0.000 srgb} bind def +/col15 {0.000 0.560 0.560 srgb} bind def +/col16 {0.000 0.690 0.690 srgb} bind def +/col17 {0.000 0.820 0.820 srgb} bind def +/col18 {0.560 0.000 0.000 srgb} bind def +/col19 {0.690 0.000 0.000 srgb} bind def +/col20 {0.820 0.000 0.000 srgb} bind def +/col21 {0.560 0.000 0.560 srgb} bind def +/col22 {0.690 0.000 0.690 srgb} bind def +/col23 {0.820 0.000 0.820 srgb} bind def +/col24 {0.500 0.190 0.000 srgb} bind def +/col25 {0.630 0.250 0.000 srgb} bind def +/col26 {0.750 0.380 0.000 srgb} bind def +/col27 {1.000 0.500 0.500 srgb} bind def +/col28 {1.000 0.630 0.630 srgb} bind def +/col29 {1.000 0.750 0.750 srgb} bind def +/col30 {1.000 0.880 0.880 srgb} bind def +/col31 {1.000 0.840 0.000 srgb} bind def + +end +save +-19.0 647.0 translate +1 -1 scale + +/cp {closepath} bind def +/ef {eofill} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth} bind def +/tr {translate} bind def +/tnt {dup dup currentrgbcolor + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} + bind def +/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul + 4 -2 roll mul srgb} bind def +/reencdict 12 dict def /ReEncode { reencdict begin +/newcodesandnames exch def /newfontname exch def /basefontname exch def +/basefontdict basefontname findfont def /newfont basefontdict maxlength dict def +basefontdict { exch dup /FID ne { dup /Encoding eq +{ exch dup length array copy newfont 3 1 roll put } +{ exch newfont 3 1 roll put } ifelse } { pop pop } ifelse } forall +newfont /FontName newfontname put newcodesandnames aload pop +128 1 255 { newfont /Encoding get exch /.notdef put } for +newcodesandnames length 2 idiv { newfont /Encoding get 3 1 roll put } repeat +newfontname newfont definefont pop end } def +/isovec [ +8#200 /grave 8#201 /acute 8#202 /circumflex 8#203 /tilde +8#204 /macron 8#205 /breve 8#206 /dotaccent 8#207 /dieresis +8#210 /ring 8#211 /cedilla 8#212 /hungarumlaut 8#213 /ogonek 8#214 /caron +8#220 /dotlessi 8#230 /oe 8#231 /OE +8#240 /space 8#241 /exclamdown 8#242 /cent 8#243 /sterling +8#244 /currency 8#245 /yen 8#246 /brokenbar 8#247 /section 8#250 /dieresis +8#251 /copyright 8#252 /ordfeminine 8#253 /guillemotleft 8#254 /logicalnot +8#255 /endash 8#256 /registered 8#257 /macron 8#260 /degree 8#261 /plusminus +8#262 /twosuperior 8#263 /threesuperior 8#264 /acute 8#265 /mu 8#266 /paragraph +8#267 /periodcentered 8#270 /cedilla 8#271 /onesuperior 8#272 /ordmasculine +8#273 /guillemotright 8#274 /onequarter 8#275 /onehalf +8#276 /threequarters 8#277 /questiondown 8#300 /Agrave 8#301 /Aacute +8#302 /Acircumflex 8#303 /Atilde 8#304 /Adieresis 8#305 /Aring +8#306 /AE 8#307 /Ccedilla 8#310 /Egrave 8#311 /Eacute +8#312 /Ecircumflex 8#313 /Edieresis 8#314 /Igrave 8#315 /Iacute +8#316 /Icircumflex 8#317 /Idieresis 8#320 /Eth 8#321 /Ntilde 8#322 /Ograve +8#323 /Oacute 8#324 /Ocircumflex 8#325 /Otilde 8#326 /Odieresis 8#327 /multiply +8#330 /Oslash 8#331 /Ugrave 8#332 /Uacute 8#333 /Ucircumflex +8#334 /Udieresis 8#335 /Yacute 8#336 /Thorn 8#337 /germandbls 8#340 /agrave +8#341 /aacute 8#342 /acircumflex 8#343 /atilde 8#344 /adieresis 8#345 /aring +8#346 /ae 8#347 /ccedilla 8#350 /egrave 8#351 /eacute +8#352 /ecircumflex 8#353 /edieresis 8#354 /igrave 8#355 /iacute +8#356 /icircumflex 8#357 /idieresis 8#360 /eth 8#361 /ntilde 8#362 /ograve +8#363 /oacute 8#364 /ocircumflex 8#365 /otilde 8#366 /odieresis 8#367 /divide +8#370 /oslash 8#371 /ugrave 8#372 /uacute 8#373 /ucircumflex +8#374 /udieresis 8#375 /yacute 8#376 /thorn 8#377 /ydieresis] def +/Times-Roman /Times-Roman-iso isovec ReEncode + /DrawEllipse { + /endangle exch def + /startangle exch def + /yrad exch def + /xrad exch def + /y exch def + /x exch def + /savematrix mtrx currentmatrix def + x y tr xrad yrad sc 0 0 1 startangle endangle arc + closepath + savematrix setmatrix + } def + +/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def +/$F2psEnd {$F2psEnteredState restore end} def +%%EndProlog + +$F2psBegin +10 setmiterlimit +n -1000 11779 m -1000 -1000 l 22054 -1000 l 22054 11779 l cp clip + 0.06000 0.06000 sc +/Times-Roman-iso ff 300.00 scf sf +2250 600 m +gs 1 -1 sc (INITIALIZATION) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 300.00 scf sf +2250 825 m +gs 1 -1 sc (TASK) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 300.00 scf sf +6150 825 m +gs 1 -1 sc (TASK) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 300.00 scf sf +6150 600 m +gs 1 -1 sc (COMMAND MANAGEMENT) dup sw pop 2 div neg 0 rm col0 sh gr +7.500 slw +% Ellipse +n 10050 3600 1275 525 0 360 DrawEllipse gs col0 s gr + +/Times-Roman-iso ff 180.00 scf sf +10050 3450 m +gs 1 -1 sc (WAIT FOR) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +10050 3900 m +gs 1 -1 sc (SEMAPHORE) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +10050 3675 m +gs 1 -1 sc (WAKE-UP) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +5925 1950 m +gs 1 -1 sc (WAIT FOR) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +5925 2175 m +gs 1 -1 sc (RPC MESSAGE) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +5925 2400 m +gs 1 -1 sc (FROM GDB) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +5925 3750 m +gs 1 -1 sc (EXECUTE) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +5925 3975 m +gs 1 -1 sc (RECEIVED) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +5925 4200 m +gs 1 -1 sc (COMMAND) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +5925 9150 m +gs 1 -1 sc (SEND) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +5925 9375 m +gs 1 -1 sc (RESULT) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +5925 9600 m +gs 1 -1 sc (IF NEEDED) dup sw pop 2 div neg 0 rm col0 sh gr +% Ellipse +n 5925 9300 1275 525 0 360 DrawEllipse gs col0 s gr + +% Polyline +n 5925 9825 m 5925 9826 l 5925 9830 l 5926 9839 l 5926 9855 l 5928 9876 l + 5929 9899 l 5931 9923 l 5934 9946 l 5937 9967 l 5941 9987 l + 5945 10004 l 5950 10020 l 5956 10035 l 5963 10050 l 5969 10063 l + 5977 10076 l 5986 10089 l 5996 10103 l 6007 10117 l 6020 10132 l + 6033 10146 l 6048 10161 l 6063 10175 l 6080 10189 l 6097 10203 l + 6114 10216 l 6132 10228 l 6150 10240 l 6169 10252 l 6188 10263 l + 6203 10271 l 6220 10279 l 6237 10288 l 6255 10296 l 6274 10305 l + 6293 10313 l 6314 10321 l 6335 10329 l 6356 10337 l 6378 10345 l + 6401 10352 l 6423 10359 l 6445 10366 l 6467 10372 l 6488 10378 l + 6509 10383 l 6529 10388 l 6549 10392 l 6568 10396 l 6588 10400 l + 6606 10403 l 6625 10406 l 6644 10409 l 6664 10411 l 6684 10413 l + 6704 10415 l 6724 10416 l 6745 10417 l 6766 10418 l 6788 10418 l + 6809 10418 l 6830 10417 l 6851 10416 l 6871 10415 l 6891 10413 l + 6911 10411 l 6931 10409 l 6950 10406 l 6969 10403 l 6988 10400 l + 7007 10396 l 7026 10392 l 7046 10388 l 7066 10383 l 7087 10378 l + 7108 10372 l 7129 10366 l 7151 10359 l 7173 10352 l 7195 10345 l + 7216 10337 l 7237 10329 l 7258 10321 l 7277 10313 l 7296 10305 l + 7313 10296 l 7330 10288 l 7346 10279 l 7361 10271 l 7375 10263 l + 7392 10252 l 7408 10240 l 7423 10228 l 7438 10216 l 7452 10203 l + 7465 10189 l 7478 10175 l 7490 10161 l 7501 10146 l 7510 10132 l + 7519 10117 l 7527 10103 l 7534 10089 l 7540 10076 l 7545 10063 l + 7550 10050 l 7555 10035 l 7558 10020 l 7562 10004 l 7565 9987 l + 7567 9967 l 7569 9946 l 7571 9923 l 7572 9899 l 7573 9876 l + 7574 9855 l 7575 9839 l 7575 9830 l 7575 9826 l 7575 9825 l gs col0 s gr +/Times-Roman-iso ff 180.00 scf sf +2250 8025 m +gs 1 -1 sc (DELETE) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +2250 8250 m +gs 1 -1 sc (INITIALIZATION) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +2250 8475 m +gs 1 -1 sc (TASK) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +2250 6525 m +gs 1 -1 sc (COMMAND MANAGEMENT) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +2250 6300 m +gs 1 -1 sc (CREATE SEPARATE TASK) dup sw pop 2 div neg 0 rm col0 sh gr +% Ellipse +n 2250 6375 1275 525 0 360 DrawEllipse gs col0 s gr + +% Ellipse +n 2250 8175 1275 525 0 360 DrawEllipse gs col0 s gr + +% Polyline +gs clippath +2280 5730 m 2250 5850 l 2220 5730 l 2220 5865 l 2280 5865 l cp +clip +n 2250 5100 m 2250 5850 l gs col0 s gr gr + +% arrowhead +n 2280 5730 m 2250 5850 l 2220 5730 l col0 s +% Polyline +gs clippath +2280 7530 m 2250 7650 l 2220 7530 l 2220 7665 l 2280 7665 l cp +clip +n 2250 6900 m 2250 7650 l gs col0 s gr gr + +% arrowhead +n 2280 7530 m 2250 7650 l 2220 7530 l col0 s +% Ellipse +n 2250 2775 1275 525 0 360 DrawEllipse gs col0 s gr + +% Ellipse +n 2250 4575 1275 525 0 360 DrawEllipse gs col0 s gr + +% Polyline +gs clippath +2280 3930 m 2250 4050 l 2220 3930 l 2220 4065 l 2280 4065 l cp +clip +n 2250 3300 m 2250 4050 l gs col0 s gr gr + +% arrowhead +n 2280 3930 m 2250 4050 l 2220 3930 l col0 s +/Times-Roman-iso ff 180.00 scf sf +2250 2850 m +gs 1 -1 sc (INITIALIZATION) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +2250 4425 m +gs 1 -1 sc (CONNECT) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +2250 4875 m +gs 1 -1 sc (HANDLER) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +2250 4650 m +gs 1 -1 sc (EXCEPTION) dup sw pop 2 div neg 0 rm col0 sh gr +% Ellipse +n 10050 5400 1275 525 0 360 DrawEllipse gs col0 s gr + +% Ellipse +n 5925 2100 1275 525 0 360 DrawEllipse gs col0 s gr + +% Ellipse +n 5925 3900 1275 525 0 360 DrawEllipse gs col0 s gr + +% Ellipse +n 5943 5681 1275 525 0 360 DrawEllipse gs col0 s gr + +% Ellipse +n 5925 7500 1275 525 0 360 DrawEllipse gs col0 s gr + +% Polyline +60.000 slw +n 600 75 m 375 75 375 10500 225 arcto 4 {pop} repeat + 375 10725 12600 10725 225 arcto 4 {pop} repeat + 12825 10725 12825 300 225 arcto 4 {pop} repeat + 12825 75 600 75 225 arcto 4 {pop} repeat + cp gs col0 s gr +% Polyline +7.500 slw +n 11700 3075 m 11700 5925 l gs col0 s gr +% Polyline +gs clippath +10080 4755 m 10050 4875 l 10020 4755 l 10020 4890 l 10080 4890 l cp +clip +n 10050 4125 m 10050 4875 l gs col0 s gr gr + +% arrowhead +n 10080 4755 m 10050 4875 l 10020 4755 l col0 s +% Polyline +gs clippath +5955 3255 m 5925 3375 l 5895 3255 l 5895 3390 l 5955 3390 l cp +clip +n 5925 2625 m 5925 3375 l gs col0 s gr gr + +% arrowhead +n 5955 3255 m 5925 3375 l 5895 3255 l col0 s +% Polyline +gs clippath +5955 5055 m 5925 5175 l 5895 5055 l 5895 5190 l 5955 5190 l cp +clip +n 5925 4425 m 5925 5175 l gs col0 s gr gr + +% arrowhead +n 5955 5055 m 5925 5175 l 5895 5055 l col0 s +% Polyline +n 7575 1500 m 7575 9900 l gs col0 s gr +% Polyline +gs clippath +5955 6855 m 5925 6975 l 5895 6855 l 5895 6990 l 5955 6990 l cp +clip +n 5925 6225 m 5925 6975 l gs col0 s gr gr + +% arrowhead +n 5955 6855 m 5925 6975 l 5895 6855 l col0 s +% Polyline +gs clippath +5955 8655 m 5925 8775 l 5895 8655 l 5895 8790 l 5955 8790 l cp +clip +n 5925 8025 m 5925 8775 l gs col0 s gr gr + +% arrowhead +n 5955 8655 m 5925 8775 l 5895 8655 l col0 s +% Polyline +45.000 slw +n 4050 375 m 4050 10350 l gs col0 s gr +% Polyline +n 8175 375 m 8175 10425 l gs col0 s gr +% Polyline +30.000 slw + [60] 0 sd +gs clippath +4526 2104 m 4650 2100 l 4543 2162 l 4702 2116 l 4685 2059 l cp +clip +n 3525 6375 m 3526 6375 l 3528 6374 l 3531 6372 l 3537 6370 l 3544 6366 l + 3554 6361 l 3566 6354 l 3580 6345 l 3596 6334 l 3612 6322 l + 3630 6307 l 3648 6291 l 3666 6272 l 3684 6252 l 3702 6230 l + 3719 6207 l 3735 6181 l 3750 6153 l 3765 6124 l 3778 6092 l + 3791 6057 l 3804 6020 l 3815 5980 l 3826 5937 l 3837 5890 l + 3847 5839 l 3856 5785 l 3866 5726 l 3875 5663 l 3880 5624 l + 3885 5584 l 3891 5543 l 3896 5500 l 3901 5456 l 3906 5410 l + 3911 5363 l 3917 5314 l 3922 5264 l 3927 5213 l 3932 5160 l + 3938 5105 l 3943 5049 l 3948 4992 l 3954 4934 l 3959 4875 l + 3965 4814 l 3970 4753 l 3976 4690 l 3981 4627 l 3987 4563 l + 3993 4499 l 3999 4434 l 4004 4369 l 4010 4303 l 4016 4237 l + 4022 4172 l 4028 4106 l 4034 4041 l 4040 3976 l 4046 3912 l + 4052 3848 l 4058 3785 l 4064 3722 l 4070 3661 l 4076 3600 l + 4082 3541 l 4088 3483 l 4094 3426 l 4100 3370 l 4106 3315 l + 4112 3262 l 4118 3211 l 4124 3161 l 4130 3112 l 4137 3065 l + 4143 3019 l 4149 2975 l 4156 2932 l 4162 2891 l 4168 2851 l + 4175 2813 l 4186 2753 l 4197 2698 l 4209 2646 l 4221 2597 l + 4233 2553 l 4247 2511 l 4261 2472 l 4276 2436 l 4291 2403 l + 4308 2371 l 4326 2342 l 4345 2315 l 4365 2289 l 4385 2265 l + 4407 2243 l 4430 2223 l 4453 2204 l 4476 2187 l 4500 2171 l + 4523 2157 l 4545 2145 l 4566 2134 l 4585 2125 l 4601 2118 l + 4616 2112 l 4627 2107 l 4636 2104 l 4650 2100 l gs col4 s gr gr + [] 0 sd +% arrowhead +7.500 slw +n 4526 2104 m 4650 2100 l 4543 2162 l col4 s +% Polyline +30.000 slw + [60] 0 sd +gs clippath +8652 3585 m 8775 3600 l 8659 3644 l 8823 3624 l 8816 3565 l cp +clip +n 7200 5700 m 7202 5700 l 7206 5699 l 7214 5698 l 7225 5697 l 7242 5695 l + 7262 5691 l 7287 5687 l 7315 5682 l 7346 5676 l 7379 5668 l + 7413 5660 l 7447 5650 l 7481 5640 l 7514 5628 l 7545 5616 l + 7575 5602 l 7603 5587 l 7629 5571 l 7654 5554 l 7676 5535 l + 7697 5515 l 7717 5492 l 7736 5468 l 7753 5442 l 7769 5414 l + 7785 5383 l 7800 5350 l 7811 5324 l 7821 5297 l 7832 5268 l + 7842 5238 l 7852 5207 l 7862 5174 l 7871 5140 l 7881 5104 l + 7891 5068 l 7901 5030 l 7910 4991 l 7920 4951 l 7930 4910 l + 7939 4868 l 7949 4825 l 7959 4782 l 7968 4738 l 7978 4694 l + 7987 4650 l 7997 4606 l 8007 4562 l 8016 4518 l 8026 4475 l + 8036 4432 l 8045 4390 l 8055 4349 l 8065 4309 l 8074 4270 l + 8084 4232 l 8094 4196 l 8104 4160 l 8113 4126 l 8123 4093 l + 8133 4062 l 8143 4032 l 8154 4003 l 8164 3976 l 8175 3950 l + 8190 3917 l 8206 3886 l 8222 3858 l 8239 3832 l 8258 3808 l + 8278 3785 l 8299 3765 l 8321 3746 l 8346 3729 l 8372 3713 l + 8400 3698 l 8430 3684 l 8461 3672 l 8494 3660 l 8528 3650 l + 8562 3640 l 8596 3632 l 8629 3624 l 8660 3618 l 8688 3613 l + 8713 3609 l 8733 3605 l 8750 3603 l 8775 3600 l gs col4 s gr gr + [] 0 sd +% arrowhead +7.500 slw +n 8652 3585 m 8775 3600 l 8659 3644 l col4 s +% Polyline +gs clippath +10084 2956 m 10050 3075 l 10024 2954 l 10020 3089 l 10079 3091 l cp +clip +n 10050 3075 m 10051 3045 l 10053 3024 l 10054 3001 l 10056 2977 l 10059 2954 l + 10062 2933 l 10066 2913 l 10070 2896 l 10075 2880 l 10081 2865 l + 10088 2850 l 10094 2837 l 10102 2824 l 10111 2811 l 10121 2797 l + 10132 2783 l 10145 2768 l 10158 2754 l 10173 2739 l 10188 2725 l + 10205 2711 l 10222 2697 l 10239 2684 l 10257 2672 l 10275 2660 l + 10294 2648 l 10313 2638 l 10328 2629 l 10345 2621 l 10362 2612 l + 10380 2604 l 10399 2595 l 10418 2587 l 10439 2579 l 10460 2571 l + 10481 2563 l 10503 2555 l 10526 2548 l 10548 2541 l 10570 2534 l + 10592 2528 l 10613 2522 l 10634 2517 l 10654 2512 l 10674 2508 l + 10693 2504 l 10713 2500 l 10731 2497 l 10750 2494 l 10769 2491 l + 10789 2489 l 10809 2487 l 10829 2485 l 10849 2484 l 10870 2483 l + 10891 2482 l 10913 2482 l 10934 2482 l 10955 2483 l 10976 2484 l + 10996 2485 l 11016 2487 l 11036 2489 l 11056 2491 l 11075 2494 l + 11094 2497 l 11113 2500 l 11132 2504 l 11151 2508 l 11171 2512 l + 11191 2517 l 11212 2522 l 11233 2528 l 11254 2534 l 11276 2541 l + 11298 2548 l 11320 2555 l 11341 2563 l 11362 2571 l 11383 2579 l + 11402 2587 l 11421 2595 l 11438 2604 l 11455 2612 l 11471 2621 l + 11486 2629 l 11500 2638 l 11517 2648 l 11533 2660 l 11548 2672 l + 11563 2684 l 11577 2697 l 11590 2711 l 11603 2725 l 11615 2739 l + 11626 2754 l 11635 2768 l 11644 2783 l 11652 2797 l 11659 2811 l + 11665 2824 l 11670 2837 l 11675 2850 l 11680 2865 l 11683 2880 l + 11687 2896 l 11690 2913 l 11692 2933 l 11694 2954 l 11696 2977 l + 11697 3001 l 11698 3024 l 11699 3045 l 11700 3061 l 11700 3070 l + 11700 3074 l 11700 3075 l gs col0 s gr gr + +% arrowhead +n 10084 2956 m 10050 3075 l 10024 2954 l col0 s +% Polyline +n 10050 5925 m 10050 5926 l 10050 5930 l 10051 5939 l 10051 5955 l 10053 5976 l + 10054 5999 l 10056 6023 l 10059 6046 l 10062 6067 l 10066 6087 l + 10070 6104 l 10075 6120 l 10081 6135 l 10088 6150 l 10094 6163 l + 10102 6176 l 10111 6189 l 10121 6203 l 10132 6217 l 10145 6232 l + 10158 6246 l 10173 6261 l 10188 6275 l 10205 6289 l 10222 6303 l + 10239 6316 l 10257 6328 l 10275 6340 l 10294 6352 l 10313 6363 l + 10328 6371 l 10345 6379 l 10362 6388 l 10380 6396 l 10399 6405 l + 10418 6413 l 10439 6421 l 10460 6429 l 10481 6437 l 10503 6445 l + 10526 6452 l 10548 6459 l 10570 6466 l 10592 6472 l 10613 6478 l + 10634 6483 l 10654 6488 l 10674 6492 l 10693 6496 l 10713 6500 l + 10731 6503 l 10750 6506 l 10769 6509 l 10789 6511 l 10809 6513 l + 10829 6515 l 10849 6516 l 10870 6517 l 10891 6518 l 10913 6518 l + 10934 6518 l 10955 6517 l 10976 6516 l 10996 6515 l 11016 6513 l + 11036 6511 l 11056 6509 l 11075 6506 l 11094 6503 l 11113 6500 l + 11132 6496 l 11151 6492 l 11171 6488 l 11191 6483 l 11212 6478 l + 11233 6472 l 11254 6466 l 11276 6459 l 11298 6452 l 11320 6445 l + 11341 6437 l 11362 6429 l 11383 6421 l 11402 6413 l 11421 6405 l + 11438 6396 l 11455 6388 l 11471 6379 l 11486 6371 l 11500 6363 l + 11517 6352 l 11533 6340 l 11548 6328 l 11563 6316 l 11577 6303 l + 11590 6289 l 11603 6275 l 11615 6261 l 11626 6246 l 11635 6232 l + 11644 6217 l 11652 6203 l 11659 6189 l 11665 6176 l 11670 6163 l + 11675 6150 l 11680 6135 l 11683 6120 l 11687 6104 l 11690 6087 l + 11692 6067 l 11694 6046 l 11696 6023 l 11697 5999 l 11698 5976 l + 11699 5955 l 11700 5939 l 11700 5930 l 11700 5926 l 11700 5925 l gs col0 s gr +% Polyline +gs clippath +5959 1456 m 5925 1575 l 5899 1454 l 5895 1589 l 5954 1591 l cp +clip +n 5925 1575 m 5926 1545 l 5928 1524 l 5929 1501 l 5931 1477 l 5934 1454 l + 5937 1433 l 5941 1413 l 5945 1396 l 5950 1380 l 5956 1365 l + 5963 1350 l 5969 1337 l 5977 1324 l 5986 1311 l 5996 1297 l + 6007 1283 l 6020 1268 l 6033 1254 l 6048 1239 l 6063 1225 l + 6080 1211 l 6097 1197 l 6114 1184 l 6132 1172 l 6150 1160 l + 6169 1148 l 6188 1138 l 6203 1129 l 6220 1121 l 6237 1112 l + 6255 1104 l 6274 1095 l 6293 1087 l 6314 1079 l 6335 1071 l + 6356 1063 l 6378 1055 l 6401 1048 l 6423 1041 l 6445 1034 l + 6467 1028 l 6488 1022 l 6509 1017 l 6529 1012 l 6549 1008 l + 6568 1004 l 6588 1000 l 6606 997 l 6625 994 l 6644 991 l + 6664 989 l 6684 987 l 6704 985 l 6724 984 l 6745 983 l + 6766 982 l 6788 982 l 6809 982 l 6830 983 l 6851 984 l + 6871 985 l 6891 987 l 6911 989 l 6931 991 l 6950 994 l + 6969 997 l 6988 1000 l 7007 1004 l 7026 1008 l 7046 1012 l + 7066 1017 l 7087 1022 l 7108 1028 l 7129 1034 l 7151 1041 l + 7173 1048 l 7195 1055 l 7216 1063 l 7237 1071 l 7258 1079 l + 7277 1087 l 7296 1095 l 7313 1104 l 7330 1112 l 7346 1121 l + 7361 1129 l 7375 1138 l 7392 1148 l 7408 1160 l 7423 1172 l + 7438 1184 l 7452 1197 l 7465 1211 l 7478 1225 l 7490 1239 l + 7501 1254 l 7510 1268 l 7519 1283 l 7527 1297 l 7534 1311 l + 7540 1324 l 7545 1337 l 7550 1350 l 7555 1365 l 7558 1380 l + 7562 1396 l 7565 1413 l 7567 1433 l 7569 1454 l 7571 1477 l + 7572 1501 l 7573 1524 l 7574 1545 l 7575 1561 l 7575 1570 l + 7575 1574 l 7575 1575 l gs col0 s gr gr + +% arrowhead +n 5959 1456 m 5925 1575 l 5899 1454 l col0 s +/Times-Roman-iso ff 300.00 scf sf +10575 825 m +gs 1 -1 sc (TASK) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 300.00 scf sf +10575 600 m +gs 1 -1 sc (EVENT MANAGEMENT) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +5025 6000 m +gs 1 -1 sc (MANAGEMENT TASK) col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +5250 5775 m +gs 1 -1 sc (CREATE EVENT) col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +4950 5550 m +gs 1 -1 sc (IF ATTACH COMMAND) col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +5925 7575 m +gs 1 -1 sc (RELEASE SERIALIZE AND) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +5925 7350 m +gs 1 -1 sc (IF CONTINUE COMMAND) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +5925 7800 m +gs 1 -1 sc (CONTINUE SEMAPHORES) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +10050 5250 m +gs 1 -1 sc (NOTIFY THE) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +10050 5475 m +gs 1 -1 sc (DEBUGGEE CHANGES) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +10050 5700 m +gs 1 -1 sc (TO GDB) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 300.00 scf sf +6975 8175 m +gs 1 -1 sc (\(1\)->) dup sw pop 2 div neg 0 rm col13 sh gr +/Times-Roman-iso ff 300.00 scf sf +11025 4275 m +gs 1 -1 sc (\(2\)<-) dup sw pop 2 div neg 0 rm col1 sh gr +/Times-Roman-iso ff 180.00 scf sf +18525 2775 m +gs 1 -1 sc (WAIT FOR) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +18525 3000 m +gs 1 -1 sc (SERIALIZE) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +18525 3225 m +gs 1 -1 sc (SEMAPHORE) dup sw pop 2 div neg 0 rm col0 sh gr +% Ellipse +n 18525 2925 1275 525 0 360 DrawEllipse gs col0 s gr + +% Ellipse +n 18525 6450 1275 525 0 360 DrawEllipse gs col0 s gr + +% Ellipse +n 18525 8250 1275 525 0 360 DrawEllipse gs col0 s gr + +% Ellipse +n 18533 9976 1275 525 0 360 DrawEllipse gs col0 s gr + +% Ellipse +n 18511 4735 1275 525 0 360 DrawEllipse gs col0 s gr + +% Polyline +gs clippath +18597 2300 m 18525 2400 l 18542 2277 l 18492 2403 l 18547 2425 l cp +clip +n 18525 2400 m 18675 2025 l 18375 2025 l 18525 1650 l gs col0 s gr gr + +% arrowhead +n 18597 2300 m 18525 2400 l 18542 2277 l col0 s +% Polyline +gs clippath +18555 4080 m 18525 4200 l 18495 4080 l 18495 4215 l 18555 4215 l cp +clip +n 18525 3450 m 18525 4200 l gs col0 s gr gr + +% arrowhead +n 18555 4080 m 18525 4200 l 18495 4080 l col0 s +% Polyline +gs clippath +18555 7605 m 18525 7725 l 18495 7605 l 18495 7740 l 18555 7740 l cp +clip +n 18525 6975 m 18525 7725 l gs col0 s gr gr + +% arrowhead +n 18555 7605 m 18525 7725 l 18495 7605 l col0 s +% Polyline +gs clippath +18555 9330 m 18525 9450 l 18495 9330 l 18495 9465 l 18555 9465 l cp +clip +n 18525 8775 m 18525 9450 l gs col0 s gr gr + +% arrowhead +n 18555 9330 m 18525 9450 l 18495 9330 l col0 s +% Polyline +gs clippath +18555 5805 m 18525 5925 l 18495 5805 l 18495 5940 l 18555 5940 l cp +clip +n 18525 5250 m 18525 5925 l gs col0 s gr gr + +% arrowhead +n 18555 5805 m 18525 5925 l 18495 5805 l col0 s +/Times-Roman-iso ff 300.00 scf sf +18450 600 m +gs 1 -1 sc ( DEBUG AND BREAKPOINT) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 300.00 scf sf +18450 825 m +gs 1 -1 sc (EXCEPTION HANDLER) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +18525 6900 m +gs 1 -1 sc (SEMAPHORE) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +18525 6450 m +gs 1 -1 sc (OR BREAKPOINT EXCEP,) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +18525 6225 m +gs 1 -1 sc (IF SINGLE STEP) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +18525 6675 m +gs 1 -1 sc (RELEASE WAKE-UP) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +18525 8100 m +gs 1 -1 sc (WAIT FOR) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +18525 8550 m +gs 1 -1 sc (SEMAPHORE) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +18525 8325 m +gs 1 -1 sc (CONTINUE) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +17700 1425 m +gs 1 -1 sc (RECEIVE EXCEPTION) col0 sh gr +/Times-Roman-iso ff 300.00 scf sf +17250 8850 m +gs 1 -1 sc (->\(1\)) dup sw pop 2 div neg 0 rm col13 sh gr +/Times-Roman-iso ff 300.00 scf sf +17175 6975 m +gs 1 -1 sc (<-\(2\)) dup sw pop 2 div neg 0 rm col1 sh gr +/Times-Roman-iso ff 300.00 scf sf +17250 3525 m +gs 1 -1 sc (->\(1\)) dup sw pop 2 div neg 0 rm col13 sh gr +/Times-Roman-iso ff 180.00 scf sf +18525 10275 m +gs 1 -1 sc (RETURN OF EXCEPTION) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +18525 10050 m +gs 1 -1 sc (AND) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +18525 9825 m +gs 1 -1 sc (RESTORE CONTEXT) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +18075 4950 m +gs 1 -1 sc (CONTEXT) col0 sh gr +/Times-Roman-iso ff 180.00 scf sf +17700 4725 m +gs 1 -1 sc (SAVE EXCEPTION ) col0 sh gr +% Polyline +60.000 slw +n 16275 75 m 16050 75 16050 10500 225 arcto 4 {pop} repeat + 16050 10725 20775 10725 225 arcto 4 {pop} repeat + 21000 10725 21000 300 225 arcto 4 {pop} repeat + 21000 75 16275 75 225 arcto 4 {pop} repeat + cp gs col0 s gr +$F2psEnd +rs diff --git a/doc/rgdb_specs/revision.t b/doc/rgdb_specs/revision.t new file mode 100644 index 0000000000..a058713261 --- /dev/null +++ b/doc/rgdb_specs/revision.t @@ -0,0 +1,36 @@ +@c +@c RTEMS Remote Debugger Server Specifications +@c +@c Written by: Eric Valette +@c Emmanuel Raguet +@c +@c +@c $Id$ +@c + +@chapter Document Revision History + +@ubaraccent{Current release} : + +@itemize @b +@item Current applicable release is 2.0. +@end itemize +@ubaraccent{Existing releases} : + +@itemize @b +@item 0.1 : Released the 29/09/98. First draft of this document. +@item 0.2 : Released the 05/10/98. Second draft version. +@item 1.0 : Released the 08/10/98. Version Approved internally. +@item 1.1 : Released the 13/13/98. Version Distributed for comments. +@item 2.0 : Released the 01/11/98. Version including modifications related +to comments we have got from the RTEMS mailing list. It also contains a +more precise description of RGDBSD as we now have a first prototype, +@end itemize + +@ubaraccent{Planned releases} : + +@itemize @b +@item 2.1 Final specification release intended to include a second round +of comments, +@end itemize + diff --git a/doc/rgdb_specs/rgdb-rtems.tex b/doc/rgdb_specs/rgdb-rtems.tex new file mode 100644 index 0000000000..8dab699f71 --- /dev/null +++ b/doc/rgdb_specs/rgdb-rtems.tex @@ -0,0 +1,1224 @@ +%% This LaTeX-file was created by Mon Feb 15 17:47:54 1999 +%% LyX 1.0 (C) 1995-1999 by Matthias Ettrich and the LyX Team + +%% Do not edit this file unless you know what you are doing. +\documentclass[10pt,american]{article} +\usepackage[T1]{fontenc} +\usepackage{a4wide} +\pagestyle{plain} +\usepackage{babel} +\usepackage[dvips]{graphics} + +\makeatletter + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. +\newcommand{\LyX}{L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX\@} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Textclass specific LaTeX commands. +\newenvironment{lyxcode} + {\begin{list}{}{ + \setlength{\rightmargin}{\leftmargin} + \raggedright + \setlength{\itemsep}{0pt} + \setlength{\parsep}{0pt} + \ttfamily}% + \item[]} + {\end{list}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands. +\usepackage[dvips]{epsfig} + +\makeatother + +\begin{document} + +\vspace{0.3cm} +{\par\centering \resizebox*{1\textwidth}{!}{\includegraphics{garde.eps}} \par} + +{\par\centering \newpage\par} +\vspace{0.3cm} + +\bigskip{} +{\par\centering \textbf{\Huge RTEMS Remote Debugger}\Huge \par} +\bigskip{} + +\tableofcontents + +\listoffigures \newpage + + +\section{\noindent Introduction} + +\noindent The TOOLS project aims to provide a complete development environment +for RTEMS OS. This environment must be as close as possible to the Chorus one +(gnu compiler, gnu linker, gnu debugger,~...), because it is currently the OS +which is the most used at CRF and we want to simplify the migration path from +the ChorusOs environment to the RTEMS environment. One important item of this +development environment is the remote debugger which allows the developer to +debug his software on a target machine from a host machine via a communication +link (Ethernet, serial link,~...). \\ + + +\noindent The choice of GDB as debugger has been made with because in CRF, every +developer, which uses the ChorusOs development environment, debugs his software +using the remote debugging functionality of GDB. Providing a remote GDB debug +server running on RTEMS, will enable the developers to use transparently the +same debugger for a different RTOS. Another reason for the choice of GDB is +its constant evolution, and that it can be interfaced with graphic user interfaces +like DDD providing a very powerfull debugging environment.\\ + + +\noindent The subject of this document is to explain how GDB works and the way +to implement a daemon on RTEMS that will be used as a debugger server for a +GDB client. We will call this daemon Rtems GDB Debug Server Daemon (RGDBSD). +We aim to provide this debugger running at least on 2 host systems : Linux 2.x +and Solaris 2.5.1 as they are the two platforms used for developing Chorus applications +today. + + +\section{\noindent Document Revision History} + +\noindent \underbar{Current release} : + +\begin{itemize} +\item \noindent Current applicable release is 2.0. +\end{itemize} +\noindent \underbar{Existing releases} : + +\begin{itemize} +\item \noindent 0.1 : Released the 29/09/98. First draft of this document. +\item \noindent 0.2 : Released the 05/10/98. Second draft version. +\item 1.0 : Released the 08/10/98. Version Approved internally. +\item 1.1 : Released the 13/13/98. Version Distributed for comments. +\item 2.0 : Released the 01/11/98. Version including modifications related to comments +we have got from the RTEMS mailing list. It also contains a more precise description +of RGDBSD as we now have a first prototype, +\end{itemize} +\noindent \underbar{Planned releases} : + +\begin{itemize} +\item \noindent 2.1 Final specification release intended to include a second round +of comments, +\end{itemize} + +\section{\noindent Objectives} + +This section is intended to clearly define the current objectives of our work. +First, we will try here to list some ambitious requirements for the debugger +in section \ref{req_ref}. These requirements will deliberately be much more +ambitious than what we will provide directly ourselves in the hope that the +Internet development model will enable others to implement some features we +rejected for man-power reasons in the first step. We are committed to do the +core work and redistribute it but would appreciate any comment and enhancement. +Then, in section \ref{req_anal_ref} we will analyze each requirement to see +what technical problem must be solved if we want to fullfill it. After this +analysis, we will determine in section \ref{Sel_req_ref} the requirements we +chose to implement and the ones we will not. We will then clearly identify the +limits of our solution in section \ref{REstric_ref}. + + +\subsection{\noindent \label{req_ref}List of Requirements} + +We will identify here possible requirements for the type of debug that may be +provided : + +\begin{description} +\item [(R1)]: We want to use GDB as the front-end debugger, +\item [(R2)]: We want to support at least Intel and PowerPC as target processor architecture, +\item [(R3)]: We want to use the GDB thread debugging interface, +\item [(R4)]: We want to be able to debug a remote target over a serial line, +\item [(R5)]: We want to be able to debug a remote target over Ethernet, +\item [(R6)]: The set of target code path we will be able to debug using RGDBSD must +be clearly identified. It will be called Debug Path Set (\emph{DPS}) in the +remaining of this document, +\item [(R7)]: \emph{DPS} must include the RTEMS core executive itself, +\item [(R8)]: \emph{DPS} must include the FreeBSD stack, +\item [(R9)]: \emph{DPS} must include anything but the FreeBSD stack and the RTEMS +core executive, +\item [(R10)]: We want to enable several persons to debug different parts of the code +running on the target, +\item [(R11)]: As much as possible the system must be frozen during a debug session +so that debugging a particular portion of code does not prevent another part +from functioning, +\end{description} + +\subsection{\noindent \label{req_anal_ref}Requirements Analysis} + +\begin{description} +\item [(R1)]: Worth recalling it. It mainly imposes few restrictions on the binary +files type, target processor type as : + +\begin{itemize} +\item the binary format must be understood by GDB (to find debugging information). +Elf, Coff and A.out are the main formats currently supported. Elf/Dwarf 2.0 +binary support will be our main target as they are the preferred format for +Intel and PowerPC processors. No change in GDB will be required for other binaries +except may be a new configuration file changing the binary/debug file format, +\item the processor must be supported for disassemble/step instruction command, +\item the target system must be supported. As far as I know RTEMS is not currently +\emph{officially} supported anyway, +\end{itemize} +\item [(R2)]: Our primary targets are Intel and PowerPC. We however do not think implementing +RGDBSD for other processors will be a heavy task. It will mainly require : + +\begin{enumerate} +\item Implementing exception handling for the target processor, +\item Interfacing the generic part of RGDBSD with the low level exception handling +and make RGDBSD aware of exception used for debugging (usually illegal instruction +or dedicated trap, single step), +\item Making GDB aware of the frame layout pushed on exceptions, +\item Implement the code for data transfer for the exception frame, +\item Implement code to copy data cache back to main memory and invalidate instruction +cache. This is needed in order to be sure opcode modification used to set breakpoint +that use the data cache will be proagated to the instruction cache, +\end{enumerate} +As soon as we will have completed the first core work a document describing +how to port it to a new processor should be written. So far we will organize +the source tree with processor dependent directories so that port will be as +easy as possible. May be a bare processor support should be created, + +\item [(R3)]: GDB already has an interface for manipulating multi-threaded programs. +This interface is rather weak at the moment but it will certainly be improved +in the future with the generalization of POSIX thread API on Linux and other +operating systems. This implies that either GDB or RGDBSD is able to obtain +the list of threads currently executing. The choice of implementing this in +GDB or RGDBSD is a tradeof between target code size and simplicity, +\item [(R4)]: Regular GDB code contains clients code for debugging over a serial line. +However only few functions are implemented. We would like to provide a better +support and to uniformize serial line debugging with debugging over Ethernet +via the use of SLIP, +\item [(R5)]: Regular GDB code contains client code for debugging over Ethernet for +VxWorks via the SUN RPC library. So there will be at least one starting point +to implement remote debugging over Ethernet via SUN RPC. The Chorus remote debugging +code has been disclosed under GPL and also contains code for debugging suing +SUN RPC, +\item [(R6)]: Due to a classical chicken and egg problems, the remote debugging daemon +cannot be used to debug code it uses to function. Thus depending on the API +used by RGDBSD, some parts of the target system will not be debuggable via GDB. +The most important point is documentation because my feeling is that implementing +RGDBSD on a totally different \emph{dedicated} nano kernel should be possible, +\item [(R7)]: RTEMS core executive is a real-time OS which implements priority level +scheduling, synchronization objects, and interrupt handling. As mentioned in +previous item, we may not debug theses features if RGDBSD uses them. This requirement +is thus very strong because it impose that : + +\begin{enumerate} +\item RGDBSD is totally interrupt driven (no thread API available), +\item But it does not use RTEMS interrupt management, +\item Nor does not use RTEMS exception management, +\item RGDBSD must provide its own UDP/IP stack as the current FreeBSD code rely on +tasks switching and RTEMS provided synchronization object for input path handling, +\end{enumerate} +So our feeling is that the \textbf{(R7)} more or less requires to write a \emph{dedicated} +nano kernel with a very small dedicated UDP/IP stack. + +\item [(R8)]: GDB remote debugging over Ethernet code communicates with the remote +target via the SUN RPC protocol. This requires a UDP/IP protocol and a minimal +socket like interface. In RTEMS environment, this feature is currently provided +by the FreeBSD stack. Again, if we use the FreeBSD stack itself for remote communication, +it will be impossible to debug this stack as a breakpoint in the stack code +will stop its execution and there would be no more way to communicate with the +target. A solution consists in implementing a minimal, dedicated UDP/IP stack +(with at least IP and UDP protocols, a minimal BSD sockets) and a simple SUN +RPC library, which will be both dedicated to the debug. We can use RTEMS API +to implement it if \textbf{(R7)} is not required. As the two stack will need +to share the same chip, a kind of shared filter must be implemented at the bottom +of the two stacks so that Ethernet frames can be dynamically directed either +to the dedicated UDP/IP debug stack or to the regular FreeBSD stack. The fact +that in the current design, the low level ethernet input routine mainly signal +a thread should facilitate the design of this filter. The output path is less +complicated as it is run by a task and thus can sleep on a synchronization object, +\item [(R9)]: This requirement represents what we find reasonable as a first target. +However, we can still present to the final user this kind of debugging via different +model. RTEMS can be represented as a single threaded system or, because RTEMS +is a multitasking system, as an ensemble of separate tasks. In the first representation, +the debugger sees only 1 ``task'' without distinguishing the core executive +part from the applicative part. This is the simplest way to implement the debugger +but also implies that there is no way to protect the core executive. Some of +these tasks are system tasks (tasks form the core executive and from the FreeBSD +stack), the other ones are tasks implemented by the developer. The developer +wants to debug his tasks, and sometimes only one of his tasks. We can provide +a way to debug not the entire system but only the concerned task by testing +if the current running task is a debugged task (test on the task identifier). +GDB offers an API to ``detach'' thread so that if a detached thread hits a +breakpoint it is automatically restarted without user intervention, +\item [(R10)]: Several developers can work on a large project, each on a specific +module. Sometimes only one target is available for everyone. This requirements +is not really meaningfull until RTEMS supports dynamic code loading, +\item [(R11)]: This requirement heavily depends on the \textbf{(R7)} and \textbf{(R8)} +requirements. +\end{description} + +\subsection{\label{Sel_req_ref}Requirements Selection} + + +\subsubsection{Requirement We Will Take Into Account For the First Implementation} + +\begin{description} +\item [(R1)]: Obviously. +\item [(R2)]: As these are our targets. Of course other will be free to contribute. +We will however document the works that needs to be done in order to port the +debug code to other processors, +\item [(R3)]: We think it is feasible with only few RTEMS modifications, +\item [(R5)]: We think serial line debugging is nowadays too restrictive as most equipment +are now connected via Ethernet, +\item [(R6)]: This is a documentation problem and should be fairly easy to describe +once we have the RGDBSD code, +\item [(R9)]: We will try to provide the multi-thread target system presentation, +\end{description} + +\subsubsection{Requirements We Will Not Implement} + +\begin{description} +\item [(R4)]: it will not be implemented for the moment. It is just a matter on implementing +SLIP in the FreeBSD stack and alternative solutions already exist in the meantime, +\item [(R7)]: To simplify the first developments, we don't plan to implement a \emph{dedicated} +nano-kernel to allow the RTEMS kernel to be debugged. It means that, if any +breakpoint is set in the kernel, unpredictable behaviors can occur. So, developers +must keep in mind to avoid stopping the kernel. They must also keep in mind, +in order to not stop the kernel, that the user's tasks must have a lower priority +than the tasks used for debug. The solution is to use a specific very-high priority +level for the system tasks used directly or indirectly by RGDBSD. The SYSTEM\_TASK +attribute that already exists should be fine. +\item [(R8)]: To avoid increasing the code size and the used memory and because the +FreeBSD stack doesn't need to be debug any more, we choose not to implement +a minimal TCP/IP stack but rather to use the FreeBSD one as communication protocol, +\item [(R10)]: We will see later when a file system will be available and we can implement +\textbf{exec} system call, +\item [(R11)]: Without a separate TCP/IP stack it will be hard to freeze the system +as some interrupts must occur in order to enable the FreeBSD stack to function, +\end{description} + +\subsection{\noindent \label{REstric_ref}Implied Restrictions} + +\noindent High priority level must be used for these features : + +\begin{itemize} +\item \noindent FreeBSD interrupt handling thread, +\item \noindent Debugger threads. +\end{itemize} +\noindent This will allows these tasks not to be stopped when a process is stopped +in debug mode + +\noindent If we don't want to use a ``specific'' priority level, we must affect +priority to each of these tasks as follow : + +\begin{itemize} +\item \noindent FreeBSD stack (high priority) +\item \noindent Debugger (less high priority) +\end{itemize} +\noindent The user must remember the higher priority level he can use for his +software in order not to block one of the previous threads and to not put breakpoints +in part of the code executed by RGDBSD. + + +\section{\noindent A Rapid Tour of GDB Internals} + +\noindent To help the reader to understand what needs to be implemented, we +will present briefly how GDB works regardless if the target is local or remote. +A debugger is a tool which enables control of the execution of software on a +target system. In most of cases, the debugger connects to a target system, attaches +a process, inserts breakpoints and resumes execution. Then the normal execution +is completely events driven (process execution stopped due to a breakpoint, +process fault, single-step,...) coming from the debuggee. It can also directly +access some parts of the target processor context (registers, data memory, code +memory,...) and change their content. Native GDB debugger can just be seen as +special cases where the host and the target are on the same machine and GDB +can directly access the target system debug API.\\ + + +\noindent In our case, the host and the target are not on the same machine and +an Ethernet link is used to communicate between the different machines. Because +GDB needs to be able to support various targets (including Unix core file, ...), +each action that needs to be performed on the debuggee is materialized by a +field of the following \emph{targets\_op}s structure : + +\begin{lyxcode} +{\par\noindent struct~target\_ops\par} + +{\par\noindent \{\par} + +{\par\noindent ~~char~~~~~~~~~{*}to\_shortname;~~~/{*}~Name~this~target~type~{*}/\par} + +{\par\noindent ~~char~~~~~~~~~{*}to\_longname;~~~~/{*}~Name~for~printing~{*}/\par} + +{\par\noindent ~~char~~~~~~~~~{*}to\_doc;~~~~~~~~~/{*}~Documentation.~~Does~not~include~trailing\par} + +{\par\noindent ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~newline,~and~starts~with~a~one-line~descrip-\par} + +{\par\noindent ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~tion~(probably~similar~to~to\_longname).~{*}/\par} + +{\par\noindent ~~void~~~~~~~~({*}to\_open)~PARAMS~((char~{*},~int));\par} + +{\par\noindent ~~void~~~~~~~~({*}to\_close)~PARAMS~((int));\par} + +{\par\noindent ~~void~~~~~~~~({*}to\_attach)~PARAMS~((char~{*},~int));\par} + +{\par\noindent ~~void~~~~~~~~({*}to\_detach)~PARAMS~((char~{*},~int));\par} + +{\par\noindent ~~void~~~~~~~~({*}to\_resume)~PARAMS~((int,~int,~enum~target\_signal));\par} + +{\par\noindent ~~int~~~~~~~~~({*}to\_wait)~PARAMS~((int,~struct~target\_waitstatus~{*}));\par} + +{\par\noindent ~~void~~~~~~~~({*}to\_fetch\_registers)~PARAMS~((int));\par} + +{\par\noindent ~~void~~~~~~~~({*}to\_store\_registers)~PARAMS~((int));\par} + +{\par\noindent ~~void~~~~~~~~({*}to\_prepare\_to\_store)~PARAMS~((void));\par} + +{\par\noindent ~\par} + +{\par\noindent ~~/{*}~Transfer~LEN~bytes~of~memory~between~GDB~address~MYADDR~and\par} + +{\par\noindent ~~~~~target~address~MEMADDR.~~If~WRITE,~transfer~them~to~the~target,~else\par} + +{\par\noindent ~~~~~transfer~them~from~the~target.~~TARGET~is~the~target~from~which~we\par} + +{\par\noindent ~~~~~get~this~function.\par} + +{\par\noindent ~\par} + +{\par\noindent ~~~~~Return~value,~N,~is~one~of~the~following:\par} + +{\par\noindent ~\par} + +{\par\noindent ~~~~~0~means~that~we~can't~handle~this.~~If~errno~has~been~set,~it~is~the\par} + +{\par\noindent ~~~~~error~which~prevented~us~from~doing~it~(FIXME:~What~about~bfd\_error?).\par} + +{\par\noindent ~\par} + +{\par\noindent ~~~~~positive~(call~it~N)~means~that~we~have~transferred~N~bytes\par} + +{\par\noindent ~~~~~starting~at~MEMADDR.~~We~might~be~able~to~handle~more~bytes\par} + +{\par\noindent ~~~~~beyond~this~length,~but~no~promises.\par} + +{\par\noindent ~\par} + +{\par\noindent ~~~~~negative~(call~its~absolute~value~N)~means~that~we~cannot\par} + +{\par\noindent ~~~~~transfer~right~at~MEMADDR,~but~we~could~transfer~at~least\par} + +{\par\noindent ~~~~~something~at~MEMADDR~+~N.~~{*}/\par} + +{\par\noindent ~\par} + +{\par\noindent ~~int~~~~~~~~~({*}to\_xfer\_memory)~PARAMS~((CORE\_ADDR~memaddr,~char~{*}myaddr,\par} + +{\par\noindent ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~int~len,~int~write,\par} + +{\par\noindent ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~struct~target\_ops~{*}~target));\par} + +{\par\noindent ~\par} + +{\par\noindent ~~void~~~~~~~~({*}to\_files\_info)~PARAMS~((struct~target\_ops~{*}));\par} + +{\par\noindent ~~int~~~~~~~~~({*}to\_insert\_breakpoint)~PARAMS~((CORE\_ADDR,~char~{*}));\par} + +{\par\noindent ~~int~~~~~~~~~({*}to\_remove\_breakpoint)~PARAMS~((CORE\_ADDR,~char~{*}));\par} + +{\par\noindent ~~void~~~~~~~~({*}to\_terminal\_init)~PARAMS~((void));\par} + +{\par\noindent ~~void~~~~~~~~({*}to\_terminal\_inferior)~PARAMS~((void));\par} + +{\par\noindent ~~void~~~~~~~~({*}to\_terminal\_ours\_for\_output)~PARAMS~((void));\par} + +{\par\noindent ~~void~~~~~~~~({*}to\_terminal\_ours)~PARAMS~((void));\par} + +{\par\noindent ~~void~~~~~~~~({*}to\_terminal\_info)~PARAMS~((char~{*},~int));\par} + +{\par\noindent ~~void~~~~~~~~({*}to\_kill)~PARAMS~((void));\par} + +{\par\noindent ~~void~~~~~~~~({*}to\_load)~PARAMS~((char~{*},~int));\par} + +{\par\noindent ~~int~~~~~~~~~({*}to\_lookup\_symbol)~PARAMS~((char~{*},~CORE\_ADDR~{*}));\par} + +{\par\noindent ~~void~~~~~~~~({*}to\_create\_inferior)~PARAMS~((char~{*},~char~{*},~char~{*}{*}));\par} + +{\par\noindent ~~void~~~~~~~~({*}to\_mourn\_inferior)~PARAMS~((void));\par} + +{\par\noindent ~~int~~~~~~~~~({*}to\_can\_run)~PARAMS~((void));\par} + +{\par\noindent ~~void~~~~~~~~({*}to\_notice\_signals)~PARAMS~((int~pid));\par} + +{\par\noindent ~~int~~~~~~~~~({*}to\_thread\_alive)~PARAMS~((int~pid));\par} + +{\par\noindent ~~void~~~~~~~~({*}to\_stop)~PARAMS~((void));\par} + +{\par\noindent ~~enum~strata~~~to\_stratum;\par} + +{\par\noindent ~~struct~target\_ops\par} + +{\par\noindent ~~~~~~~~~~~~~~~~{*}DONT\_USE;~~~~~~/{*}~formerly~to\_next~{*}/\par} + +{\par\noindent ~~int~~~~~~~~~~~to\_has\_all\_memory;\par} + +{\par\noindent ~~int~~~~~~~~~~~to\_has\_memory;\par} + +{\par\noindent ~~int~~~~~~~~~~~to\_has\_stack;\par} + +{\par\noindent ~~int~~~~~~~~~~~to\_has\_registers;\par} + +{\par\noindent ~~int~~~~~~~~~~~to\_has\_execution;\par} + +{\par\noindent ~~struct~section\_table\par} + +{\par\noindent ~~~~~~~~~~~~~~~{*}to\_sections;\par} + +{\par\noindent ~~struct~section\_table\par} + +{\par\noindent ~~~~~~~~~~~~~~~{*}to\_sections\_end;\par} + +{\par\noindent ~~int~~~~~~~~~~~to\_magic;\par} + +{\par\noindent ~~/{*}~Need~sub-structure~for~target~machine~related~rather~than~comm~related?~{*}/\par} + +{\par\noindent \};\par} +\end{lyxcode} +\noindent This structure contains pointers to functions (in C++, this would +be called a virtual class). Each different target supported by GDB has its own +structure with the relevant implementation of the functions (some functions +may be not implemented). When a user connects GDB to a target via the ``target'' +command, GDB points to the structure corresponding to this target. Then the +user can attache GDB to a specific task via the ``attach'' command. We have +therefore identified two steps to begin a remote debug session : + +\begin{enumerate} +\item the choice of the target type (in our case RTEMS), +\item the choice of what to debug (entire system, specific task,...), +\end{enumerate} +Note that in the case of natives debugger, the choice of the target is implicitly +performed by commands like \textbf{run}, \textbf{attach}, \textbf{detach}. Several +figures will now be described showing the main steps of a debug session. \newline + +\noindent Figure \ref{init_seq} explains how the debugger connects to the target +: + +\begin{enumerate} +\item \noindent The debugger opens a connection to the target. The word ``connection'' +doesn't only mean Ethernet or serial link connection but all the ways by which +a process can communicate with another one (direct function call, messages mailbox, +...), +\item \noindent The targets checks if it can accept or reject this connection, +\item \noindent If the connection is accepted, the host ``attaches'' the process, +\item \noindent the target stops the process, notifies a child's stop to the host +and waits for command, +\item \noindent the host can ask information about the debugged process (name, registers,...) +or perform some action like setting breakpoints, ... +\end{enumerate} +\noindent Figure \ref{breakpoint seq} explains how the debugger manages the +breakpoints and controls the execution of a process : + +\begin{enumerate} +\item \noindent The host asks the debuggee what is the opcode at the concerned address +in order for GDB to memorize this instruction, +\item \noindent the host sends a CONTINUE command : it asks the target to write the +``DEBUG'' opcode (for example, the INTEL ``DEBUG'' opcode is INT3 which +generate a breakpoint trap) instead of the debugged opcode. +\item \noindent then the host waits for events, +\item \noindent after the change of instruction, the target resumes the execution +of the debuggee, +\item \noindent when the ``DEBUG'' opcode is executed, the breakpoint exception +handler is executed and it notifies the host that the process is stopped. Then +it waits for commands (if no command is sent after a certain amount of time, +the connection will be closed by the target). +\item \noindent the host asks the target to re-write the right opcode instead of the +''DEBUG'' opcode and then can ask information +\end{enumerate} +\noindent Figure \ref{breakpoint seq} also shows the case of other ``CONTINUE'' +commands (remember that the ``DEBUG'' opcode has been replaced by the right +instruction): + +\begin{enumerate} +\item \noindent Host sends first a ``single step'' command to execute the debugged +instruction, +\item \noindent It then waits for ``single step`` exception event, +\item \noindent the target, once the single step executed, calls the debug exception +handler. It notifies the host that execution is suspended and wait for commands. +\item \noindent the host asks the target to re-write the ``DEBUG'' opcode (breakpoint +trap) instead of the debugged one. +\item \noindent then the host sends a ``CONTINUE'' command in order the target to +resume the process execution to the next breakpoint. +\end{enumerate} +\noindent Figure \ref{detach seq} explains how the debugger disconnects from +a target : + +\begin{enumerate} +\item \noindent the host sends a detach command to the target. +\item \noindent the target detaches the concerned process, notifies the detachment +and resumes the process execution. +\item \noindent once notified, the host sends a close connection command. +\item \noindent the target closes the connection. +\end{enumerate} +\noindent These 3 examples show that the mains actions that are performed by +the host debugger on the target are only simple actions which look like : + +\begin{itemize} +\item \noindent read/write code, +\item \noindent read/write data, +\item \noindent read/write registers, +\item \noindent manage exceptions, +\item \noindent send/receive messages to/from the host. +\begin{figure} +{\par\centering \resizebox*{1\textwidth}{0.7\textheight}{\includegraphics{seg_init.eps}} \par} + + +\caption{\label{init_seq}Debug session initialization} +\end{figure} +\begin{figure} +{\par\centering \resizebox*{0.8\textwidth}{1\textheight}{\includegraphics{seq_break.eps}} \par} + + +\caption{\label{breakpoint seq}Breakpoint and process execution} +\end{figure} +\begin{figure} +{\par\centering \resizebox*{0.7\textwidth}{0.3\textheight}{\includegraphics{seq_detach.eps}} \par} + + +\caption{\label{detach seq}Detach a process and close a connection} +\end{figure} + +\end{itemize} + +\section{\noindent Interfacing GDB with RTEMS as a Target} + +\noindent So, basically, porting GDB to RTEMS environment requires implementing +the functions contained in the target\_ops structure. The native debugger implementation +(where the host machine is also the target one) uses direct function calls. +For our needs (remote debugging), these functions must be implemented to support +the encapsulation in UDP/IP layers and communications between different types +of host machines : the best solution is use the SUN Remote Procedure Calls API +(SUN RPC). This SUN RPC module will be explained below (see paragraph \ref{RPC}). + +\noindent We can note that the functions described in the target\_ops structure +are high-level functions. The main reason is that GDB was designed in order +to be able to use monitor firmware as a debug server. In the case of a Unix +OS target, these high-level functions are implemented themselves using a lower +level POSIX API. Because we want to simplify the code running on the target +and decrease its size of this code, we propose to use the POSIX layer API used +for the debug like \textbf{waitpid}, \textbf{ptrace},~... Due to the GDB working +mode and due to our requirements, we can establish here a non-exhaustive list +of some commands required to implement the previously described functions~: + +\begin{itemize} +\item \noindent set up a connection with a target, +\item \noindent close a connection, +\item \noindent send a signal to the specified process, +\item \noindent get a list of process/thread/connection running, +\item \noindent control process under debug, +\item \noindent ... +\end{itemize} +\noindent Control means that, with this function, we can read, write the memory +of the debuggee, insert breakpoint to stop the process and resume the process +execution. This command can be implemented by emulating in the RTEMS environment +a Unix function called ``ptrace''. This function allows the control of a child +process. The ``ptrace'' function has some sub-functions which are described +below (some of these actions and standardized, the others are added due to our +needs)~: + +\begin{itemize} +\item \noindent PTRACE\_PEEKTEXT, PTRACE\_PEEKDATA : read word at address, +\item \noindent PTRACE\_POKETEXT, PTRACE\_POKEDATA :write word at address, +\item \noindent PTRACE\_CONT : restart after signal, +\item \noindent PTRACE\_KILL : send the child a SIGKILL to make it exit, +\item \noindent PTRACE\_SINGLESTEP : set the trap flag for single stepping, +\item \noindent PTRACE\_ATTACH : attach to the process specified, +\item \noindent PTRACE\_DETACH : detach a process that was previously attached.\newpage +\end{itemize} +\noindent This list only contains the command that are described in the ptrace +Unix manpage. For some specific needs (debug of one task among several ones, +register read/write,...), it is possible to create some special ptrace commands +as described after~: + +\begin{itemize} +\item \noindent get current task registers, +\item \noindent set current task registers, +\item \noindent list of the threads, +\item \noindent identifier of the target thread, +\item \noindent restart to address, +\item \noindent set breakpoint at address, +\item \noindent clear breakpoint, +\item \noindent get breakpoints, +\item \noindent load dynamically a task, +\item \noindent ... +\end{itemize} +\noindent This list is not exhaustive and can be increased due to the needs. +All the described functions will not be implemented in a first version, only +the strictly needed. If some commands are added, the modifications must be implemented +both in RTEMS and in GDB. + + +\section{\noindent \label{RPC}Communication with GDB} + +\noindent The RTEMS remote debugger will be accessed by GDB on a host machine +through a communication link. We will use the TCP/IP stack included in RTEMS +: the FreeBSD stack. The communication link will be based based on the UDP protocol +and the BSD sockets which are parts of the FreeBSD stack. On top of these layers, +we will plug a module which allows a simple communication between different +machines (especially between different endianess machines)~: the SUN Remote +Procedure Call (SUN RPC). This code is freely available on the net and comes +with a BSD like license. With this module, a process can invoke a procedure +on a remote system. The RTEMS remote debugger will be seen by GDB as a SUN RPC +server. Commands will be packed by the GDB SUN RPC client and sent to the server. +This server will unpack these commands, execute them and, if needed, return +results to the SUN RPC client.\\ + + +\noindent Only a minimal subset of the SUN RPC library must be implemented. +For example, the portmapper related API which allows a dynamic allocation of +port numbers will not be implemented and some specific UDP port numbers will +be used to establish the communication between the host and the target. The +SUN RPC library implements the XDR module (eXternal Data Representation) which +is a standard way of encoding data in a portable fashion between different endian +systems. Below are figures describing the additional code and data size for +the minimal library implementation we currently have already implemented for +RTEMS : + +\begin{lyxcode} +size~-x~librpc.a~ + +text~~data~bss~dec~hex~filename~ + +0x40e~0x0~0x0~1038~40e~rpc\_callmsg.o~(ex~librpc.a)~ + +0x2f1~0x18~0x0~777~309~rpc\_prot.o~(ex~librpc.a)~ + +0x458~0x0~0x0~1112~458~svc.o~(ex~librpc.a)~ + +0x4f~0x4~0x0~83~53~svc\_auth.o~(ex~librpc.a)~ + +0x75c~0x18~0x0~1908~774~svc\_udp.o~(ex~librpc.a)~ + +0x711~0x4~0x10~1829~725~xdr.o~(ex~librpc.a~ + +0x149~0x0~0x0~329~149~xdr\_array.o~(ex~librpc.a)~ + +0x165~0x20~0x0~389~185~xdr\_mem.o~(ex~librpc.a) +\end{lyxcode} +\noindent We have a constraint with the use of the UDP protocol. Because this +protocol is connectionless, it is impossible, especially for the target, to +detect if the connection is always active. On the other hand, using the TCP/IP +protocols seems to be heavy especially if we plan to implement a dedicated micro +stack for debug in the future. It can be a real problem to let the debugged +process stopped during a long time even if there is no more debugger connected +to the system. To avoid such a problem, the target must periodically test the +connection with the host on another way than the one used to receive the commands. +We must therefore open two communication ways so we need two fixed UDP port +numbers. + +\begin{enumerate} +\item \noindent One port will be used by the debugger to send its commands to the +debugged process and to receive the result of these commands. View from the +remote debugger, this port will be called primary port. For this one, we choose +arbitrarily the port number 2000. +\item \noindent The other socket will be used as secondary port by the target to sometimes +test the connection between the host and the target. These tests will occur +in specific situations, when a process will be stopped on a breakpoint, single +step instruction or other means. This secondary port will also be used by the +target to signal any change in the behavior of a debugged process (stopped, +killed, waiting for,...). For the secondary port, we choose the port number +2010. +\end{enumerate} +\noindent These two port numbers are used by the remote debugger to open the +two communication sockets. GDB will use its own mean to choose its port numbers +(probably the Unix portmapper). The figure \ref{layer} shows the different +layers we need to implement. + +\begin{figure} +{\par\centering \includegraphics{layers.eps} \par} + + +\caption{\label{layer}Communication layers} +\end{figure} + + + +\section{\noindent RTEMS Debugger Server Daemon} + +\noindent We will describe in this section how this debugger server will be +implemented on RTEMS environment. Our initial target is based on Intel Pentium +and we will use an Ethernet link to communicate between the host and the target. + +\noindent The RTEMS remote debugger will be composed by several tasks and exception +handlers : + +\begin{itemize} +\item \noindent an initialization task which opens the sockets and runs the SUN RPC +server. This task will also connect the interrupt handlers and launch the communication +task +\item \noindent a communication task which receives the SUN RPC commands, executes +them and sends the result to the GDB client, +\item A debuggee event management task which waits for events. We need a different +task than the command management task in order to be able to still accept commands +while no event has yet occurred for the debuggee. An example could be a continue +command from GDB and then hitting to DEL key to see what is currently going +on on the target side because an expected breakpoint is not caught... +\item \noindent a debug exception handler which manages the hardware breakpoint and +single step exceptions (INT 1 on Intel x86), +\item \noindent a breakpoint exception handler which manages the software breakpoints +exceptions (INT 3 on Intel x86), +\item a default exception handler used to catch every possible errors make on the +target system, +\end{itemize} +\noindent Figure \ref{remote debugger tasks and handlers} represents these +different tasks and handlers. The synchronization between the different task +and exception handlers will be described below in chapter \ref{Synchro_ref}. +Some open issues we have faced for a prototype implementation are described +in chapter \ref{Open_issue_ref}. The temporary workaround we chose are described +in chapter \ref{Workaround_ref}. + + +\subsection{\noindent The INITIALIZATION task} + +\noindent This is the task that must be executed at the boot phase of RTEMS. +It initializes the debug context. It must : + +\begin{itemize} +\item \noindent open the UDP sockets, +\item \noindent run the SUN RPC server main loop, +\item \noindent create the COMMAND MANAGEMENT task, +\item \noindent connect the DEBUG EXCEPTION handler, +\item \noindent connect the SOFTWARE BREAKPOINT handler, +\item \noindent delete itself. +\end{itemize} +\noindent If an error occurs at any step of the execution, the connections established +before the error will be closed, before the initialization task deletes itself. + + +\subsection{\noindent The COMMAND\_MNGT task} + +\noindent This task is in charge of receiving the SUN RPC messages and executing +the associated commands. This task must have an important priority because it +must be executed each time a command message comes from the debugger. It must +be executed even if one or both exception handlers are executed. But the COMMAND +MANAGEMENT task must not block the TCP/IP module without which no message can +be received. + +\noindent When not executing a command, this task is waiting for a SUN RPC message +on the primary port. This idle state blocks the task, so the other active tasks +can run. Once a message comes from Ethernet via the primary port, the COMMAND +MANAGEMENT task wakes up and receives the message which is a request from GDB. +This request is sent to the SUN RPC server code which extracts the command and +its arguments, executes it and, if needed, sends a result to GDB. After having +performed these actions, the task sleeps, waiting for another message. + +\noindent A particular case is the reception of the ATTACH command : in this +case the COMMAND\_MNGT task creates the EVENT\_MNGT task described below before +going to wait on UDP socket again. + + +\subsection{The EVENT\_MNGT task} + +This task is in charge of managing events happening on the debuggee such as +breakpoint, exceptions. This task does a basic simple loop waiting for event +on a synchronization variable. It is waken up by exception handlers code. It +then signals GDB that an event occurred and then go sleeping again as further +requests will be processed by the COMMAND\_MNGT task. + + +\subsection{\noindent The DEBUG EXCEPTION handler} + +\noindent This handler is connected to the DEBUG exception (INT 1 on Intel ix86). +This exception is entered when : + +\begin{itemize} +\item \noindent executing a single-step instruction, +\item \noindent hardware breakpoint condition is true, +\end{itemize} +\noindent These events will be treated by the debugger because they are the +primary event used when debugging a software for instruction stepping. In both +cases, the DEBUG EXCEPTION handler code is executed. Please note that the execution +context of the exception handler is the supervisor stack of the task that generated +the exception . This implies : + +\begin{itemize} +\item \noindent We may sleep in this context, +\item We have as many possible execution context for the DEBUG EXCEPTION handler as +we need to, +\item When we enter the high level exception handler code, a normalized exception +context has been pushed on the system stack and a pointer to this context is +available as the first argument (cf c/src/exec/score/cpu/i386/cpu.c for more +details), +\end{itemize} +\noindent First the exception handler wakeup the EVENT\_MNGT task. Then it will +cause the faulting thread to sleep on a synchronization object. As soon as GDB +receives the event notifying that the debuggee status has changed, it will start +sending requests to get the debuggee status (registers set, faulty task id, +...). These requests are handled by the COMMAND MANAGEMENT task. When this task +receive a PTRACE\_CONT command it will resume the execution of the task that +caused the exception by doing a V on the synchronization object. + + +\subsection{\noindent The BREAKPOINT EXCEPTION handler} + +\noindent This handler is connected to the BREAKPOINT exception (INT3 on Intel +Ix86). Each time the debugger wants to place a software breakpoint in the debuggee, +a debuggee opcode is temporarily replaced by an instruction causing BREAKPOINT +exception (the ``INT 3'' instruction on Intel ix86). When ``INT 3'' is executed, +the BREAKPOINT handler is executed. Otherwise, the exception processing is the +same than the one described in previous section. + + +\subsection{\label{Synchro_ref}Synchronization Among Tasks and Exception Handlers} + +The previous chapters have presented a simplified and static view of the various +tasks and exceptions handlers. This chapter is more focussed on synchronization +requirements about the various pieces of code executed when RGDBSD is operating. + + +\subsubsection{Implicit Synchronization Using Task Priorities} + +This chapter is relevant on Uniprocessor System (UP) only. However, it will +also list the requirements for explicit synchronization on Multi-processor Systems +(MP). Below are the task priorities sorted by high priority. They are not supposed +to be equal : + +\begin{enumerate} +\item Network Input Task. This is the highest priority task. This can be regarded +as a software interrupt task for FreeBSD code, +\item RGDBSD command task. As this task waits on UDP sockets, it shall not prevent +the previous task from running. As the main debug entry point, it should preempt +any other task in the system, +\item RGDBSD event task. This task should preempt any task but the two mentionned +before to signal a debug event to GDB. The command task shall be able to preempt +this task for emergency command such as DEL, or REBOOT, +\item Applications tasks (task we are able to debug), +\end{enumerate} +Using theses priorities eliminates the need for adding more synchronization +objects in the next section. My belief is that symmetric MP support will require +more important change in the RTEMS than RGDBSD itself like multiple scheduler +queues, task to processor binding for non symmetric IO, use a different implementation +for \emph{task\_disable\_preemption}, ... + + +\subsubsection{Explicit Synchronization} + +This chapter will describe the synchronization variables that need to be implemented +in order to sequence debug events in a way that is compatible with what GDB +code expects. The root of the problem is that GDB code mainly expects that once +a debug event has occurred on the debuggee, the entire debuggee is frozen and +no other event will occur before the CONTINUE command is issued. This behavior +is hard to achieve in our case as once we hit a breakpoint, only the task that +hits the breakpoint will be asleep on a synchronization object. Other tasks +may hit other breakpoints while we are waiting commands from GDB generating +potential unexpected events. There is a solutions if RGDBSD itself use RTEMS +threads to fix this problem by creating a task that loops forever at a priority +superior to any debugged task but below RGDBSD task priorities. Unfortunately +this will not work for the case we use the nano-kernel implementation and we +think it is better to study synchronization problems now. We also expects that +multi-thread debug support hardening in GDB will remove some event serializations +requirements. Here is the list of synchronization variables we plan to use and +their usage. They are all regular semaphores. They are not binary semaphores +because the task that does V is not the task that has done the P. + +\begin{itemize} +\item \emph{WakeUpEventTask} : used by exception handler code to wake up the EVENT\_MNGT +task by doing a V operation on this object. When target code is running normally +the EVENT\_MNGT task sleeps due to a P operation on this semaphore, +\item \emph{SerializeDebugEvent} : used to serialize events in a way compatible to +what GDB expects. Before doing a V operation on \emph{WakeUpEventTask,} the +exception handler does a P on this semaphore to be sure processing of another +exception is not in progress. Upon reception of a CONTINUE command, the COMMAND\_MNGT +task will issue a V operation so that the exception code can wake up EVENT\_MNGT +task using the mechanism described above, +\item \emph{RestartFromException} : (in fact one semaphore per task) used by exception +handling code to put a faulty task to sleep once it has generated an exception +by doing a P operation on this semaphore. In the case the exception was generated +due to a breakpoint, GDB command will modify back the BREAKPOINT opcode to the +original value before doing the CONTINUE command. This command will perform +a V on this semaphore. In the case it is a real non restartable exception (faulty +memory reference via invalid pointer for example), GDB will not allow to restart +the program avoiding any loop. So not special analysis of cause of exception +is foreseen as far as RGDBSD code is concerned, +\end{itemize} + +\subsection{\label{Open_issue_ref}Open Issues} + +Here are some problems we have faced while implementing our prototype : + +\begin{description} +\item [Protected~ReadMem/WriteMem~(I1)]: A GDB user can request to see the content +of a corrupted pointer. The request PEEK\_DATA will be performed by the COMMAND\_MNGT +task. It shall not enter the default exception handler set by RGDBSD or it will +cause a dead lock in the RGDBSD code. Replacing the default exception vector +before calling \textbf{readMem/writeMem} can be temporarily sufficient but : + +\begin{itemize} +\item It will never work on MP system as it will rely on task priorities to insure +that other task will not cause exceptions while we have removed the default +exception handler, +\item This feature should not be usable in RGDBSD only but also by an embedded debugger +that may run without any task. It is also unavoidable in case of protected memory +and in this case no priority mechanism can be used, +\item In the case of using RGDBSD code on a dedicated nano kernel, this code will +be called from interrupt level and we need a way to be sure we can debug other +interrupts that may also cause exceptions, +\end{itemize} +\item [ATTACH~Command~Implementation~(I2)]: After the \emph{target rtems symbolic\_ip\_target\_name} +command, the normal operation is to issue an \emph{attach lid} command where +\emph{lid} represents a valid execution context. For Unix this is a process +id, for other multi-tasking system this is the id of a thread. After the attach +command, GDB expects to be waken up in the same manner as it is for normal events. +Once waken up it expects to have a complete register context available and also +that the target task is in a stopped state and that it can restart it using +the regular CONTINUE command. In RTEMS there is a way to get force a thread +to become inactive via \emph{rtems\_task\_suspend} but no way to get the full +registers set for the thread. A partial context can be retrieved from the task +\emph{Registers} data structure. On the other hand, relying on \emph{rtems\_task\_suspend} +will be a problem for the nano-kernel implementation. +\item [Stopping~Target~System~(I3)]: Allthough it might not be obvious, most of the +actions made by a GDB user assume the target is not running. If you modify a +variable via the \emph{set variable = value} command you expect that the value +is the one you have put when restarting. If a still running task modifies the +same value in the mean time, this may be false. On the other hand, stopping +all the tasks on the target system impose to have a very deep knowledge of the +system. Using an interrupt driven RGDBSD, may facilitate the implementation +on the nano-kernel. +\item [Getting~Tasks~Contexts~(I4)]: As previously mentionned there is no way to get +tasks execution contexts via the RTEMS API. This is needed when debugging for +example via this classical sequence : + +\begin{enumerate} +\item \emph{(gdb) target rtems symbolic\_ip\_target\_name} +\item \emph{(gdb) info threads <=} get a thread list on screen +\item \emph{(gdb)} \emph{attach thread\_id} <= thread\_id is one of the thread in +the list +\item \emph{(gdb) b a\_function\_of\_interest } +\item \emph{(gdb) continue} +\item \emph{(gdb)} \emph{backtrace} <= print the call stack on the screen once we +have hit the breakpoint +\item \emph{(gdb) thread target another\_thread\_li <=} change implicit current thread +value for gdb commands +\item \emph{(gdb)} \emph{backtrace <=} should print the backtrace for the chosen thread +\end{enumerate} +In our execution model, we have a valid context only for the threads that hits +the breakpoint as it has been pushed by the exception handler code. The other +thread is still running and during the various RPC requesting memory access, +it even changes as the COMMAND\_MNGT thread is going to sleep. So the backtrace +command will fail. We must find a way to make this work as it is very usefull +when debugging multi-threaded programs, + +\item [Backtrace~Stop~convention~(I5)]: The backtrace command on RTEMS task does not +gracefully terminate as GDB does not find some backtrace termination condition +it expects. +\end{description} + +\subsection{\label{Workaround_ref}Workarounds for Open Issues in Prototype} + +\begin{description} +\item [(I1)]: Not implemented.We would rather like to work on the formalization of +per thread flags and global flags that are much more general than any kludge +we could implement, +\item [(I2)]: We have tried two solutions in our prototype. The first one was to use +the \emph{idle} thread context contained in the \emph{Registers} task control +block field. The drawback of this solution was that we had to implement specific +code for the continue operation immediately following the attach command. We +then decided to create a dedicated task that will only exist during the attach +phase. This task will call the ``ENTER\_RGDB'' exception. This call will execute +the Exception Handler that saves a valid context and that notifies a change +to GDB. After the first CONTINUE command from GDB, this task will continue its +execution and delete itself, +\item [(I3)]: As explained above in the synchronization chapter, we choose to serialize +events in a way that makes GDB think the system is frozen, +\item [(I4)]: As a temporary fix, we have called \emph{rtems\_task\_suspend} and used +the context switch contex for tasks that are unknown to RGDBSD, +\item [(I5)]: Not Implemented yet. If I remember correctly, setting the frame pointer +to 0 at task initialization for CISC processor solves this problem (ebp = 0x0 +on Intel or a6 = 0x0 on 680x0). This should be done in rtems\_task\_create function +in the path to really starts the task for the first time. The processor/system +specific stop condition can be found as macros in the GDB source tree. +\end{description} + +\subsection{Output of a Debug Session with the Prototype} + +\begin{lyxcode} +GNU~gdb~4.17~Copyright~1998~Free~Software~Foundation,~Inc.~GDB~is~free~software,~ + +covered~by~the~GNU~General~Public~License,~and~you~are~welcome~to~change~it~and/or~ + +distribute~copies~of~it~under~certain~conditions.~Type~\char`\"{}show~copying\char`\"{}~to~see~the~ + +conditions.~There~is~absolutely~no~warranty~for~GDB.~Type~\char`\"{}show~warranty\char`\"{}~for~ + +details.~This~GDB~was~configured~as~\char`\"{}-{}-host=i686-pc-linux-gnu~-{}-target=i386rtems\char`\"{}. + +Attaching~remote~machine~across~net... + +Connected~to~net-test.~ + +\ + +Now~the~\char`\"{}run\char`\"{}~command~will~start~a~remote~process. + +\ + +Setting~up~the~environment~for~debugging~gdb.~ + +(gdb)~attach~1~ + +Attaching~program:~/build-rtems/pc386/tests/debug.exe~pid~1~ + +0x230715~in~enterRdbg~()~ + +(gdb)~info~threads~ + +There~are~8~threads:~ + +Id.~~~~~~~Name~~~Detached~~~Suspended + +\ + +134283273~Rini~~~No~~~~~~~~~No~<=~current~target~thread~ + +0x230715~in~enterRdbg~()~ + +134283272~Evnt~~~No~~~~~~~~~No~ + +\_Thread\_Dispatch~()~at~/rtems/c/src/exec/score/src/thread.c:315~ + +134283271~SPE2~~~No~~~~~~~~~No~ + +\_Thread\_Dispatch~()~at~/rtems/c/src/exec/score/src/thread.c:315~ + +134283270~SPE1~~~No~~~~~~~~~No~ + +\_Thread\_Handler~~()~at~/rtems/c/src/exec/score/src/thread.c:1107~ + +134283269~RDBG~~~No~~~~~~~~~No~ + +0x230715~in~enterRdbg~()~ + +134283268~SCrx~~~No~~~~~~~~~No~ + +\_Thread\_Dispatch~()~at~/rtems/c/src/exec/score/src/thread.c:315~ + +134283267~SCtx~~~No~~~~~~~~~No~ + +\_Thread\_Dispatch~()~at~/rtems/c/src/exec/score/src/thread.c:315~ + +134283266~ntwk~~~No~~~~~~~~~No~ + +\_Thread\_Dispatch~()~at~/rtems/c/src/exec/score/src/thread.c:315~ + +(gdb)~b~init.c:89~ + +Breakpoint~1~at~0x200180:~file~/rtems/c/src/tests/samples/debug/init.c,~line~89.~ + +(gdb)~c~ + +Continuing.~ + +Thread~134283273~(Rini)~has~been~deleted.~ + +{[}Switching~to~Rtems~thread~134283271~(Not~suspended)~(~<=~current~target~thread~){]} + +\ + +Breakpoint~1,~example2~(argument=4)~at~/rtems/c/src/tests/samples/debug/init.c:89~ + +89~~~~~~~~~~tuto~+=~tuti;~ + +(gdb)~s~ + +90~~~~~~~~~~if~(print\_enable2)~ + +(gdb)~c~ + +Continuing. + +\ + +Breakpoint~1,~example2~(argument=4)~at~/rtems/c/src/tests/samples/debug/init.c:89~ + +89~~~~~~~~~~tuto~+=~tuti;~ + +(gdb)~b~init.c:66~ + +Breakpoint~2~at~0x200128:~file~/rtems/c/src/tests/samples/debug/init.c,~line~66.~ + +(gdb)~c~ + +Continuing.~ + +{[}Switching~to~Rtems~thread~134283270~(Not~suspended)~(~<=~current~target~thread~){]} + +\ + +Breakpoint~2,~example1~(argument=4)~at~/rtems/c/src/tests/samples/debug/init.c:66~ + +66~~~~~~~~~~toto~+=~titi;~ + +(gdb)~c~ + +Continuing.~ + +\ + +{[}Switching~to~Rtems~thread~134283271~(Not~suspended)~(~<=~current~target~thread~){]} + +\ + +Breakpoint~1,~example2~(argument=4)~at~/rtems/c/src/tests/samples/debug/init.c:89~ + +89~~~~~~~~~~tuto~+=~tuti;~ + +(gdb)~bt~ + +\#0~~example2~(argument=4)~ + +~~~~at~/rtems/c/src/tests/samples/debug/init.c:89~ + +\#1~~0xf0009bd0~in~??~()~ + +(gdb)~thread~target~134283270 + +\ + +thread~134283270~{[}SPE1{]},~\_Thread\_Dispatch~()~at~/rtems/c/src/exec/score/src/thread.c:315~ + +315~~~~~~~~~executing~=~\_Thread\_Executing;~ + +(gdb)~c~ + +Continuing. + +\ + +Breakpoint~2,~example1~(argument=4)~at~/rtems/c/src/tests/samples/debug/init.c:66~ + +66~~~~~~~~~~toto~+=~titi;~ + +(gdb)~detach~ + +Detaching~program:~/build-rtems/pc386/tests/debug.exe~pid~1~ + +Warning:~the~next~command~will~be~done~localy!~If~you~want~to~restart~another~remote~ + +program,~reuse~the~target~command~ + +(gdb)~ +\end{lyxcode} + +\section{Conclusion} + +In this document we have presented how we envisage to add remote debugging facilities +to RTEMS by implementing a remote debugger daemon for GDB. As any debug implemented +in software, it will have limitation but we are confident that most of them +can be removed by adding separate software components dedicated to debug activity. +We must keep in mind that even with this approach, no software will enable the +debug of code with interrupt entirely masked at processor level and that In +Circuit Emulator (ICE) or use of BDM extension on the target board are the ultimate +way to really debug any portion of an RTOS. BDM support in GDB is still weak +but people are working on it and we may get something better in a near future. + +\begin{figure} +{\par\centering \resizebox*{!}{0.98\textheight}{\rotatebox{90}{\includegraphics{process.eps}}} \par} + + +\caption{\label{remote debugger tasks and handlers}remote debugger tasks and handlers} +\end{figure} + + +\end{document} diff --git a/doc/rgdb_specs/seg_init.eps b/doc/rgdb_specs/seg_init.eps new file mode 100644 index 0000000000..a517502713 --- /dev/null +++ b/doc/rgdb_specs/seg_init.eps @@ -0,0 +1,204 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: seg_init.eps +%%Creator: fig2dev Version 3.2 Patchlevel 1 +%%CreationDate: Tue Oct 13 13:59:59 1998 +%%For: valette@tri-yann (Eric Valette,,6891,) +%%Orientation: Portrait +%%BoundingBox: 0 0 482 527 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%Magnification: 1.0000 +%%EndComments +/$F2psDict 200 dict def +$F2psDict begin +$F2psDict /mtrx matrix put +/col-1 {0 setgray} bind def +/col0 {0.000 0.000 0.000 srgb} bind def +/col1 {0.000 0.000 1.000 srgb} bind def +/col2 {0.000 1.000 0.000 srgb} bind def +/col3 {0.000 1.000 1.000 srgb} bind def +/col4 {1.000 0.000 0.000 srgb} bind def +/col5 {1.000 0.000 1.000 srgb} bind def +/col6 {1.000 1.000 0.000 srgb} bind def +/col7 {1.000 1.000 1.000 srgb} bind def +/col8 {0.000 0.000 0.560 srgb} bind def +/col9 {0.000 0.000 0.690 srgb} bind def +/col10 {0.000 0.000 0.820 srgb} bind def +/col11 {0.530 0.810 1.000 srgb} bind def +/col12 {0.000 0.560 0.000 srgb} bind def +/col13 {0.000 0.690 0.000 srgb} bind def +/col14 {0.000 0.820 0.000 srgb} bind def +/col15 {0.000 0.560 0.560 srgb} bind def +/col16 {0.000 0.690 0.690 srgb} bind def +/col17 {0.000 0.820 0.820 srgb} bind def +/col18 {0.560 0.000 0.000 srgb} bind def +/col19 {0.690 0.000 0.000 srgb} bind def +/col20 {0.820 0.000 0.000 srgb} bind def +/col21 {0.560 0.000 0.560 srgb} bind def +/col22 {0.690 0.000 0.690 srgb} bind def +/col23 {0.820 0.000 0.820 srgb} bind def +/col24 {0.500 0.190 0.000 srgb} bind def +/col25 {0.630 0.250 0.000 srgb} bind def +/col26 {0.750 0.380 0.000 srgb} bind def +/col27 {1.000 0.500 0.500 srgb} bind def +/col28 {1.000 0.630 0.630 srgb} bind def +/col29 {1.000 0.750 0.750 srgb} bind def +/col30 {1.000 0.880 0.880 srgb} bind def +/col31 {1.000 0.840 0.000 srgb} bind def + +end +save +-56.0 596.0 translate +1 -1 scale + +/cp {closepath} bind def +/ef {eofill} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth} bind def +/tr {translate} bind def +/tnt {dup dup currentrgbcolor + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} + bind def +/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul + 4 -2 roll mul srgb} bind def +/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def +/$F2psEnd {$F2psEnteredState restore end} def +%%EndProlog + +$F2psBegin +10 setmiterlimit +n -1000 10922 m -1000 -1000 l 9958 -1000 l 9958 10922 l cp clip + 0.06000 0.06000 sc +/Times-Roman ff 300.00 scf sf +1200 1680 m +gs 1 -1 sc (INDEPENDENT) col0 sh gr +/Times-Roman ff 300.00 scf sf +1500 1350 m +gs 1 -1 sc (TARGET) col0 sh gr +/Times-Roman ff 300.00 scf sf +1650 2025 m +gs 1 -1 sc (PART) col0 sh gr +/Times-Roman ff 300.00 scf sf +7125 1350 m +gs 1 -1 sc (TARGET) col0 sh gr +/Times-Roman ff 300.00 scf sf +7275 1950 m +gs 1 -1 sc (PART) col0 sh gr +/Times-Roman ff 300.00 scf sf +6750 1650 m +gs 1 -1 sc (DEPENDENT) col0 sh gr +% Polyline +7.500 slw +gs clippath +5861 3927 m 6000 3975 l 5853 3987 l 6011 4007 l 6019 3947 l cp +clip +n 3600 3675 m 6000 3975 l gs col0 s gr gr + +% arrowhead +n 5861 3927 m 6000 3975 l 5853 3987 l 5881 3960 l 5861 3927 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +3745 4380 m 3598 4368 l 3737 4320 l 3579 4340 l 3587 4400 l cp +clip +n 5998 4068 m 3598 4368 l gs col0 s gr gr + +% arrowhead +n 3745 4380 m 3598 4368 l 3737 4320 l 3717 4353 l 3745 4380 l cp gs 0.00 setgray ef gr col0 s +/Times-Roman ff 300.00 scf sf +2550 3750 m +gs 1 -1 sc (Open connection) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman ff 300.00 scf sf +7125 4050 m +gs 1 -1 sc (Accept connection) dup sw pop 2 div neg 0 rm col0 sh gr +% Polyline +15.000 slw +n 3600 2400 m 3600 9825 l gs col0 s gr +% Polyline +n 6000 2400 m 6000 9900 l gs col0 s gr +% Polyline +30.000 slw +n 975 5100 m 8925 5100 l gs col0 s gr +% Polyline +7.500 slw +gs clippath +5861 7002 m 6000 7050 l 5853 7062 l 6011 7082 l 6019 7022 l cp +clip +n 3600 6750 m 6000 7050 l gs col0 s gr gr + +% arrowhead +n 5861 7002 m 6000 7050 l 5853 7062 l 5881 7035 l 5861 7002 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +5865 8399 m 6004 8447 l 5857 8459 l 6015 8479 l 6023 8419 l cp +clip +n 3604 8147 m 6004 8447 l gs col0 s gr gr + +% arrowhead +n 5865 8399 m 6004 8447 l 5857 8459 l 5885 8432 l 5865 8399 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +3746 8815 m 3599 8803 l 3738 8755 l 3580 8775 l 3588 8835 l cp +clip +n 5999 8503 m 3599 8803 l gs col0 s gr gr + +% arrowhead +n 3746 8815 m 3599 8803 l 3738 8755 l 3718 8788 l 3746 8815 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +3748 7709 m 3601 7697 l 3740 7649 l 3582 7669 l 3590 7729 l cp +clip +n 6001 7397 m 3601 7697 l gs col0 s gr gr + +% arrowhead +n 3748 7709 m 3601 7697 l 3740 7649 l 3720 7682 l 3748 7709 l cp gs 0.00 setgray ef gr col0 s +/Times-Bold ff 300.00 scf sf +4800 2850 m +gs 1 -1 sc (Connect on target) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Bold ff 300.00 scf sf +4800 5850 m +gs 1 -1 sc (Attach a process) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman ff 300.00 scf sf +3525 6825 m +gs 1 -1 sc (Attach a process) dup sw pop neg 0 rm col0 sh gr +/Times-Roman ff 300.00 scf sf +6150 7125 m +gs 1 -1 sc (Stop the process) col0 sh gr +/Times-Roman ff 300.00 scf sf +6150 7500 m +gs 1 -1 sc (Notify a child change) col0 sh gr +/Times-Roman ff 300.00 scf sf +6150 8550 m +gs 1 -1 sc (Give information) col0 sh gr +/Times-Roman ff 300.00 scf sf +3150 8850 m +gs 1 -1 sc (...) dup sw pop neg 0 rm col0 sh gr +/Times-Roman ff 300.00 scf sf +3525 8250 m +gs 1 -1 sc (Ask information) dup sw pop neg 0 rm col0 sh gr +/Times-Roman ff 300.00 scf sf +4800 2025 m +gs 1 -1 sc (messages exchange) dup sw pop 2 div neg 0 rm col0 sh gr +$F2psEnd +rs diff --git a/doc/rgdb_specs/seq_break.eps b/doc/rgdb_specs/seq_break.eps new file mode 100644 index 0000000000..ef3cdb69cc --- /dev/null +++ b/doc/rgdb_specs/seq_break.eps @@ -0,0 +1,311 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: seq_break.eps +%%Creator: fig2dev Version 3.2 Patchlevel 1 +%%CreationDate: Tue Oct 13 14:00:22 1998 +%%For: valette@tri-yann (Eric Valette,,6891,) +%%Orientation: Portrait +%%BoundingBox: 0 0 522 1067 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%Magnification: 1.0000 +%%EndComments +/$F2psDict 200 dict def +$F2psDict begin +$F2psDict /mtrx matrix put +/col-1 {0 setgray} bind def +/col0 {0.000 0.000 0.000 srgb} bind def +/col1 {0.000 0.000 1.000 srgb} bind def +/col2 {0.000 1.000 0.000 srgb} bind def +/col3 {0.000 1.000 1.000 srgb} bind def +/col4 {1.000 0.000 0.000 srgb} bind def +/col5 {1.000 0.000 1.000 srgb} bind def +/col6 {1.000 1.000 0.000 srgb} bind def +/col7 {1.000 1.000 1.000 srgb} bind def +/col8 {0.000 0.000 0.560 srgb} bind def +/col9 {0.000 0.000 0.690 srgb} bind def +/col10 {0.000 0.000 0.820 srgb} bind def +/col11 {0.530 0.810 1.000 srgb} bind def +/col12 {0.000 0.560 0.000 srgb} bind def +/col13 {0.000 0.690 0.000 srgb} bind def +/col14 {0.000 0.820 0.000 srgb} bind def +/col15 {0.000 0.560 0.560 srgb} bind def +/col16 {0.000 0.690 0.690 srgb} bind def +/col17 {0.000 0.820 0.820 srgb} bind def +/col18 {0.560 0.000 0.000 srgb} bind def +/col19 {0.690 0.000 0.000 srgb} bind def +/col20 {0.820 0.000 0.000 srgb} bind def +/col21 {0.560 0.000 0.560 srgb} bind def +/col22 {0.690 0.000 0.690 srgb} bind def +/col23 {0.820 0.000 0.820 srgb} bind def +/col24 {0.500 0.190 0.000 srgb} bind def +/col25 {0.630 0.250 0.000 srgb} bind def +/col26 {0.750 0.380 0.000 srgb} bind def +/col27 {1.000 0.500 0.500 srgb} bind def +/col28 {1.000 0.630 0.630 srgb} bind def +/col29 {1.000 0.750 0.750 srgb} bind def +/col30 {1.000 0.880 0.880 srgb} bind def +/col31 {1.000 0.840 0.000 srgb} bind def + +end +save +-40.0 1136.0 translate +1 -1 scale + +/cp {closepath} bind def +/ef {eofill} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth} bind def +/tr {translate} bind def +/tnt {dup dup currentrgbcolor + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} + bind def +/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul + 4 -2 roll mul srgb} bind def +/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def +/$F2psEnd {$F2psEnteredState restore end} def +%%EndProlog + +$F2psBegin +10 setmiterlimit +n -1000 19922 m -1000 -1000 l 10365 -1000 l 10365 19922 l cp clip + 0.06000 0.06000 sc +/Times-Roman ff 300.00 scf sf +7050 1350 m +gs 1 -1 sc (TARGET) col0 sh gr +/Times-Roman ff 300.00 scf sf +6825 1650 m +gs 1 -1 sc (DEPENDENT) col0 sh gr +/Times-Roman ff 300.00 scf sf +7275 1950 m +gs 1 -1 sc (PART) col0 sh gr +/Times-Roman ff 300.00 scf sf +975 1725 m +gs 1 -1 sc (INDEPENDENT) col0 sh gr +/Times-Roman ff 300.00 scf sf +1500 2025 m +gs 1 -1 sc (PART) col0 sh gr +/Times-Roman ff 300.00 scf sf +1350 1425 m +gs 1 -1 sc (TARGET) col0 sh gr +% Polyline +15.000 slw +n 6000 2400 m 6000 18900 l gs col0 s gr +% Polyline +n 3600 2400 m 3600 18900 l gs col0 s gr +% Polyline +7.500 slw +gs clippath +5857 14614 m 5996 14662 l 5849 14674 l 6007 14694 l 6015 14634 l cp +clip +n 3596 14362 m 5996 14662 l gs col0 s gr gr + +% arrowhead +n 5857 14614 m 5996 14662 l 5849 14674 l 5877 14647 l 5857 14614 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +5855 16198 m 5994 16246 l 5847 16258 l 6005 16278 l 6013 16218 l cp +clip +n 3594 15946 m 5994 16246 l gs col0 s gr gr + +% arrowhead +n 5855 16198 m 5994 16246 l 5847 16258 l 5875 16231 l 5855 16198 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +5853 16742 m 5992 16790 l 5845 16802 l 6003 16822 l 6011 16762 l cp +clip +n 3592 16490 m 5992 16790 l gs col0 s gr gr + +% arrowhead +n 5853 16742 m 5992 16790 l 5845 16802 l 5873 16775 l 5853 16742 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +5857 10639 m 5996 10687 l 5849 10699 l 6007 10719 l 6015 10659 l cp +clip +n 3596 10387 m 5996 10687 l gs col0 s gr gr + +% arrowhead +n 5857 10639 m 5996 10687 l 5849 10699 l 5877 10672 l 5857 10639 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +5867 11156 m 6006 11204 l 5859 11216 l 6017 11236 l 6025 11176 l cp +clip +n 3606 10904 m 6006 11204 l gs col0 s gr gr + +% arrowhead +n 5867 11156 m 6006 11204 l 5859 11216 l 5887 11189 l 5867 11156 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +3746 11590 m 3599 11578 l 3738 11530 l 3580 11550 l 3588 11610 l cp +clip +n 5999 11278 m 3599 11578 l gs col0 s gr gr + +% arrowhead +n 3746 11590 m 3599 11578 l 3738 11530 l 3718 11563 l 3746 11590 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +5855 7873 m 5994 7921 l 5847 7933 l 6005 7953 l 6013 7893 l cp +clip +n 3594 7621 m 5994 7921 l gs col0 s gr gr + +% arrowhead +n 5855 7873 m 5994 7921 l 5847 7933 l 5875 7906 l 5855 7873 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +5853 8417 m 5992 8465 l 5845 8477 l 6003 8497 l 6011 8437 l cp +clip +n 3592 8165 m 5992 8465 l gs col0 s gr gr + +% arrowhead +n 5853 8417 m 5992 8465 l 5845 8477 l 5873 8450 l 5853 8417 l cp gs 0.00 setgray ef gr col0 s +% Polyline +30.000 slw +n 750 5625 m 9150 5625 l gs col0 s gr +% Polyline +n 825 12525 m 9225 12525 l gs col0 s gr +% Polyline +7.500 slw +gs clippath +5860 4386 m 5999 4434 l 5852 4446 l 6010 4466 l 6018 4406 l cp +clip +n 3599 4134 m 5999 4434 l gs col0 s gr gr + +% arrowhead +n 5860 4386 m 5999 4434 l 5852 4446 l 5880 4419 l 5860 4386 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +3743 4813 m 3596 4801 l 3735 4753 l 3577 4773 l 3585 4833 l cp +clip +n 5996 4501 m 3596 4801 l gs col0 s gr gr + +% arrowhead +n 3743 4813 m 3596 4801 l 3735 4753 l 3715 4786 l 3743 4813 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +3741 9894 m 3594 9882 l 3733 9834 l 3575 9854 l 3583 9914 l cp +clip +n 5994 9582 m 3594 9882 l gs col0 s gr gr + +% arrowhead +n 3741 9894 m 3594 9882 l 3733 9834 l 3713 9867 l 3741 9894 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +3741 15519 m 3594 15507 l 3733 15459 l 3575 15479 l 3583 15539 l cp +clip +n 5994 15207 m 3594 15507 l gs col0 s gr gr + +% arrowhead +n 3741 15519 m 3594 15507 l 3733 15459 l 3713 15492 l 3741 15519 l cp gs 0.00 setgray ef gr col0 s +/Times-Roman ff 300.00 scf sf +3525 14775 m +gs 1 -1 sc (Wait for event...) dup sw pop neg 0 rm col0 sh gr +/Times-Roman ff 300.00 scf sf +6075 15300 m +gs 1 -1 sc (Notify a child change) col0 sh gr +/Times-Roman ff 300.00 scf sf +8475 15600 m +gs 1 -1 sc (Wait for command ...) dup sw pop neg 0 rm col0 sh gr +/Times-Roman ff 300.00 scf sf +6075 15000 m +gs 1 -1 sc (Debug Exception handler) col0 sh gr +/Times-Roman ff 300.00 scf sf +3450 16950 m +gs 1 -1 sc (Wait for event...) dup sw pop neg 0 rm col0 sh gr +/Times-Bold ff 300.00 scf sf +3150 6525 m +gs 1 -1 sc (Continue process : first time) col0 sh gr +/Times-Bold ff 300.00 scf sf +5700 2925 m +gs 1 -1 sc (Set Breakpoint) dup sw pop neg 0 rm col0 sh gr +/Times-Bold ff 300.00 scf sf +2925 13425 m +gs 1 -1 sc (Continue process : next times) col0 sh gr +/Times-Roman ff 300.00 scf sf +6150 9675 m +gs 1 -1 sc (Notify a child change) col0 sh gr +/Times-Roman ff 300.00 scf sf +8550 9975 m +gs 1 -1 sc (Wait for command ...) dup sw pop neg 0 rm col0 sh gr +/Times-Roman ff 300.00 scf sf +3525 11025 m +gs 1 -1 sc (Ask information) dup sw pop neg 0 rm col0 sh gr +/Times-Roman ff 300.00 scf sf +6150 11325 m +gs 1 -1 sc (Give information) col0 sh gr +/Times-Roman ff 300.00 scf sf +3450 11625 m +gs 1 -1 sc (...) dup sw pop neg 0 rm col0 sh gr +/Times-Roman ff 300.00 scf sf +3450 8250 m +gs 1 -1 sc (Resume process) dup sw pop neg 0 rm col0 sh gr +/Times-Roman ff 300.00 scf sf +3450 8625 m +gs 1 -1 sc (Wait for event...) dup sw pop neg 0 rm col0 sh gr +/Times-Roman ff 300.00 scf sf +2250 10650 m +gs 1 -1 sc (at address) col0 sh gr +/Times-Roman ff 300.00 scf sf +6150 9375 m +gs 1 -1 sc (Breakpoint Except. handler) col0 sh gr +/Times-Roman ff 300.00 scf sf +4800 1650 m +gs 1 -1 sc (message exchange) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman ff 300.00 scf sf +3450 4800 m +gs 1 -1 sc (...) dup sw pop neg 0 rm col0 sh gr +/Times-Roman ff 300.00 scf sf +3450 4200 m +gs 1 -1 sc (Ask opcode at address) dup sw pop neg 0 rm col0 sh gr +/Times-Roman ff 300.00 scf sf +6150 4575 m +gs 1 -1 sc (Send opcode ) col0 sh gr +/Times-Roman ff 300.00 scf sf +675 7650 m +gs 1 -1 sc (Write "DEBUG" opcode) col0 sh gr +/Times-Roman ff 300.00 scf sf +8025 9075 m +gs 1 -1 sc (DEBUG opcode) dup sw pop neg 0 rm col0 sh gr +/Times-Roman ff 300.00 scf sf +900 10425 m +gs 1 -1 sc (Write previous opcode) col0 sh gr +/Times-Roman ff 300.00 scf sf +2400 7875 m +gs 1 -1 sc (at address) col0 sh gr +/Times-Roman ff 300.00 scf sf +750 15900 m +gs 1 -1 sc (Write "DEBUG" opcode) col0 sh gr +/Times-Roman ff 300.00 scf sf +2400 16125 m +gs 1 -1 sc (at address) col0 sh gr +/Times-Roman ff 300.00 scf sf +3450 14475 m +gs 1 -1 sc (Single Step command) dup sw pop neg 0 rm col0 sh gr +/Times-Roman ff 300.00 scf sf +3450 16575 m +gs 1 -1 sc (Continue command) dup sw pop neg 0 rm col0 sh gr +/Times-Roman ff 300.00 scf sf +6150 16950 m +gs 1 -1 sc (Resume process) col0 sh gr +$F2psEnd +rs diff --git a/doc/rgdb_specs/seq_detach.eps b/doc/rgdb_specs/seq_detach.eps new file mode 100644 index 0000000000..2a143977da --- /dev/null +++ b/doc/rgdb_specs/seq_detach.eps @@ -0,0 +1,167 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: seq_detach.eps +%%Creator: fig2dev Version 3.2 Patchlevel 1 +%%CreationDate: Tue Oct 13 14:00:31 1998 +%%For: valette@tri-yann (Eric Valette,,6891,) +%%Orientation: Portrait +%%BoundingBox: 0 0 427 293 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%Magnification: 1.0000 +%%EndComments +/$F2psDict 200 dict def +$F2psDict begin +$F2psDict /mtrx matrix put +/col-1 {0 setgray} bind def +/col0 {0.000 0.000 0.000 srgb} bind def +/col1 {0.000 0.000 1.000 srgb} bind def +/col2 {0.000 1.000 0.000 srgb} bind def +/col3 {0.000 1.000 1.000 srgb} bind def +/col4 {1.000 0.000 0.000 srgb} bind def +/col5 {1.000 0.000 1.000 srgb} bind def +/col6 {1.000 1.000 0.000 srgb} bind def +/col7 {1.000 1.000 1.000 srgb} bind def +/col8 {0.000 0.000 0.560 srgb} bind def +/col9 {0.000 0.000 0.690 srgb} bind def +/col10 {0.000 0.000 0.820 srgb} bind def +/col11 {0.530 0.810 1.000 srgb} bind def +/col12 {0.000 0.560 0.000 srgb} bind def +/col13 {0.000 0.690 0.000 srgb} bind def +/col14 {0.000 0.820 0.000 srgb} bind def +/col15 {0.000 0.560 0.560 srgb} bind def +/col16 {0.000 0.690 0.690 srgb} bind def +/col17 {0.000 0.820 0.820 srgb} bind def +/col18 {0.560 0.000 0.000 srgb} bind def +/col19 {0.690 0.000 0.000 srgb} bind def +/col20 {0.820 0.000 0.000 srgb} bind def +/col21 {0.560 0.000 0.560 srgb} bind def +/col22 {0.690 0.000 0.690 srgb} bind def +/col23 {0.820 0.000 0.820 srgb} bind def +/col24 {0.500 0.190 0.000 srgb} bind def +/col25 {0.630 0.250 0.000 srgb} bind def +/col26 {0.750 0.380 0.000 srgb} bind def +/col27 {1.000 0.500 0.500 srgb} bind def +/col28 {1.000 0.630 0.630 srgb} bind def +/col29 {1.000 0.750 0.750 srgb} bind def +/col30 {1.000 0.880 0.880 srgb} bind def +/col31 {1.000 0.840 0.000 srgb} bind def + +end +save +-72.0 362.0 translate +1 -1 scale + +/cp {closepath} bind def +/ef {eofill} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth} bind def +/tr {translate} bind def +/tnt {dup dup currentrgbcolor + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} + bind def +/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul + 4 -2 roll mul srgb} bind def +/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def +/$F2psEnd {$F2psEnteredState restore end} def +%%EndProlog + +$F2psBegin +10 setmiterlimit +n -1000 7022 m -1000 -1000 l 9307 -1000 l 9307 7022 l cp clip + 0.06000 0.06000 sc +/Times-Roman ff 300.00 scf sf +1200 1680 m +gs 1 -1 sc (INDEPENDENT) col0 sh gr +/Times-Roman ff 300.00 scf sf +1800 1950 m +gs 1 -1 sc (PART) col0 sh gr +/Times-Roman ff 300.00 scf sf +1575 1425 m +gs 1 -1 sc (TARGET) col0 sh gr +/Times-Roman ff 300.00 scf sf +6450 1680 m +gs 1 -1 sc (DEPENDENT) col0 sh gr +/Times-Roman ff 300.00 scf sf +6675 1350 m +gs 1 -1 sc (TARGET) col0 sh gr +/Times-Roman ff 300.00 scf sf +6900 1950 m +gs 1 -1 sc (PART) col0 sh gr +% Polyline +15.000 slw +n 3600 2400 m 3600 6000 l gs col0 s gr +% Polyline +n 6000 2400 m 6000 6000 l gs col0 s gr +% Polyline +7.500 slw +gs clippath +5861 3927 m 6000 3975 l 5853 3987 l 6011 4007 l 6019 3947 l cp +clip +n 3600 3675 m 6000 3975 l gs col0 s gr gr + +% arrowhead +n 5861 3927 m 6000 3975 l 5853 3987 l 5881 3960 l 5861 3927 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +5861 5427 m 6000 5475 l 5853 5487 l 6011 5507 l 6019 5447 l cp +clip +n 3600 5175 m 6000 5475 l gs col0 s gr gr + +% arrowhead +n 5861 5427 m 6000 5475 l 5853 5487 l 5881 5460 l 5861 5427 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +3747 4643 m 3600 4631 l 3739 4583 l 3581 4603 l 3589 4663 l cp +clip +n 6000 4331 m 3600 4631 l gs col0 s gr gr + +% arrowhead +n 3747 4643 m 3600 4631 l 3739 4583 l 3719 4616 l 3747 4643 l cp gs 0.00 setgray ef gr col0 s +/Times-Bold ff 300.00 scf sf +4800 2700 m +gs 1 -1 sc (Detach a process) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman ff 300.00 scf sf +2550 3750 m +gs 1 -1 sc (Detach a process) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman ff 300.00 scf sf +7200 4050 m +gs 1 -1 sc (Detach the process) dup sw pop 2 div neg 0 rm col0 sh gr +/Times-Roman ff 300.00 scf sf +6150 4425 m +gs 1 -1 sc (Notify detach) col0 sh gr +/Times-Roman ff 300.00 scf sf +6150 4800 m +gs 1 -1 sc (Resume process) col0 sh gr +/Times-Roman ff 300.00 scf sf +3450 5250 m +gs 1 -1 sc (Close connection) dup sw pop neg 0 rm col0 sh gr +/Times-Roman ff 300.00 scf sf +8100 5625 m +gs 1 -1 sc (Close connection) dup sw pop neg 0 rm col0 sh gr +/Times-Roman ff 300.00 scf sf +4800 1650 m +gs 1 -1 sc (messages exchange) dup sw pop 2 div neg 0 rm col0 sh gr +$F2psEnd +rs -- cgit v1.2.3