ia64/xen-unstable

changeset 3762:0a4b76b6b5a0

bitkeeper revision 1.1161 (420b5ed6DpcotfvpA5TTxShadFd_MQ)

Merge with non-ancient version of Xen.
author sos22@douglas.cl.cam.ac.uk
date Thu Feb 10 13:17:10 2005 +0000 (2005-02-10)
parents 777ddc539761 118e0a3af9b0
children 415d774d6ee7
files .hgtags .rootkeys BitKeeper/etc/ignore BitKeeper/etc/logging_ok COPYING Makefile README README.CD TODO buildconfigs/Rules.mk buildconfigs/mk.linux-2.4-xen0 buildconfigs/mk.linux-2.4-xenU buildconfigs/mk.linux-2.6-xen0 buildconfigs/mk.linux-2.6-xenU buildconfigs/mk.netbsd-2.0-xenU docs/HOWTOs/Console-HOWTO docs/HOWTOs/Sched-HOWTO docs/HOWTOs/VBD-HOWTO docs/HOWTOs/Xen-HOWTO docs/HOWTOs/XenDebugger-HOWTO docs/Makefile docs/check_pkgs docs/eps/xenlogo.eps docs/figs/dummy docs/figs/xenlogo.eps docs/html.sty docs/interface.tex docs/misc/VMX_changes.txt docs/misc/XenDebugger-HOWTO docs/misc/blkif-drivers-explained.txt docs/misc/xen_config.html docs/misc/xend.tex docs/src/interface.tex docs/src/user.tex docs/style.tex docs/user.tex docs/xen_config.html docs/xenstyle.cls extras/mini-os/Makefile extras/mini-os/h/events.h extras/mini-os/h/hypervisor.h extras/mini-os/h/os.h install.sh linux-2.4.26-xen-sparse/Makefile linux-2.4.26-xen-sparse/arch/xen/Makefile linux-2.4.26-xen-sparse/arch/xen/boot/Makefile linux-2.4.26-xen-sparse/arch/xen/config.in linux-2.4.26-xen-sparse/arch/xen/defconfig-xen0 linux-2.4.26-xen-sparse/arch/xen/defconfig-xenU linux-2.4.26-xen-sparse/arch/xen/drivers/balloon/Makefile linux-2.4.26-xen-sparse/arch/xen/drivers/balloon/balloon.c linux-2.4.26-xen-sparse/arch/xen/drivers/blkif/Makefile linux-2.4.26-xen-sparse/arch/xen/drivers/blkif/backend/Makefile linux-2.4.26-xen-sparse/arch/xen/drivers/blkif/frontend/Makefile linux-2.4.26-xen-sparse/arch/xen/drivers/blkif/frontend/common.h linux-2.4.26-xen-sparse/arch/xen/drivers/blkif/frontend/main.c linux-2.4.26-xen-sparse/arch/xen/drivers/blkif/frontend/vbd.c linux-2.4.26-xen-sparse/arch/xen/drivers/console/Makefile linux-2.4.26-xen-sparse/arch/xen/drivers/dom0/Makefile linux-2.4.26-xen-sparse/arch/xen/drivers/evtchn/Makefile linux-2.4.26-xen-sparse/arch/xen/drivers/netif/Makefile linux-2.4.26-xen-sparse/arch/xen/drivers/netif/backend/Makefile linux-2.4.26-xen-sparse/arch/xen/drivers/netif/frontend/Makefile linux-2.4.26-xen-sparse/arch/xen/kernel/Makefile linux-2.4.26-xen-sparse/arch/xen/kernel/entry.S linux-2.4.26-xen-sparse/arch/xen/kernel/head.S linux-2.4.26-xen-sparse/arch/xen/kernel/i386_ksyms.c linux-2.4.26-xen-sparse/arch/xen/kernel/irq.c linux-2.4.26-xen-sparse/arch/xen/kernel/ldt.c linux-2.4.26-xen-sparse/arch/xen/kernel/pci-pc.c linux-2.4.26-xen-sparse/arch/xen/kernel/process.c linux-2.4.26-xen-sparse/arch/xen/kernel/setup.c linux-2.4.26-xen-sparse/arch/xen/kernel/signal.c linux-2.4.26-xen-sparse/arch/xen/kernel/time.c linux-2.4.26-xen-sparse/arch/xen/kernel/traps.c linux-2.4.26-xen-sparse/arch/xen/lib/Makefile linux-2.4.26-xen-sparse/arch/xen/lib/delay.c linux-2.4.26-xen-sparse/arch/xen/mm/Makefile linux-2.4.26-xen-sparse/arch/xen/mm/fault.c linux-2.4.26-xen-sparse/arch/xen/mm/init.c linux-2.4.26-xen-sparse/arch/xen/mm/ioremap.c linux-2.4.26-xen-sparse/arch/xen/vmlinux.lds linux-2.4.26-xen-sparse/drivers/block/ll_rw_blk.c linux-2.4.26-xen-sparse/drivers/char/Makefile linux-2.4.26-xen-sparse/drivers/char/mem.c linux-2.4.26-xen-sparse/drivers/char/tty_io.c linux-2.4.26-xen-sparse/drivers/scsi/aic7xxx/Makefile linux-2.4.26-xen-sparse/fs/exec.c linux-2.4.26-xen-sparse/include/asm-xen/bugs.h linux-2.4.26-xen-sparse/include/asm-xen/desc.h linux-2.4.26-xen-sparse/include/asm-xen/fixmap.h linux-2.4.26-xen-sparse/include/asm-xen/highmem.h linux-2.4.26-xen-sparse/include/asm-xen/hw_irq.h linux-2.4.26-xen-sparse/include/asm-xen/io.h linux-2.4.26-xen-sparse/include/asm-xen/irq.h linux-2.4.26-xen-sparse/include/asm-xen/keyboard.h linux-2.4.26-xen-sparse/include/asm-xen/mmu_context.h linux-2.4.26-xen-sparse/include/asm-xen/module.h linux-2.4.26-xen-sparse/include/asm-xen/msr.h linux-2.4.26-xen-sparse/include/asm-xen/page.h linux-2.4.26-xen-sparse/include/asm-xen/pci.h linux-2.4.26-xen-sparse/include/asm-xen/pgalloc.h linux-2.4.26-xen-sparse/include/asm-xen/pgtable-2level.h linux-2.4.26-xen-sparse/include/asm-xen/pgtable.h linux-2.4.26-xen-sparse/include/asm-xen/processor.h linux-2.4.26-xen-sparse/include/asm-xen/ptrace.h linux-2.4.26-xen-sparse/include/asm-xen/segment.h linux-2.4.26-xen-sparse/include/asm-xen/smp.h linux-2.4.26-xen-sparse/include/asm-xen/synch_bitops.h linux-2.4.26-xen-sparse/include/asm-xen/system.h linux-2.4.26-xen-sparse/include/asm-xen/vga.h linux-2.4.26-xen-sparse/include/asm-xen/xor.h linux-2.4.26-xen-sparse/include/linux/blk.h linux-2.4.26-xen-sparse/include/linux/sched.h linux-2.4.26-xen-sparse/include/linux/skbuff.h linux-2.4.26-xen-sparse/include/linux/timer.h linux-2.4.26-xen-sparse/kernel/time.c linux-2.4.26-xen-sparse/kernel/timer.c linux-2.4.26-xen-sparse/mkbuildtree linux-2.4.26-xen-sparse/mm/highmem.c linux-2.4.26-xen-sparse/mm/memory.c linux-2.4.26-xen-sparse/mm/mprotect.c linux-2.4.26-xen-sparse/mm/mremap.c linux-2.4.26-xen-sparse/mm/page_alloc.c linux-2.4.26-xen-sparse/mm/swapfile.c linux-2.4.29-xen-sparse/Makefile linux-2.4.29-xen-sparse/arch/xen/Makefile linux-2.4.29-xen-sparse/arch/xen/boot/Makefile linux-2.4.29-xen-sparse/arch/xen/config.in linux-2.4.29-xen-sparse/arch/xen/defconfig-xen0 linux-2.4.29-xen-sparse/arch/xen/defconfig-xenU linux-2.4.29-xen-sparse/arch/xen/drivers/balloon/Makefile linux-2.4.29-xen-sparse/arch/xen/drivers/blkif/Makefile linux-2.4.29-xen-sparse/arch/xen/drivers/blkif/backend/Makefile linux-2.4.29-xen-sparse/arch/xen/drivers/blkif/frontend/Makefile linux-2.4.29-xen-sparse/arch/xen/drivers/blkif/frontend/common.h linux-2.4.29-xen-sparse/arch/xen/drivers/blkif/frontend/vbd.c linux-2.4.29-xen-sparse/arch/xen/drivers/console/Makefile linux-2.4.29-xen-sparse/arch/xen/drivers/dom0/Makefile linux-2.4.29-xen-sparse/arch/xen/drivers/evtchn/Makefile linux-2.4.29-xen-sparse/arch/xen/drivers/netif/Makefile linux-2.4.29-xen-sparse/arch/xen/drivers/netif/backend/Makefile linux-2.4.29-xen-sparse/arch/xen/drivers/netif/frontend/Makefile linux-2.4.29-xen-sparse/arch/xen/drivers/usbif/Makefile linux-2.4.29-xen-sparse/arch/xen/drivers/usbif/backend/Makefile linux-2.4.29-xen-sparse/arch/xen/drivers/usbif/frontend/Makefile linux-2.4.29-xen-sparse/arch/xen/kernel/Makefile linux-2.4.29-xen-sparse/arch/xen/kernel/entry.S linux-2.4.29-xen-sparse/arch/xen/kernel/head.S linux-2.4.29-xen-sparse/arch/xen/kernel/i386_ksyms.c linux-2.4.29-xen-sparse/arch/xen/kernel/irq.c linux-2.4.29-xen-sparse/arch/xen/kernel/ldt.c linux-2.4.29-xen-sparse/arch/xen/kernel/pci-pc.c linux-2.4.29-xen-sparse/arch/xen/kernel/process.c linux-2.4.29-xen-sparse/arch/xen/kernel/setup.c linux-2.4.29-xen-sparse/arch/xen/kernel/signal.c linux-2.4.29-xen-sparse/arch/xen/kernel/time.c linux-2.4.29-xen-sparse/arch/xen/kernel/traps.c linux-2.4.29-xen-sparse/arch/xen/lib/Makefile linux-2.4.29-xen-sparse/arch/xen/lib/delay.c linux-2.4.29-xen-sparse/arch/xen/mm/Makefile linux-2.4.29-xen-sparse/arch/xen/mm/fault.c linux-2.4.29-xen-sparse/arch/xen/mm/init.c linux-2.4.29-xen-sparse/arch/xen/mm/ioremap.c linux-2.4.29-xen-sparse/arch/xen/vmlinux.lds linux-2.4.29-xen-sparse/drivers/block/ll_rw_blk.c linux-2.4.29-xen-sparse/drivers/char/Makefile linux-2.4.29-xen-sparse/drivers/char/mem.c linux-2.4.29-xen-sparse/drivers/char/tty_io.c linux-2.4.29-xen-sparse/drivers/scsi/aic7xxx/Makefile linux-2.4.29-xen-sparse/drivers/usb/hcd.c linux-2.4.29-xen-sparse/fs/exec.c linux-2.4.29-xen-sparse/include/asm-xen/bugs.h linux-2.4.29-xen-sparse/include/asm-xen/desc.h linux-2.4.29-xen-sparse/include/asm-xen/fixmap.h linux-2.4.29-xen-sparse/include/asm-xen/highmem.h linux-2.4.29-xen-sparse/include/asm-xen/hw_irq.h linux-2.4.29-xen-sparse/include/asm-xen/io.h linux-2.4.29-xen-sparse/include/asm-xen/irq.h linux-2.4.29-xen-sparse/include/asm-xen/keyboard.h linux-2.4.29-xen-sparse/include/asm-xen/mmu_context.h linux-2.4.29-xen-sparse/include/asm-xen/module.h linux-2.4.29-xen-sparse/include/asm-xen/page.h linux-2.4.29-xen-sparse/include/asm-xen/pci.h linux-2.4.29-xen-sparse/include/asm-xen/pgalloc.h linux-2.4.29-xen-sparse/include/asm-xen/pgtable-2level.h linux-2.4.29-xen-sparse/include/asm-xen/pgtable.h linux-2.4.29-xen-sparse/include/asm-xen/processor.h linux-2.4.29-xen-sparse/include/asm-xen/queues.h linux-2.4.29-xen-sparse/include/asm-xen/segment.h linux-2.4.29-xen-sparse/include/asm-xen/smp.h linux-2.4.29-xen-sparse/include/asm-xen/synch_bitops.h linux-2.4.29-xen-sparse/include/asm-xen/system.h linux-2.4.29-xen-sparse/include/asm-xen/vga.h linux-2.4.29-xen-sparse/include/asm-xen/xor.h linux-2.4.29-xen-sparse/include/linux/blk.h linux-2.4.29-xen-sparse/include/linux/irq.h linux-2.4.29-xen-sparse/include/linux/mm.h linux-2.4.29-xen-sparse/include/linux/sched.h linux-2.4.29-xen-sparse/include/linux/skbuff.h linux-2.4.29-xen-sparse/include/linux/timer.h linux-2.4.29-xen-sparse/kernel/time.c linux-2.4.29-xen-sparse/kernel/timer.c linux-2.4.29-xen-sparse/mkbuildtree linux-2.4.29-xen-sparse/mm/highmem.c linux-2.4.29-xen-sparse/mm/memory.c linux-2.4.29-xen-sparse/mm/mprotect.c linux-2.4.29-xen-sparse/mm/mremap.c linux-2.4.29-xen-sparse/mm/page_alloc.c linux-2.4.29-xen-sparse/mm/swapfile.c linux-2.4.29-xen-sparse/mm/vmalloc.c linux-2.4.29-xen-sparse/net/core/skbuff.c linux-2.6.10-xen-sparse/arch/xen/Kconfig linux-2.6.10-xen-sparse/arch/xen/Kconfig.drivers linux-2.6.10-xen-sparse/arch/xen/Makefile linux-2.6.10-xen-sparse/arch/xen/boot/Makefile linux-2.6.10-xen-sparse/arch/xen/configs/xen0_defconfig linux-2.6.10-xen-sparse/arch/xen/configs/xenU_defconfig linux-2.6.10-xen-sparse/arch/xen/i386/Kconfig linux-2.6.10-xen-sparse/arch/xen/i386/Makefile linux-2.6.10-xen-sparse/arch/xen/i386/kernel/Makefile linux-2.6.10-xen-sparse/arch/xen/i386/kernel/cpu/Makefile linux-2.6.10-xen-sparse/arch/xen/i386/kernel/cpu/common.c linux-2.6.10-xen-sparse/arch/xen/i386/kernel/cpu/mtrr/Makefile linux-2.6.10-xen-sparse/arch/xen/i386/kernel/cpu/mtrr/main.c linux-2.6.10-xen-sparse/arch/xen/i386/kernel/entry.S linux-2.6.10-xen-sparse/arch/xen/i386/kernel/head.S linux-2.6.10-xen-sparse/arch/xen/i386/kernel/i386_ksyms.c linux-2.6.10-xen-sparse/arch/xen/i386/kernel/ioport.c linux-2.6.10-xen-sparse/arch/xen/i386/kernel/irq.c linux-2.6.10-xen-sparse/arch/xen/i386/kernel/ldt.c linux-2.6.10-xen-sparse/arch/xen/i386/kernel/microcode.c linux-2.6.10-xen-sparse/arch/xen/i386/kernel/pci-dma.c linux-2.6.10-xen-sparse/arch/xen/i386/kernel/process.c linux-2.6.10-xen-sparse/arch/xen/i386/kernel/setup.c linux-2.6.10-xen-sparse/arch/xen/i386/kernel/signal.c linux-2.6.10-xen-sparse/arch/xen/i386/kernel/smp.c linux-2.6.10-xen-sparse/arch/xen/i386/kernel/smpboot.c linux-2.6.10-xen-sparse/arch/xen/i386/kernel/time.c linux-2.6.10-xen-sparse/arch/xen/i386/kernel/timers/Makefile linux-2.6.10-xen-sparse/arch/xen/i386/kernel/timers/timer_tsc.c linux-2.6.10-xen-sparse/arch/xen/i386/kernel/traps.c linux-2.6.10-xen-sparse/arch/xen/i386/kernel/vsyscall.S linux-2.6.10-xen-sparse/arch/xen/i386/kernel/vsyscall.lds linux-2.6.10-xen-sparse/arch/xen/i386/mm/Makefile linux-2.6.10-xen-sparse/arch/xen/i386/mm/fault.c linux-2.6.10-xen-sparse/arch/xen/i386/mm/highmem.c linux-2.6.10-xen-sparse/arch/xen/i386/mm/hypervisor.c linux-2.6.10-xen-sparse/arch/xen/i386/mm/init.c linux-2.6.10-xen-sparse/arch/xen/i386/mm/ioremap.c linux-2.6.10-xen-sparse/arch/xen/i386/mm/pageattr.c linux-2.6.10-xen-sparse/arch/xen/i386/mm/pgtable.c linux-2.6.10-xen-sparse/arch/xen/i386/pci/Makefile linux-2.6.10-xen-sparse/arch/xen/i386/pci/direct.c linux-2.6.10-xen-sparse/arch/xen/i386/pci/irq.c linux-2.6.10-xen-sparse/arch/xen/kernel/Makefile linux-2.6.10-xen-sparse/arch/xen/kernel/ctrl_if.c linux-2.6.10-xen-sparse/arch/xen/kernel/devmem.c linux-2.6.10-xen-sparse/arch/xen/kernel/evtchn.c linux-2.6.10-xen-sparse/arch/xen/kernel/fixup.c linux-2.6.10-xen-sparse/arch/xen/kernel/gnttab.c linux-2.6.10-xen-sparse/arch/xen/kernel/reboot.c linux-2.6.10-xen-sparse/arch/xen/kernel/skbuff.c linux-2.6.10-xen-sparse/arch/xen/kernel/smp.c linux-2.6.10-xen-sparse/arch/xen/kernel/xen_proc.c linux-2.6.10-xen-sparse/drivers/Makefile linux-2.6.10-xen-sparse/drivers/char/mem.c linux-2.6.10-xen-sparse/drivers/char/tty_io.c linux-2.6.10-xen-sparse/drivers/xen/Makefile linux-2.6.10-xen-sparse/drivers/xen/balloon/Makefile linux-2.6.10-xen-sparse/drivers/xen/balloon/balloon.c linux-2.6.10-xen-sparse/drivers/xen/blkback/Makefile linux-2.6.10-xen-sparse/drivers/xen/blkback/blkback.c linux-2.6.10-xen-sparse/drivers/xen/blkback/common.h linux-2.6.10-xen-sparse/drivers/xen/blkback/control.c linux-2.6.10-xen-sparse/drivers/xen/blkback/interface.c linux-2.6.10-xen-sparse/drivers/xen/blkback/vbd.c linux-2.6.10-xen-sparse/drivers/xen/blkfront/Kconfig linux-2.6.10-xen-sparse/drivers/xen/blkfront/Makefile linux-2.6.10-xen-sparse/drivers/xen/blkfront/blkfront.c linux-2.6.10-xen-sparse/drivers/xen/blkfront/block.h linux-2.6.10-xen-sparse/drivers/xen/blkfront/vbd.c linux-2.6.10-xen-sparse/drivers/xen/blktap/Makefile linux-2.6.10-xen-sparse/drivers/xen/blktap/blktap.c linux-2.6.10-xen-sparse/drivers/xen/blktap/blktap.h linux-2.6.10-xen-sparse/drivers/xen/blktap/blktap_controlmsg.c linux-2.6.10-xen-sparse/drivers/xen/blktap/blktap_datapath.c linux-2.6.10-xen-sparse/drivers/xen/blktap/blktap_userdev.c linux-2.6.10-xen-sparse/drivers/xen/console/Makefile linux-2.6.10-xen-sparse/drivers/xen/console/console.c linux-2.6.10-xen-sparse/drivers/xen/evtchn/Makefile linux-2.6.10-xen-sparse/drivers/xen/evtchn/evtchn.c linux-2.6.10-xen-sparse/drivers/xen/netback/Makefile linux-2.6.10-xen-sparse/drivers/xen/netback/common.h linux-2.6.10-xen-sparse/drivers/xen/netback/control.c linux-2.6.10-xen-sparse/drivers/xen/netback/interface.c linux-2.6.10-xen-sparse/drivers/xen/netback/netback.c linux-2.6.10-xen-sparse/drivers/xen/netfront/Kconfig linux-2.6.10-xen-sparse/drivers/xen/netfront/Makefile linux-2.6.10-xen-sparse/drivers/xen/netfront/netfront.c linux-2.6.10-xen-sparse/drivers/xen/privcmd/Makefile linux-2.6.10-xen-sparse/drivers/xen/privcmd/privcmd.c linux-2.6.10-xen-sparse/drivers/xen/usbback/common.h linux-2.6.10-xen-sparse/drivers/xen/usbback/control.c linux-2.6.10-xen-sparse/drivers/xen/usbback/interface.c linux-2.6.10-xen-sparse/drivers/xen/usbback/usbback.c linux-2.6.10-xen-sparse/drivers/xen/usbfront/usbfront.c linux-2.6.10-xen-sparse/drivers/xen/usbfront/xhci.h linux-2.6.10-xen-sparse/include/asm-generic/pgtable.h linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/desc.h linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/dma-mapping.h linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/fixmap.h linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/floppy.h linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/highmem.h linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/io.h linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/mach-xen/irq_vectors.h linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/mach-xen/setup_arch_post.h linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/mach-xen/setup_arch_pre.h linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/mach-xen/smpboot_hooks.h linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/mmu_context.h linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/page.h linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/param.h linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/pci.h linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/pgalloc.h linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/pgtable-2level-defs.h linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/pgtable-2level.h linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/pgtable.h linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/processor.h linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/ptrace.h linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/segment.h linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/setup.h linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/spinlock.h linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/synch_bitops.h linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/system.h linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/tlbflush.h linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/vga.h linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/xor.h linux-2.6.10-xen-sparse/include/asm-xen/balloon.h linux-2.6.10-xen-sparse/include/asm-xen/ctrl_if.h linux-2.6.10-xen-sparse/include/asm-xen/evtchn.h linux-2.6.10-xen-sparse/include/asm-xen/foreign_page.h linux-2.6.10-xen-sparse/include/asm-xen/gnttab.h linux-2.6.10-xen-sparse/include/asm-xen/hypervisor.h linux-2.6.10-xen-sparse/include/asm-xen/linux-public/privcmd.h linux-2.6.10-xen-sparse/include/asm-xen/linux-public/suspend.h linux-2.6.10-xen-sparse/include/asm-xen/multicall.h linux-2.6.10-xen-sparse/include/asm-xen/queues.h linux-2.6.10-xen-sparse/include/asm-xen/xen_proc.h linux-2.6.10-xen-sparse/include/linux/gfp.h linux-2.6.10-xen-sparse/include/linux/irq.h linux-2.6.10-xen-sparse/include/linux/skbuff.h linux-2.6.10-xen-sparse/kernel/irq/manage.c linux-2.6.10-xen-sparse/mkbuildtree linux-2.6.10-xen-sparse/mm/memory.c linux-2.6.10-xen-sparse/mm/page_alloc.c linux-2.6.10-xen-sparse/net/core/skbuff.c linux-2.6.7-xen-sparse/arch/xen/Kconfig linux-2.6.7-xen-sparse/arch/xen/Kconfig.drivers linux-2.6.7-xen-sparse/arch/xen/Makefile linux-2.6.7-xen-sparse/arch/xen/boot/Makefile linux-2.6.7-xen-sparse/arch/xen/configs/xen0_defconfig linux-2.6.7-xen-sparse/arch/xen/configs/xenU_defconfig linux-2.6.7-xen-sparse/arch/xen/i386/Kconfig linux-2.6.7-xen-sparse/arch/xen/i386/Makefile linux-2.6.7-xen-sparse/arch/xen/i386/kernel/Makefile linux-2.6.7-xen-sparse/arch/xen/i386/kernel/cpu/Makefile linux-2.6.7-xen-sparse/arch/xen/i386/kernel/cpu/common.c linux-2.6.7-xen-sparse/arch/xen/i386/kernel/entry.S linux-2.6.7-xen-sparse/arch/xen/i386/kernel/head.S linux-2.6.7-xen-sparse/arch/xen/i386/kernel/i386_ksyms.c linux-2.6.7-xen-sparse/arch/xen/i386/kernel/ioport.c linux-2.6.7-xen-sparse/arch/xen/i386/kernel/irq.c linux-2.6.7-xen-sparse/arch/xen/i386/kernel/ldt.c linux-2.6.7-xen-sparse/arch/xen/i386/kernel/pci-dma.c linux-2.6.7-xen-sparse/arch/xen/i386/kernel/process.c linux-2.6.7-xen-sparse/arch/xen/i386/kernel/setup.c linux-2.6.7-xen-sparse/arch/xen/i386/kernel/signal.c linux-2.6.7-xen-sparse/arch/xen/i386/kernel/sysenter.c linux-2.6.7-xen-sparse/arch/xen/i386/kernel/time.c linux-2.6.7-xen-sparse/arch/xen/i386/kernel/timers/Makefile linux-2.6.7-xen-sparse/arch/xen/i386/kernel/timers/timer_tsc.c linux-2.6.7-xen-sparse/arch/xen/i386/kernel/traps.c linux-2.6.7-xen-sparse/arch/xen/i386/kernel/vmlinux.lds.S linux-2.6.7-xen-sparse/arch/xen/i386/kernel/vsyscall.S linux-2.6.7-xen-sparse/arch/xen/i386/kernel/vsyscall.lds linux-2.6.7-xen-sparse/arch/xen/i386/mm/Makefile linux-2.6.7-xen-sparse/arch/xen/i386/mm/fault.c linux-2.6.7-xen-sparse/arch/xen/i386/mm/hypervisor.c linux-2.6.7-xen-sparse/arch/xen/i386/mm/init.c linux-2.6.7-xen-sparse/arch/xen/i386/mm/ioremap.c linux-2.6.7-xen-sparse/arch/xen/i386/mm/pgtable.c linux-2.6.7-xen-sparse/arch/xen/i386/pci/Makefile linux-2.6.7-xen-sparse/arch/xen/i386/pci/direct.c linux-2.6.7-xen-sparse/arch/xen/i386/pci/irq.c linux-2.6.7-xen-sparse/arch/xen/kernel/Makefile linux-2.6.7-xen-sparse/arch/xen/kernel/ctrl_if.c linux-2.6.7-xen-sparse/arch/xen/kernel/empty.c linux-2.6.7-xen-sparse/arch/xen/kernel/evtchn.c linux-2.6.7-xen-sparse/arch/xen/kernel/fixup.c linux-2.6.7-xen-sparse/arch/xen/kernel/process.c linux-2.6.7-xen-sparse/arch/xen/kernel/reboot.c linux-2.6.7-xen-sparse/arch/xen/kernel/xen_proc.c linux-2.6.7-xen-sparse/drivers/char/mem.c linux-2.6.7-xen-sparse/drivers/char/tty_io.c linux-2.6.7-xen-sparse/drivers/xen/Makefile linux-2.6.7-xen-sparse/drivers/xen/blkback/Makefile linux-2.6.7-xen-sparse/drivers/xen/blkback/blkback.c linux-2.6.7-xen-sparse/drivers/xen/blkback/common.h linux-2.6.7-xen-sparse/drivers/xen/blkback/control.c linux-2.6.7-xen-sparse/drivers/xen/blkback/interface.c linux-2.6.7-xen-sparse/drivers/xen/blkback/vbd.c linux-2.6.7-xen-sparse/drivers/xen/blkfront/Kconfig linux-2.6.7-xen-sparse/drivers/xen/blkfront/Makefile linux-2.6.7-xen-sparse/drivers/xen/blkfront/blkfront.c linux-2.6.7-xen-sparse/drivers/xen/blkfront/block.h linux-2.6.7-xen-sparse/drivers/xen/blkfront/vbd.c linux-2.6.7-xen-sparse/drivers/xen/console/Makefile linux-2.6.7-xen-sparse/drivers/xen/console/console.c linux-2.6.7-xen-sparse/drivers/xen/evtchn/Makefile linux-2.6.7-xen-sparse/drivers/xen/evtchn/evtchn.c linux-2.6.7-xen-sparse/drivers/xen/netback/Makefile linux-2.6.7-xen-sparse/drivers/xen/netback/common.h linux-2.6.7-xen-sparse/drivers/xen/netback/control.c linux-2.6.7-xen-sparse/drivers/xen/netback/interface.c linux-2.6.7-xen-sparse/drivers/xen/netback/netback.c linux-2.6.7-xen-sparse/drivers/xen/netfront/Kconfig linux-2.6.7-xen-sparse/drivers/xen/netfront/Makefile linux-2.6.7-xen-sparse/drivers/xen/netfront/netfront.c linux-2.6.7-xen-sparse/drivers/xen/privcmd/Makefile linux-2.6.7-xen-sparse/drivers/xen/privcmd/privcmd.c linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/desc.h linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/dma-mapping.h linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/e820.h linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/fixmap.h linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/io.h linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/mach-xen/do_timer.h linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/mach-xen/io_ports.h linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/mach-xen/irq_vectors.h linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/mach-xen/mach_mpspec.h linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/mach-xen/mach_reboot.h linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/mach-xen/mach_resources.h linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/mach-xen/mach_time.h linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/mach-xen/mach_timer.h linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/mach-xen/mach_traps.h linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/mach-xen/pci-functions.h linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/mach-xen/setup_arch_post.h linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/mach-xen/setup_arch_pre.h linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/msr.h linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/page.h linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/param.h linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/pgalloc.h linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/pgtable-2level.h linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/pgtable.h linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/processor.h linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/ptrace.h linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/segment.h linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/setup.h linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/synch_bitops.h linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/system.h linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/timer.h linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/tlbflush.h linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/vga.h linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/xor.h linux-2.6.7-xen-sparse/include/asm-xen/ctrl_if.h linux-2.6.7-xen-sparse/include/asm-xen/evtchn.h linux-2.6.7-xen-sparse/include/asm-xen/hypervisor.h linux-2.6.7-xen-sparse/include/asm-xen/multicall.h linux-2.6.7-xen-sparse/include/asm-xen/proc_cmd.h linux-2.6.7-xen-sparse/include/asm-xen/suspend.h linux-2.6.7-xen-sparse/include/asm-xen/xen_proc.h linux-2.6.7-xen-sparse/mkbuildtree linux-2.6.7-xen-sparse/mm/page_alloc.c netbsd-2.0-xen-sparse/Makefile netbsd-2.0-xen-sparse/mkbuildtree netbsd-2.0-xen-sparse/nbconfig-xen netbsd-2.0-xen-sparse/nbmake-xen netbsd-2.0-xen-sparse/sys/arch/xen/conf/XEN netbsd-2.0-xen-sparse/sys/arch/xen/conf/files.xen netbsd-2.0-xen-sparse/sys/arch/xen/i386/autoconf.c netbsd-2.0-xen-sparse/sys/arch/xen/i386/gdt.c netbsd-2.0-xen-sparse/sys/arch/xen/i386/hypervisor_machdep.c netbsd-2.0-xen-sparse/sys/arch/xen/i386/locore.S netbsd-2.0-xen-sparse/sys/arch/xen/i386/machdep.c netbsd-2.0-xen-sparse/sys/arch/xen/i386/pmap.c netbsd-2.0-xen-sparse/sys/arch/xen/i386/sys_machdep.c netbsd-2.0-xen-sparse/sys/arch/xen/i386/vector.S netbsd-2.0-xen-sparse/sys/arch/xen/i386/xen_machdep.c netbsd-2.0-xen-sparse/sys/arch/xen/include/ctrl_if.h netbsd-2.0-xen-sparse/sys/arch/xen/include/evtchn.h netbsd-2.0-xen-sparse/sys/arch/xen/include/frameasm.h netbsd-2.0-xen-sparse/sys/arch/xen/include/hypervisor.h netbsd-2.0-xen-sparse/sys/arch/xen/include/if_xennetvar.h netbsd-2.0-xen-sparse/sys/arch/xen/include/pmap.h netbsd-2.0-xen-sparse/sys/arch/xen/include/xbdvar.h netbsd-2.0-xen-sparse/sys/arch/xen/include/xen.h netbsd-2.0-xen-sparse/sys/arch/xen/include/xenfunc.h netbsd-2.0-xen-sparse/sys/arch/xen/include/xenpmap.h netbsd-2.0-xen-sparse/sys/arch/xen/x86/bus_space.c netbsd-2.0-xen-sparse/sys/arch/xen/xen/clock.c netbsd-2.0-xen-sparse/sys/arch/xen/xen/ctrl_if.c netbsd-2.0-xen-sparse/sys/arch/xen/xen/evtchn.c netbsd-2.0-xen-sparse/sys/arch/xen/xen/hypervisor.c netbsd-2.0-xen-sparse/sys/arch/xen/xen/if_xennet.c netbsd-2.0-xen-sparse/sys/arch/xen/xen/xbd.c netbsd-2.0-xen-sparse/sys/arch/xen/xen/xen_debug.c netbsd-2.0-xen-sparse/sys/arch/xen/xen/xencons.c netbsd-2.0-xen-sparse/sys/arch/xen/xen/xenkbc.c netbsd-2.0-xen-sparse/sys/nfs/files.nfs patches/linux-2.6.9/agpgart.patch tools/Make.defs tools/Makefile tools/Rules.mk tools/blktap/Makefile tools/blktap/README tools/blktap/blkaio.c tools/blktap/blkaiolib.c tools/blktap/blkaiolib.h tools/blktap/blkcow.c tools/blktap/blkcowgnbd.c tools/blktap/blkcowimg.c tools/blktap/blkcowlib.c tools/blktap/blkcowlib.h tools/blktap/blkdump.c tools/blktap/blkgnbd.c tools/blktap/blkgnbdlib.c tools/blktap/blkgnbdlib.h tools/blktap/blkimg.c tools/blktap/blkimglib.c tools/blktap/blkimglib.h tools/blktap/blkint.h tools/blktap/blktaplib.c tools/blktap/blktaplib.h tools/blktap/libgnbd/Makefile tools/blktap/libgnbd/gnbdtest.c tools/blktap/libgnbd/libgnbd.c tools/blktap/libgnbd/libgnbd.h tools/check/Makefile tools/check/README tools/check/check_brctl tools/check/check_curl_devel tools/check/check_curl_lib tools/check/check_logging tools/check/check_python tools/check/check_twisted tools/check/check_zlib_devel tools/check/check_zlib_lib tools/check/chk tools/examples/Makefile tools/examples/README tools/examples/block-enbd tools/examples/block-file tools/examples/bochsrc tools/examples/init.d/xend tools/examples/init.d/xendomains tools/examples/mem-map.sxp tools/examples/network tools/examples/network-nat tools/examples/network-route tools/examples/vif-bridge tools/examples/vif-nat tools/examples/vif-route tools/examples/vifctl tools/examples/xend-config.sxp tools/examples/xmdefaults tools/examples/xmexample tools/examples/xmexample.vmx tools/examples/xmexample1 tools/examples/xmexample2 tools/examples/xmexample3 tools/examples/xmnetbsd-example tools/ioemu/Makefile tools/ioemu/font/vga.bitmap.h tools/ioemu/gui/Makefile tools/ioemu/gui/Makefile.in tools/ioemu/gui/bitmaps/cdromd.h tools/ioemu/gui/bitmaps/cdromd.xpm tools/ioemu/gui/bitmaps/configbutton.h tools/ioemu/gui/bitmaps/configbutton.xpm tools/ioemu/gui/bitmaps/copy.h tools/ioemu/gui/bitmaps/copy.xpm tools/ioemu/gui/bitmaps/floppya.h tools/ioemu/gui/bitmaps/floppya.xpm tools/ioemu/gui/bitmaps/floppyb.h tools/ioemu/gui/bitmaps/floppyb.xpm tools/ioemu/gui/bitmaps/mouse.h tools/ioemu/gui/bitmaps/mouse.xpm tools/ioemu/gui/bitmaps/paste.h tools/ioemu/gui/bitmaps/paste.xpm tools/ioemu/gui/bitmaps/power.h tools/ioemu/gui/bitmaps/power.xpm tools/ioemu/gui/bitmaps/reset.h tools/ioemu/gui/bitmaps/reset.xpm tools/ioemu/gui/bitmaps/snapshot.h tools/ioemu/gui/bitmaps/snapshot.xpm tools/ioemu/gui/bitmaps/userbutton.h tools/ioemu/gui/bitmaps/userbutton.xpm tools/ioemu/gui/gui.cc tools/ioemu/gui/gui.h tools/ioemu/gui/icon_bochs.h tools/ioemu/gui/icon_bochs.xpm tools/ioemu/gui/keymap.cc tools/ioemu/gui/keymap.h tools/ioemu/gui/keymaps/convertmap.pl tools/ioemu/gui/keymaps/sdl-pc-de.map tools/ioemu/gui/keymaps/sdl-pc-us.map tools/ioemu/gui/keymaps/x11-pc-be.map tools/ioemu/gui/keymaps/x11-pc-da.map tools/ioemu/gui/keymaps/x11-pc-de.map tools/ioemu/gui/keymaps/x11-pc-es.map tools/ioemu/gui/keymaps/x11-pc-fr.map tools/ioemu/gui/keymaps/x11-pc-it.map tools/ioemu/gui/keymaps/x11-pc-se.map tools/ioemu/gui/keymaps/x11-pc-uk.map tools/ioemu/gui/keymaps/x11-pc-us.map tools/ioemu/gui/nogui.cc tools/ioemu/gui/rfb.cc tools/ioemu/gui/rfb.h tools/ioemu/gui/rfbproto.h tools/ioemu/gui/sdl.h tools/ioemu/gui/sdlkeys.h tools/ioemu/gui/siminterface.cc tools/ioemu/gui/siminterface.h tools/ioemu/gui/svga.cc tools/ioemu/gui/term.cc tools/ioemu/gui/textconfig.cc tools/ioemu/gui/textconfig.h tools/ioemu/gui/x.cc tools/ioemu/include/bochs.h tools/ioemu/include/bxversion.h tools/ioemu/include/config.h tools/ioemu/include/cpu/cpu.h tools/ioemu/include/extplugin.h tools/ioemu/include/instrument.h tools/ioemu/include/ltdl.h tools/ioemu/include/ltdlconf.h tools/ioemu/include/osdep.h tools/ioemu/include/pc_system.h tools/ioemu/include/plugin.h tools/ioemu/include/state_file.h tools/ioemu/iodev/Makefile tools/ioemu/iodev/aspi-win32.h tools/ioemu/iodev/biosdev.cc tools/ioemu/iodev/biosdev.h tools/ioemu/iodev/cdrom.cc tools/ioemu/iodev/cdrom.h tools/ioemu/iodev/cdrom_beos.h tools/ioemu/iodev/cmos.cc tools/ioemu/iodev/cmos.h tools/ioemu/iodev/cpu.cc tools/ioemu/iodev/crc32.cc tools/ioemu/iodev/crc32.h tools/ioemu/iodev/devices.cc tools/ioemu/iodev/dma.cc tools/ioemu/iodev/dma.h tools/ioemu/iodev/eth.cc tools/ioemu/iodev/eth.h tools/ioemu/iodev/eth_arpback.cc tools/ioemu/iodev/eth_fbsd.cc tools/ioemu/iodev/eth_linux.cc tools/ioemu/iodev/eth_null.cc tools/ioemu/iodev/eth_packetmaker.cc tools/ioemu/iodev/eth_packetmaker.h tools/ioemu/iodev/eth_tap.cc tools/ioemu/iodev/eth_tuntap.cc tools/ioemu/iodev/extfpuirq.cc tools/ioemu/iodev/extfpuirq.h tools/ioemu/iodev/floppy.cc tools/ioemu/iodev/floppy.h tools/ioemu/iodev/gameport.cc tools/ioemu/iodev/gameport.h tools/ioemu/iodev/guest2host.h tools/ioemu/iodev/harddrv.cc tools/ioemu/iodev/harddrv.h tools/ioemu/iodev/ioapic.cc tools/ioemu/iodev/ioapic.h tools/ioemu/iodev/iodebug.cc tools/ioemu/iodev/iodebug.h tools/ioemu/iodev/iodev.h tools/ioemu/iodev/keyboard.cc tools/ioemu/iodev/keyboard.h tools/ioemu/iodev/load32bitOShack.cc tools/ioemu/iodev/logio.cc tools/ioemu/iodev/main.cc tools/ioemu/iodev/ne2k.cc tools/ioemu/iodev/ne2k.h tools/ioemu/iodev/osdep.cc tools/ioemu/iodev/parallel.cc tools/ioemu/iodev/parallel.h tools/ioemu/iodev/pc_system.cc tools/ioemu/iodev/pci.cc tools/ioemu/iodev/pci.h tools/ioemu/iodev/pci2isa.cc tools/ioemu/iodev/pci2isa.h tools/ioemu/iodev/pciusb.cc tools/ioemu/iodev/pciusb.h tools/ioemu/iodev/pcivga.cc tools/ioemu/iodev/pcivga.h tools/ioemu/iodev/pic.cc tools/ioemu/iodev/pic.h tools/ioemu/iodev/pit.cc tools/ioemu/iodev/pit.h tools/ioemu/iodev/pit82c54.cc tools/ioemu/iodev/pit82c54.h tools/ioemu/iodev/pit_wrap.cc tools/ioemu/iodev/pit_wrap.h tools/ioemu/iodev/plugin.cc tools/ioemu/iodev/scancodes.cc tools/ioemu/iodev/scancodes.h tools/ioemu/iodev/scsi_commands.h tools/ioemu/iodev/scsidefs.h tools/ioemu/iodev/scsipt.h tools/ioemu/iodev/serial.cc tools/ioemu/iodev/serial.h tools/ioemu/iodev/serial_raw.h tools/ioemu/iodev/slowdown_timer.cc tools/ioemu/iodev/slowdown_timer.h tools/ioemu/iodev/soundlnx.cc tools/ioemu/iodev/soundlnx.h tools/ioemu/iodev/soundwin.cc tools/ioemu/iodev/soundwin.h tools/ioemu/iodev/state_file.cc tools/ioemu/iodev/unmapped.cc tools/ioemu/iodev/unmapped.h tools/ioemu/iodev/vga.cc tools/ioemu/iodev/vga.h tools/ioemu/iodev/virt_timer.cc tools/ioemu/iodev/virt_timer.h tools/ioemu/memory/Makefile tools/ioemu/memory/memory.cc tools/ioemu/memory/memory.h tools/ioemu/memory/misc_mem.cc tools/ioemu/mk/helix.mk tools/libxc/Makefile tools/libxc/linux_boot_params.h tools/libxc/plan9a.out.h tools/libxc/xc.h tools/libxc/xc_domain.c tools/libxc/xc_evtchn.c tools/libxc/xc_fbvtsched.c tools/libxc/xc_io.c tools/libxc/xc_io.h tools/libxc/xc_linux_build.c tools/libxc/xc_linux_restore.c tools/libxc/xc_linux_save.c tools/libxc/xc_misc.c tools/libxc/xc_netbsd_build.c tools/libxc/xc_plan9_build.c tools/libxc/xc_private.c tools/libxc/xc_private.h tools/libxc/xc_vmx_build.c tools/libxutil/Makefile tools/libxutil/debug.h tools/libxutil/enum.c tools/libxutil/enum.h tools/libxutil/hash_table.c tools/libxutil/hash_table.h tools/libxutil/iostream.c tools/libxutil/iostream.h tools/libxutil/kernel_stream.c tools/libxutil/lexis.c tools/libxutil/lexis.h tools/libxutil/socket_stream.c tools/libxutil/socket_stream.h tools/libxutil/string_stream.c tools/libxutil/string_stream.h tools/libxutil/sxpr.c tools/libxutil/sxpr.h tools/libxutil/sxpr_parser.c tools/libxutil/sxpr_parser.h tools/libxutil/sys_net.c tools/libxutil/util.c tools/libxutil/util.h tools/misc/Makefile tools/misc/miniterm/Makefile tools/misc/netfix tools/misc/p4perf.h tools/misc/xen-clone tools/misc/xen_cpuperf.c tools/misc/xencons tools/misc/xend tools/misc/xenperf.c tools/misc/xensv tools/misc/xensymoops tools/misc/xensymoops.py tools/misc/xm tools/python/Makefile tools/python/setup.py tools/python/xen/lowlevel/xc/xc.c tools/python/xen/lowlevel/xu/xu.c tools/python/xen/sv/CreateDomain.py tools/python/xen/sv/Daemon.py tools/python/xen/sv/DomInfo.py tools/python/xen/sv/DomList.py tools/python/xen/sv/HTMLBase.py tools/python/xen/sv/Main.py tools/python/xen/sv/MigrateDomain.py tools/python/xen/sv/NodeInfo.py tools/python/xen/sv/RestoreDomain.py tools/python/xen/sv/SaveDomain.py tools/python/xen/sv/params.py tools/python/xen/sv/util.py tools/python/xen/util/Brctl.py tools/python/xen/util/console_client.py tools/python/xen/util/ip.py tools/python/xen/util/memmap.py tools/python/xen/xend/Blkctl.py tools/python/xen/xend/XendAsynchProtocol.py tools/python/xen/xend/XendClient.py tools/python/xen/xend/XendConsole.py tools/python/xen/xend/XendDmesg.py tools/python/xen/xend/XendDomain.py tools/python/xen/xend/XendDomainInfo.py tools/python/xen/xend/XendLogging.py tools/python/xen/xend/XendMigrate.py tools/python/xen/xend/XendNode.py tools/python/xen/xend/XendProtocol.py tools/python/xen/xend/XendRoot.py tools/python/xen/xend/XendVnet.py tools/python/xen/xend/encode.py tools/python/xen/xend/server/SrvBase.py tools/python/xen/xend/server/SrvDaemon.py tools/python/xen/xend/server/SrvDmesg.py tools/python/xen/xend/server/SrvDomain.py tools/python/xen/xend/server/SrvDomainDir.py tools/python/xen/xend/server/SrvNode.py tools/python/xen/xend/server/SrvServer.py tools/python/xen/xend/server/SrvUsbif.py tools/python/xen/xend/server/blkif.py tools/python/xen/xend/server/channel.py tools/python/xen/xend/server/console.py tools/python/xen/xend/server/controller.py tools/python/xen/xend/server/domain.py tools/python/xen/xend/server/messages.py tools/python/xen/xend/server/netif.py tools/python/xen/xend/server/params.py tools/python/xen/xend/server/usbif.py tools/python/xen/xend/sxp.py tools/python/xen/xend/util.py tools/python/xen/xm/create.py tools/python/xen/xm/help.py tools/python/xen/xm/main.py tools/python/xen/xm/migrate.py tools/python/xen/xm/opts.py tools/python/xen/xm/shutdown.py tools/python/xen/xm/sysrq.py tools/sv/Makefile tools/sv/images/destroy.png tools/sv/images/small-destroy.png tools/sv/images/small-pause.png tools/sv/images/small-unpause.png tools/sv/inc/script.js tools/vnet/00README tools/vnet/INSTALL tools/vnet/Makefile tools/vnet/doc/vnet-module.txt tools/vnet/doc/vnet-xend.txt tools/vnet/examples/Makefile tools/vnet/examples/network-vnet tools/vnet/examples/vnet97.sxp tools/vnet/examples/vnet98.sxp tools/vnet/examples/vnet99.sxp tools/vnet/vnet-module/00README tools/vnet/vnet-module/Makefile tools/vnet/vnet-module/Makefile-2.4 tools/vnet/vnet-module/Makefile-2.6 tools/vnet/vnet-module/Makefile.ver tools/vnet/vnet-module/Makefile.vnet tools/vnet/vnet-module/esp.c tools/vnet/vnet-module/esp.h tools/vnet/vnet-module/etherip.c tools/vnet/vnet-module/etherip.h tools/vnet/vnet-module/if_etherip.h tools/vnet/vnet-module/if_varp.h tools/vnet/vnet-module/linux/pfkeyv2.h tools/vnet/vnet-module/random.c tools/vnet/vnet-module/random.h tools/vnet/vnet-module/sa.c tools/vnet/vnet-module/sa.h tools/vnet/vnet-module/sa_algorithm.c tools/vnet/vnet-module/sa_algorithm.h tools/vnet/vnet-module/skb_context.c tools/vnet/vnet-module/skb_context.h tools/vnet/vnet-module/skb_util.c tools/vnet/vnet-module/skb_util.h tools/vnet/vnet-module/tunnel.c tools/vnet/vnet-module/tunnel.h tools/vnet/vnet-module/varp.c tools/vnet/vnet-module/varp.h tools/vnet/vnet-module/varp_socket.c tools/vnet/vnet-module/vif.c tools/vnet/vnet-module/vif.h tools/vnet/vnet-module/vnet.c tools/vnet/vnet-module/vnet.h tools/vnet/vnet-module/vnet_dev.c tools/vnet/vnet-module/vnet_dev.h tools/vnet/vnet-module/vnet_ioctl.c tools/vnet/vnet-module/vnet_ioctl.h tools/vnet/vnetd/Makefile tools/vnet/vnetd/connection.c tools/vnet/vnetd/connection.h tools/vnet/vnetd/marshal.c tools/vnet/vnetd/marshal.h tools/vnet/vnetd/select.c tools/vnet/vnetd/select.h tools/vnet/vnetd/timer.c tools/vnet/vnetd/timer.h tools/vnet/vnetd/vcache.c tools/vnet/vnetd/vcache.h tools/vnet/vnetd/vnetd.c tools/vnet/vnetd/vnetd.h tools/x2d2/Makefile tools/x2d2/cntrl_con.c tools/x2d2/minixend.c tools/x2d2/minixend.h tools/x2d2/util.c tools/xcs/Makefile tools/xcs/bindings.c tools/xcs/connection.c tools/xcs/ctrl_interface.c tools/xcs/evtchn.c tools/xcs/xcs.c tools/xcs/xcs.h tools/xcs/xcs_proto.h tools/xcs/xcsdump.c tools/xentrace/Makefile tools/xentrace/xentrace.c tools/xfrd/Make.xfrd tools/xfrd/Makefile tools/xfrd/debug.h tools/xfrd/enum.c tools/xfrd/enum.h tools/xfrd/hash_table.c tools/xfrd/hash_table.h tools/xfrd/http.h tools/xfrd/lexis.c tools/xfrd/lexis.h tools/xfrd/sxpr.c tools/xfrd/sxpr.h tools/xfrd/sxpr_parser.c tools/xfrd/sxpr_parser.h tools/xfrd/xen_domain.c tools/xfrd/xen_domain.h tools/xfrd/xfrd.c tools/xfrd/xfrd.h xen/COPYING xen/Makefile xen/Rules.mk xen/arch/ia64/privop.c xen/arch/ia64/process.c xen/arch/ia64/regionreg.c xen/arch/ia64/vcpu.c xen/arch/ia64/xenasm.S xen/arch/x86/Makefile xen/arch/x86/Rules.mk xen/arch/x86/acpi.c xen/arch/x86/apic.c xen/arch/x86/boot/mkelf32.c xen/arch/x86/boot/x86_32.S xen/arch/x86/boot/x86_64.S xen/arch/x86/dom0_ops.c xen/arch/x86/domain.c xen/arch/x86/e820.c xen/arch/x86/extable.c xen/arch/x86/flushtlb.c xen/arch/x86/i387.c xen/arch/x86/i8259.c xen/arch/x86/idle0_task.c xen/arch/x86/io_apic.c xen/arch/x86/irq.c xen/arch/x86/memory.c xen/arch/x86/microcode.c xen/arch/x86/mm.c xen/arch/x86/mpparse.c xen/arch/x86/mtrr/amd.c xen/arch/x86/mtrr/centaur.c xen/arch/x86/mtrr/cyrix.c xen/arch/x86/mtrr/generic.c xen/arch/x86/mtrr/main.c xen/arch/x86/mtrr/mtrr.h xen/arch/x86/mtrr/state.c xen/arch/x86/nmi.c xen/arch/x86/pci-irq.c xen/arch/x86/pci-pc.c xen/arch/x86/pdb-linux.c xen/arch/x86/pdb-stub.c xen/arch/x86/setup.c xen/arch/x86/shadow.c xen/arch/x86/smp.c xen/arch/x86/smpboot.c xen/arch/x86/time.c xen/arch/x86/trampoline.S xen/arch/x86/traps.c xen/arch/x86/vmx.c xen/arch/x86/vmx_intercept.c xen/arch/x86/vmx_io.c xen/arch/x86/vmx_platform.c xen/arch/x86/vmx_vmcs.c xen/arch/x86/x86_32/asm-offsets.c xen/arch/x86/x86_32/domain_build.c xen/arch/x86/x86_32/domain_page.c xen/arch/x86/x86_32/emulate.c xen/arch/x86/x86_32/entry.S xen/arch/x86/x86_32/mm.c xen/arch/x86/x86_32/seg_fixup.c xen/arch/x86/x86_32/traps.c xen/arch/x86/x86_32/usercopy.c xen/arch/x86/x86_32/xen.lds xen/arch/x86/x86_64/asm-offsets.c xen/arch/x86/x86_64/domain_build.c xen/arch/x86/x86_64/entry.S xen/arch/x86/x86_64/mm.c xen/arch/x86/x86_64/traps.c xen/arch/x86/x86_64/usercopy.c xen/arch/x86/x86_64/xen.lds xen/common/Makefile xen/common/ac_timer.c xen/common/debug-linux.c xen/common/debug.c xen/common/dom0_ops.c xen/common/dom_mem_ops.c xen/common/domain.c xen/common/elf.c xen/common/event_channel.c xen/common/grant_table.c xen/common/kernel.c xen/common/keyhandler.c xen/common/lib.c xen/common/memory.c xen/common/multicall.c xen/common/page_alloc.c xen/common/perfc.c xen/common/physdev.c xen/common/resource.c xen/common/sched_atropos.c xen/common/sched_bvt.c xen/common/sched_fair_bvt.c xen/common/sched_rrobin.c xen/common/schedule.c xen/common/slab.c xen/common/softirq.c xen/common/string.c xen/common/trace.c xen/common/vsprintf.c xen/common/xmalloc.c xen/drivers/acpi/Makefile xen/drivers/char/Makefile xen/drivers/char/console.c xen/drivers/char/serial.c xen/drivers/pci/Makefile xen/drivers/pci/compat.c xen/drivers/pci/pci.c xen/drivers/pci/setup-bus.c xen/drivers/pci/setup-irq.c xen/drivers/pci/setup-res.c xen/drivers/pci/syscall.c xen/figlet/LICENSE xen/figlet/Makefile xen/figlet/README xen/figlet/figlet.c xen/figlet/xen.flf xen/include/acpi/platform/acgcc.h xen/include/asm-x86/acpi.h xen/include/asm-x86/apic.h xen/include/asm-x86/apicdef.h xen/include/asm-x86/asm_defns.h xen/include/asm-x86/atomic.h xen/include/asm-x86/bitops.h xen/include/asm-x86/config.h xen/include/asm-x86/cpufeature.h xen/include/asm-x86/debugger.h xen/include/asm-x86/desc.h xen/include/asm-x86/domain.h xen/include/asm-x86/domain_page.h xen/include/asm-x86/e820.h xen/include/asm-x86/fixmap.h xen/include/asm-x86/flushtlb.h xen/include/asm-x86/hardirq.h xen/include/asm-x86/i387.h xen/include/asm-x86/init.h xen/include/asm-x86/irq.h xen/include/asm-x86/ldt.h xen/include/asm-x86/mm.h xen/include/asm-x86/msr.h xen/include/asm-x86/mtrr.h xen/include/asm-x86/multicall.h xen/include/asm-x86/page.h xen/include/asm-x86/pda.h xen/include/asm-x86/pdb.h xen/include/asm-x86/processor.h xen/include/asm-x86/ptrace.h xen/include/asm-x86/regs.h xen/include/asm-x86/shadow.h xen/include/asm-x86/smp.h xen/include/asm-x86/spinlock.h xen/include/asm-x86/system.h xen/include/asm-x86/time.h xen/include/asm-x86/uaccess.h xen/include/asm-x86/vmx.h xen/include/asm-x86/vmx_cpu.h xen/include/asm-x86/vmx_intercept.h xen/include/asm-x86/vmx_platform.h xen/include/asm-x86/vmx_virpit.h xen/include/asm-x86/vmx_vmcs.h xen/include/asm-x86/x86_32/asm_defns.h xen/include/asm-x86/x86_32/current.h xen/include/asm-x86/x86_32/domain_page.h xen/include/asm-x86/x86_32/page.h xen/include/asm-x86/x86_32/ptrace.h xen/include/asm-x86/x86_32/regs.h xen/include/asm-x86/x86_32/string.h xen/include/asm-x86/x86_32/uaccess.h xen/include/asm-x86/x86_64/asm_defns.h xen/include/asm-x86/x86_64/current.h xen/include/asm-x86/x86_64/desc.h xen/include/asm-x86/x86_64/domain_page.h xen/include/asm-x86/x86_64/page.h xen/include/asm-x86/x86_64/ptrace.h xen/include/asm-x86/x86_64/regs.h xen/include/asm-x86/x86_64/uaccess.h xen/include/hypervisor-ifs/COPYING xen/include/hypervisor-ifs/arch-x86_32.h xen/include/hypervisor-ifs/arch-x86_64.h xen/include/hypervisor-ifs/dom0_ops.h xen/include/hypervisor-ifs/event_channel.h xen/include/hypervisor-ifs/hypervisor-if.h xen/include/hypervisor-ifs/io/blkif.h xen/include/hypervisor-ifs/io/domain_controller.h xen/include/hypervisor-ifs/io/netif.h xen/include/hypervisor-ifs/physdev.h xen/include/hypervisor-ifs/sched_ctl.h xen/include/hypervisor-ifs/trace.h xen/include/public/COPYING xen/include/public/arch-x86_32.h xen/include/public/arch-x86_64.h xen/include/public/dom0_ops.h xen/include/public/event_channel.h xen/include/public/grant_table.h xen/include/public/io/blkif.h xen/include/public/io/domain_controller.h xen/include/public/io/ioreq.h xen/include/public/io/netif.h xen/include/public/io/ring.h xen/include/public/io/usbif.h xen/include/public/physdev.h xen/include/public/sched_ctl.h xen/include/public/trace.h xen/include/public/xen.h xen/include/xen/cache.h xen/include/xen/compile.h.in xen/include/xen/compiler.h xen/include/xen/config.h xen/include/xen/console.h xen/include/xen/domain.h xen/include/xen/elf.h xen/include/xen/event.h xen/include/xen/grant_table.h xen/include/xen/init.h xen/include/xen/ioport.h xen/include/xen/irq.h xen/include/xen/irq_cpustat.h xen/include/xen/keyhandler.h xen/include/xen/lib.h xen/include/xen/list.h xen/include/xen/mm.h xen/include/xen/multiboot.h xen/include/xen/multicall.h xen/include/xen/pci.h xen/include/xen/pci_ids.h xen/include/xen/perfc_defn.h xen/include/xen/sched-if.h xen/include/xen/sched.h xen/include/xen/serial.h xen/include/xen/slab.h xen/include/xen/smp.h xen/include/xen/softirq.h xen/include/xen/spinlock.h xen/include/xen/time.h xen/include/xen/trace.h xen/include/xen/types.h xen/tools/Makefile xen/tools/figlet/LICENSE xen/tools/figlet/Makefile xen/tools/figlet/README xen/tools/figlet/figlet.c xen/tools/figlet/xen.flf
line diff
     1.1 --- a/.hgtags	Fri Aug 06 12:20:20 2004 +0000
     1.2 +++ b/.hgtags	Thu Feb 10 13:17:10 2005 +0000
     1.3 @@ -1,6 +1,11 @@
     1.4 +42882b3e0dda89f3a8ec00da568f86e9b3c230f1 RELEASE-2.0.0
     1.5 +475a162b66e2c19b1e9468b234a4ba705334905e RELEASE-2.0.1
     1.6 +dc2f08429f17e6614fd2f1ab88cc09ca0a850f32 RELEASE-2.0.2
     1.7 +6e1bbc13911751efa0b1c018425c1b085820fa02 RELEASE-2.0.3
     1.8 +fb875591fd72e15c31879c0e9034d99b80225595 RELEASE-2.0.4
     1.9  487b2ee37d1cecb5f3e7a546b05ad097a0226f2f beta1
    1.10  3d330e41f41ce1bc118c02346e18949ad5d67f6b latest-semistable
    1.11  30c521db4c71960b0cf1d9c9e1b658e77b535a3e latest-stable
    1.12 -7ae55a8c64e4eafacc6907232fa0f45a5c15becb semistable
    1.13 +9afec5bc14aeb197ef37ea54a57eacd427463fc3 semistable
    1.14  30c521db4c71960b0cf1d9c9e1b658e77b535a3e split-1.0
    1.15  3d330e41f41ce1bc118c02346e18949ad5d67f6b split-1.1
     2.1 --- a/.rootkeys	Fri Aug 06 12:20:20 2004 +0000
     2.2 +++ b/.rootkeys	Thu Feb 10 13:17:10 2005 +0000
     2.3 @@ -2,23 +2,26 @@ 3ddb6b0bKlMz_dz-M59a1mkUa1lASw BitKeeper
     2.4  3eba336c4BUxP3H1DjQl8sInORf1Yw BitKeeper/etc/gone
     2.5  3ddb6b0buTaC5zg1_a8FoAR9FWi_mw BitKeeper/etc/ignore
     2.6  3ddb79c9_hgSp-gsQm8HqWM_9W3B_A BitKeeper/etc/logging_ok
     2.7 +4177dbbfqsi01p2zgZa0geUOgScONw COPYING
     2.8  3eb788d6Kleck_Cut0ouGneviGzliQ Makefile
     2.9  3f5ef5a24IaQasQE2tyMxrfxskMmvw README
    2.10 -3f5ef5a2l4kfBYSQTUaOyyD76WROZQ README.CD
    2.11 -3f69d8abYB1vMyD_QVDvzxy5Zscf1A TODO
    2.12 -405ef604hIZH5pGi2uwlrlSvUMrutw docs/HOWTOs/Console-HOWTO
    2.13 -4083e798FbE1MIsQaIYvjnx1uvFhBg docs/HOWTOs/Sched-HOWTO
    2.14 -40083bb4LVQzRqA3ABz0__pPhGNwtA docs/HOWTOs/VBD-HOWTO
    2.15 -4021053fmeFrEyPHcT8JFiDpLNgtHQ docs/HOWTOs/Xen-HOWTO
    2.16 -4022a73cgxX1ryj1HgS-IwwB6NUi2A docs/HOWTOs/XenDebugger-HOWTO
    2.17 +41880852AtdVfSsfKGtrLdajX1vEXQ buildconfigs/Rules.mk
    2.18 +41880852oSxvHJSmnzI6hlpFvHuQqQ buildconfigs/mk.linux-2.4-xen0
    2.19 +41880852YWbPAO-cofTsGkFW1x7tGw buildconfigs/mk.linux-2.4-xenU
    2.20 +41880852Cwk_14PhDA9XZToJ5B2iMQ buildconfigs/mk.linux-2.6-xen0
    2.21 +41880852siMCKilMpoBLtpP_bhYC2Q buildconfigs/mk.linux-2.6-xenU
    2.22 +4188d881_D8HpHnhHabA46_ycKwQyw buildconfigs/mk.netbsd-2.0-xenU
    2.23  3f9e7d53iC47UnlfORp9iC1vai6kWw docs/Makefile
    2.24 -3f9e7d60PWZJeVh5xdnk0nLUdxlqEA docs/eps/xenlogo.eps
    2.25 -3f9e7d63lTwQbp2fnx7yY93epWS-eQ docs/figs/dummy
    2.26 -3f9e7d564bWFB-Czjv1qdmE6o0GqNg docs/interface.tex
    2.27 -3f9e7d58t7N6hjjBMxSn-NMxBphchA docs/style.tex
    2.28 -410144afnSd2Yw68AHGO5gXu2m3y6A docs/user.tex
    2.29 -40d6ccbfKKBq8jE0ula4eHEzBiQuDA docs/xen_config.html
    2.30 -3f9e7d5bz8BwYkNuwyiPVu7JJG441A docs/xenstyle.cls
    2.31 +4187c1c7IWmBinGdI19kL4MuZ6RLbQ docs/check_pkgs
    2.32 +3f9e7d60PWZJeVh5xdnk0nLUdxlqEA docs/figs/xenlogo.eps
    2.33 +418a3248xjIqmNKo0v_XQSfAvlBGFw docs/html.sty
    2.34 +41c0c4116itF389v0CEWcmzue6zJkA docs/misc/VMX_changes.txt
    2.35 +4022a73cgxX1ryj1HgS-IwwB6NUi2A docs/misc/XenDebugger-HOWTO
    2.36 +412f4bd9sm5mCQ8BkrgKcAKZGadq7Q docs/misc/blkif-drivers-explained.txt
    2.37 +40d6ccbfKKBq8jE0ula4eHEzBiQuDA docs/misc/xen_config.html
    2.38 +410a4c2bAO_m_l4RsiiPHnZ4ixHWbQ docs/misc/xend.tex
    2.39 +3f9e7d564bWFB-Czjv1qdmE6o0GqNg docs/src/interface.tex
    2.40 +410144afnSd2Yw68AHGO5gXu2m3y6A docs/src/user.tex
    2.41  3f815144d1vI2777JI-dO4wk49Iw7g extras/mini-os/Makefile
    2.42  3f815144zTnCV5591ulIJQrpe5b-5Q extras/mini-os/README
    2.43  3f815144wiiDekmfMl9LIPIvhR83Uw extras/mini-os/entry.S
    2.44 @@ -41,217 +44,496 @@ 3f815145AYE58Kpmsj5U7oHDpVDZJA extras/mi
    2.45  3f815145CB8XdPUqsmhAjSDFuwOoqA extras/mini-os/mm.c
    2.46  3f815145vGYx1WY79voKkZB9yKwJKQ extras/mini-os/time.c
    2.47  3f815145xlKBAQmal9oces3G_Mvxqw extras/mini-os/traps.c
    2.48 -3e5a4e6589G-U42lFKs43plskXoFxQ linux-2.4.26-xen-sparse/Makefile
    2.49 -3e5a4e65IEPjnWPZ5w3TxS5scV8Ewg linux-2.4.26-xen-sparse/arch/xen/Makefile
    2.50 -3e5a4e65n-KhsEAs-A4ULiStBp-r6w linux-2.4.26-xen-sparse/arch/xen/boot/Makefile
    2.51 -3e5a4e65OV_j_DBtjzt5vej771AJsA linux-2.4.26-xen-sparse/arch/xen/config.in
    2.52 -40648526SxcA4lGIHB_k7ID8VlRSzw linux-2.4.26-xen-sparse/arch/xen/defconfig-xen0
    2.53 -40c73c77QesbL7eIvG-fJGAtVwhGRg linux-2.4.26-xen-sparse/arch/xen/defconfig-xenU
    2.54 -3e6377f5xwPfYZkPHPrDbEq1PRN7uQ linux-2.4.26-xen-sparse/arch/xen/drivers/balloon/Makefile
    2.55 -3e6377f8Me8IqtvEhb70XFgOvqQH7A linux-2.4.26-xen-sparse/arch/xen/drivers/balloon/balloon.c
    2.56 -4083dc16z0jvZEH4PiVDbDRreaNp6w linux-2.4.26-xen-sparse/arch/xen/drivers/blkif/Makefile
    2.57 -4083dc16KQus88a4U3uCV6qVCA6_8Q linux-2.4.26-xen-sparse/arch/xen/drivers/blkif/backend/Makefile
    2.58 -4075806dI5kfeMD5RV-DA0PYoThx_w linux-2.4.26-xen-sparse/arch/xen/drivers/blkif/frontend/Makefile
    2.59 -4075806d4-j7vN0Mn0bklI1cRUX1vQ linux-2.4.26-xen-sparse/arch/xen/drivers/blkif/frontend/common.h
    2.60 -4075806d3fJqqDC1pYYPTZPc575iKg linux-2.4.26-xen-sparse/arch/xen/drivers/blkif/frontend/main.c
    2.61 -4075806dibjCcfuXv6CINMhxWTw3jQ linux-2.4.26-xen-sparse/arch/xen/drivers/blkif/frontend/vbd.c
    2.62 -3e5a4e65G3e2s0ghPMgiJ-gBTUJ0uQ linux-2.4.26-xen-sparse/arch/xen/drivers/console/Makefile
    2.63 -3e5a4e656nfFISThfbyXQOA6HN6YHw linux-2.4.26-xen-sparse/arch/xen/drivers/dom0/Makefile
    2.64 -40420a6ebRqDjufoN1WSJvolEW2Wjw linux-2.4.26-xen-sparse/arch/xen/drivers/evtchn/Makefile
    2.65 -4083dc16-Kd5y9psK_yk161sme5j5Q linux-2.4.26-xen-sparse/arch/xen/drivers/netif/Makefile
    2.66 -4083dc16UmHXxS9g_UFVnkUpN-oP2Q linux-2.4.26-xen-sparse/arch/xen/drivers/netif/backend/Makefile
    2.67 -405853f2wg7JXZJNltspMwOZJklxgw linux-2.4.26-xen-sparse/arch/xen/drivers/netif/frontend/Makefile
    2.68 -3e5a4e65lWzkiPXsZdzPt2RNnJGG1g linux-2.4.26-xen-sparse/arch/xen/kernel/Makefile
    2.69 -3e5a4e65_hqfuxtGG8IUy6wRM86Ecg linux-2.4.26-xen-sparse/arch/xen/kernel/entry.S
    2.70 -3e5a4e65Hy_1iUvMTPsNqGNXd9uFpg linux-2.4.26-xen-sparse/arch/xen/kernel/head.S
    2.71 -3e5a4e65RMGcuA-HCn3-wNx3fFQwdg linux-2.4.26-xen-sparse/arch/xen/kernel/i386_ksyms.c
    2.72 -3e5a4e653U6cELGv528IxOLHvCq8iA linux-2.4.26-xen-sparse/arch/xen/kernel/irq.c
    2.73 -3e5a4e65muT6SU3ck47IP87Q7Ti5hA linux-2.4.26-xen-sparse/arch/xen/kernel/ldt.c
    2.74 -4051db95N9N99FjsRwi49YKUNHWI8A linux-2.4.26-xen-sparse/arch/xen/kernel/pci-pc.c
    2.75 -3e5a4e65IGt3WwQDNiL4h-gYWgNTWQ linux-2.4.26-xen-sparse/arch/xen/kernel/process.c
    2.76 -3e5a4e66tR-qJMLj3MppcKqmvuI2XQ linux-2.4.26-xen-sparse/arch/xen/kernel/setup.c
    2.77 -3e5a4e66fWSTagLGU2P8BGFGRjhDiw linux-2.4.26-xen-sparse/arch/xen/kernel/signal.c
    2.78 -3e5a4e66N__lUXNwzQ-eADRzK9LXuQ linux-2.4.26-xen-sparse/arch/xen/kernel/time.c
    2.79 -3e5a4e66aHCbQ_F5QZ8VeyikLmuRZQ linux-2.4.26-xen-sparse/arch/xen/kernel/traps.c
    2.80 -3e5a4e66-9_NczrVMbuQkoSLyXckIw linux-2.4.26-xen-sparse/arch/xen/lib/Makefile
    2.81 -3e5a4e6637ZDk0BvFEC-aFQs599-ng linux-2.4.26-xen-sparse/arch/xen/lib/delay.c
    2.82 -3e5a4e66croVgpcJyJuF2ycQw0HuJw linux-2.4.26-xen-sparse/arch/xen/mm/Makefile
    2.83 -3e5a4e66l8Q5Tv-6B3lQIRmaVbFPzg linux-2.4.26-xen-sparse/arch/xen/mm/fault.c
    2.84 -3e5a4e661gLzzff25pJooKIIWe7IWg linux-2.4.26-xen-sparse/arch/xen/mm/init.c
    2.85 -3f0bed43UUdQichXAiVNrjV-y2Kzcg linux-2.4.26-xen-sparse/arch/xen/mm/ioremap.c
    2.86 -3e5a4e66qRlSTcjafidMB6ulECADvg linux-2.4.26-xen-sparse/arch/xen/vmlinux.lds
    2.87 -3e5a4e66mrtlmV75L1tjKDg8RaM5gA linux-2.4.26-xen-sparse/drivers/block/ll_rw_blk.c
    2.88 -40d70c24-Dy2HUMrwSZagfXvAPnI4w linux-2.4.26-xen-sparse/drivers/char/Makefile
    2.89 -3f108aeaLcGDgQdFAANLTUEid0a05w linux-2.4.26-xen-sparse/drivers/char/mem.c
    2.90 -3e5a4e66rw65CxyolW9PKz4GG42RcA linux-2.4.26-xen-sparse/drivers/char/tty_io.c
    2.91 -40c9c0c1pPwYE3-4i-oI3ubUu7UgvQ linux-2.4.26-xen-sparse/drivers/scsi/aic7xxx/Makefile
    2.92 -3e5a4e669uzIE54VwucPYtGwXLAbzA linux-2.4.26-xen-sparse/fs/exec.c
    2.93 -3e5a4e66wbeCpsJgVf_U8Jde-CNcsA linux-2.4.26-xen-sparse/include/asm-xen/bugs.h
    2.94 -3e5a4e66HdSkvIV6SJ1evG_xmTmXHA linux-2.4.26-xen-sparse/include/asm-xen/desc.h
    2.95 -3e5a4e66SYp_UpAVcF8Lc1wa3Qtgzw linux-2.4.26-xen-sparse/include/asm-xen/fixmap.h
    2.96 -406aeeaaQvl4RNtmd9hDEugBURbFpQ linux-2.4.26-xen-sparse/include/asm-xen/highmem.h
    2.97 -3e5a4e67YtcyDLQsShhCfQwPSELfvA linux-2.4.26-xen-sparse/include/asm-xen/hw_irq.h
    2.98 -4060044fVx7-tokvNLKBf_6qBB4lqQ linux-2.4.26-xen-sparse/include/asm-xen/io.h
    2.99 -3e5a4e673p7PEOyHFm3nHkYX6HQYBg linux-2.4.26-xen-sparse/include/asm-xen/irq.h
   2.100 -40d70c240tW7TWArl1VUgIFH2nVO1A linux-2.4.26-xen-sparse/include/asm-xen/keyboard.h
   2.101 -3e5a4e678ddsQOpbSiRdy1GRcDc9WA linux-2.4.26-xen-sparse/include/asm-xen/mmu_context.h
   2.102 -40d06e5b2YWInUX1Xv9amVANwd_2Xg linux-2.4.26-xen-sparse/include/asm-xen/module.h
   2.103 -3f8707e7ZmZ6TxyX0ZUEfvhA2Pb_xQ linux-2.4.26-xen-sparse/include/asm-xen/msr.h
   2.104 -3e5a4e67mnQfh-R8KcQCaVo2Oho6yg linux-2.4.26-xen-sparse/include/asm-xen/page.h
   2.105 -409ba2e7ZfV5hqTvIzxLtpClnxtIzg linux-2.4.26-xen-sparse/include/asm-xen/pci.h
   2.106 -3e5a4e67uTYU5oEnIDjxuaez8njjqg linux-2.4.26-xen-sparse/include/asm-xen/pgalloc.h
   2.107 -3e5a4e67X7JyupgdYkgDX19Huj2sAw linux-2.4.26-xen-sparse/include/asm-xen/pgtable-2level.h
   2.108 -3e5a4e67gr4NLGtQ5CvSLimMYZlkOA linux-2.4.26-xen-sparse/include/asm-xen/pgtable.h
   2.109 -3e5a4e676uK4xErTBDH6XJREn9LSyg linux-2.4.26-xen-sparse/include/asm-xen/processor.h
   2.110 -3e5a4e67AJPjW-zL7p-xWuA6IVeH1g linux-2.4.26-xen-sparse/include/asm-xen/ptrace.h
   2.111 -3e5a4e68uJz-xI0IBVMD7xRLQKJDFg linux-2.4.26-xen-sparse/include/asm-xen/segment.h
   2.112 -3e5a4e68Nfdh6QcOKUTGCaYkf2LmYA linux-2.4.26-xen-sparse/include/asm-xen/smp.h
   2.113 -4062f7e2PzFOUGT0PaE7A0VprTU3JQ linux-2.4.26-xen-sparse/include/asm-xen/synch_bitops.h
   2.114 -3e5a4e68mTr0zcp9SXDbnd-XLrrfxw linux-2.4.26-xen-sparse/include/asm-xen/system.h
   2.115 -3f1056a9L_kqHcFheV00KbKBzv9j5w linux-2.4.26-xen-sparse/include/asm-xen/vga.h
   2.116 -40659defgWA92arexpMGn8X3QMDj3w linux-2.4.26-xen-sparse/include/asm-xen/xor.h
   2.117 -3f056927gMHl7mWB89rb73JahbhQIA linux-2.4.26-xen-sparse/include/linux/blk.h
   2.118 -401c0590D_kwJDU59X8NyvqSv_Cl2A linux-2.4.26-xen-sparse/include/linux/sched.h
   2.119 -40a248afgI0_JKthdYAe8beVfXSTpQ linux-2.4.26-xen-sparse/include/linux/skbuff.h
   2.120 -401c0592pLrp_aCbQRo9GXiYQQaVVA linux-2.4.26-xen-sparse/include/linux/timer.h
   2.121 -3f9d4b44247udoqWEgFkaHiWv6Uvyg linux-2.4.26-xen-sparse/kernel/time.c
   2.122 -401c059bjLBFYHRD4Py2uM3eA1D4zQ linux-2.4.26-xen-sparse/kernel/timer.c
   2.123 -3e6e7c1efbQe93xCvOpOVCnXTMmQ5w linux-2.4.26-xen-sparse/mkbuildtree
   2.124 -406aeeafkrnCuIVWLFv3kfn4uAD5Eg linux-2.4.26-xen-sparse/mm/highmem.c
   2.125 -3e5a4e68GxCIaFH4sy01v1wjapetaA linux-2.4.26-xen-sparse/mm/memory.c
   2.126 -3f108af5VxPkLv13tXpXgoRKALQtXQ linux-2.4.26-xen-sparse/mm/mprotect.c
   2.127 -3e5a4e681xMPdF9xCMwpyfuYMySU5g linux-2.4.26-xen-sparse/mm/mremap.c
   2.128 -409ba2e7akOFqQUg6Qyg2s28xcXiMg linux-2.4.26-xen-sparse/mm/page_alloc.c
   2.129 -3e5a4e683HKVU-sxtagrDasRB8eBVw linux-2.4.26-xen-sparse/mm/swapfile.c
   2.130 -40f562372u3A7_kfbYYixPHJJxYUxA linux-2.6.7-xen-sparse/arch/xen/Kconfig
   2.131 -40f56237utH41NPukqHksuNf29IC9A linux-2.6.7-xen-sparse/arch/xen/Kconfig.drivers
   2.132 -40f56237penAAlWVBVDpeQZNFIg8CA linux-2.6.7-xen-sparse/arch/xen/Makefile
   2.133 -40f56237JTc60m1FRlUxkUaGSQKrNw linux-2.6.7-xen-sparse/arch/xen/boot/Makefile
   2.134 -40f56237hRxbacU_3PdoAl6DjZ3Jnw linux-2.6.7-xen-sparse/arch/xen/configs/xen0_defconfig
   2.135 -40f56237wubfjJKlfIzZlI3ZM2VgGA linux-2.6.7-xen-sparse/arch/xen/configs/xenU_defconfig
   2.136 -40f56237Mta0yHNaMS_qtM2rge0qYA linux-2.6.7-xen-sparse/arch/xen/i386/Kconfig
   2.137 -40f56238u2CJdXNpjsZgHBxeVyY-2g linux-2.6.7-xen-sparse/arch/xen/i386/Makefile
   2.138 -40f56238eczveJ86k_4hNxCLRQIF-g linux-2.6.7-xen-sparse/arch/xen/i386/kernel/Makefile
   2.139 -40f56238rXVTJQKbBuXXLH52qEArcg linux-2.6.7-xen-sparse/arch/xen/i386/kernel/cpu/Makefile
   2.140 -40f562385s4lr6Zg92gExe7UQ4A76Q linux-2.6.7-xen-sparse/arch/xen/i386/kernel/cpu/common.c
   2.141 -40f56238XDtHSijkAFlbv1PT8Bhw_Q linux-2.6.7-xen-sparse/arch/xen/i386/kernel/entry.S
   2.142 -40f56238bnvciAuyzAiMkdzGErYt1A linux-2.6.7-xen-sparse/arch/xen/i386/kernel/head.S
   2.143 -40f58a0d31M2EkuPbG94ns_nOi0PVA linux-2.6.7-xen-sparse/arch/xen/i386/kernel/i386_ksyms.c
   2.144 -40faa751_zbZlAmLyQgCXdYekVFdWA linux-2.6.7-xen-sparse/arch/xen/i386/kernel/ioport.c
   2.145 -40f562382aC3_Gt4RG-4ZsfvDRUg3Q linux-2.6.7-xen-sparse/arch/xen/i386/kernel/irq.c
   2.146 -40f56238ue3YRsK52HG7iccNzP1AwQ linux-2.6.7-xen-sparse/arch/xen/i386/kernel/ldt.c
   2.147 -4107adf1cNtsuOxOB4T6paAoY2R2PA linux-2.6.7-xen-sparse/arch/xen/i386/kernel/pci-dma.c
   2.148 -40f56238a8iOVDEoostsbun_sy2i4g linux-2.6.7-xen-sparse/arch/xen/i386/kernel/process.c
   2.149 -40f56238YQIJoYG2ehDGEcdTgLmGbg linux-2.6.7-xen-sparse/arch/xen/i386/kernel/setup.c
   2.150 -40f56238nWMQg7CKbyTy0KJNvCzbtg linux-2.6.7-xen-sparse/arch/xen/i386/kernel/signal.c
   2.151 -40f56238UL9uv78ODDzMwLL9yryeFw linux-2.6.7-xen-sparse/arch/xen/i386/kernel/sysenter.c
   2.152 -40f56238qVGkpO_ycnQA8k03kQzAgA linux-2.6.7-xen-sparse/arch/xen/i386/kernel/time.c
   2.153 -40f56238NzTgeO63RGoxHrW5NQeO3Q linux-2.6.7-xen-sparse/arch/xen/i386/kernel/timers/Makefile
   2.154 -40f56238BMqG5PuSHufpjbvp_helBw linux-2.6.7-xen-sparse/arch/xen/i386/kernel/timers/timer_tsc.c
   2.155 -40f562389xNa78YBZciUibQjyRU_Lg linux-2.6.7-xen-sparse/arch/xen/i386/kernel/traps.c
   2.156 -40f56238qASEI_IOhCKWNuwFKNZrKQ linux-2.6.7-xen-sparse/arch/xen/i386/kernel/vmlinux.lds.S
   2.157 -40f56238JypKAUG01ZojFwH7qnZ5uA linux-2.6.7-xen-sparse/arch/xen/i386/kernel/vsyscall.S
   2.158 -40f56238wi6AdNQjm0RT57bSkwb6hg linux-2.6.7-xen-sparse/arch/xen/i386/kernel/vsyscall.lds
   2.159 -40f56238a3w6-byOzexIlMgni76Lcg linux-2.6.7-xen-sparse/arch/xen/i386/mm/Makefile
   2.160 -40f56238ILx8xlbywNbzTdv5Zr4xXQ linux-2.6.7-xen-sparse/arch/xen/i386/mm/fault.c
   2.161 -40f562383SKvDStdtrvzr5fyCbW4rw linux-2.6.7-xen-sparse/arch/xen/i386/mm/hypervisor.c
   2.162 -40f56239xcNylAxuGsQHwi1AyMLV8w linux-2.6.7-xen-sparse/arch/xen/i386/mm/init.c
   2.163 -41062ab7CjxC1UBaFhOMWWdhHkIUyg linux-2.6.7-xen-sparse/arch/xen/i386/mm/ioremap.c
   2.164 -40f5623906UYHv1rsVUeRc0tFT0dWw linux-2.6.7-xen-sparse/arch/xen/i386/mm/pgtable.c
   2.165 -4107adf12ndy94MidCaivDibJ3pPAg linux-2.6.7-xen-sparse/arch/xen/i386/pci/Makefile
   2.166 -4107adf1WcCgkhsdLTRGX52cOG1vJg linux-2.6.7-xen-sparse/arch/xen/i386/pci/direct.c
   2.167 -4107adf1s5u6249DNPUViX1YNagbUQ linux-2.6.7-xen-sparse/arch/xen/i386/pci/irq.c
   2.168 -40f56239zOksGg_H4XD4ye6iZNtoZA linux-2.6.7-xen-sparse/arch/xen/kernel/Makefile
   2.169 -40f56239bvOjuuuViZ0XMlNiREFC0A linux-2.6.7-xen-sparse/arch/xen/kernel/ctrl_if.c
   2.170 -40f56239pYRq5yshPTkv3ujXKc8K6g linux-2.6.7-xen-sparse/arch/xen/kernel/empty.c
   2.171 -40f56238xFQe9T7M_U_FItM-bZIpLw linux-2.6.7-xen-sparse/arch/xen/kernel/evtchn.c
   2.172 -4110f478aeQWllIN7J4kouAHiAqrPw linux-2.6.7-xen-sparse/arch/xen/kernel/fixup.c
   2.173 -40f56239sFcjHiIRmnObRIDF-zaeKQ linux-2.6.7-xen-sparse/arch/xen/kernel/process.c
   2.174 -40f562392LBhwmOxVPsYdkYXMxI_ZQ linux-2.6.7-xen-sparse/arch/xen/kernel/reboot.c
   2.175 -3f68905c5eiA-lBMQSvXLMWS1ikDEA linux-2.6.7-xen-sparse/arch/xen/kernel/xen_proc.c
   2.176 -4108f5c1WfTIrs0HZFeV39sttekCTw linux-2.6.7-xen-sparse/drivers/char/mem.c
   2.177 -4111308bZAIzwf_Kzu6x1TZYZ3E0_Q linux-2.6.7-xen-sparse/drivers/char/tty_io.c
   2.178 -40f56239Dp_vMTgz8TEbvo1hjHGc3w linux-2.6.7-xen-sparse/drivers/xen/Makefile
   2.179 -410d0893otFGghmv4dUXDUBBdY5aIA linux-2.6.7-xen-sparse/drivers/xen/blkback/Makefile
   2.180 -4087cf0d1XgMkooTZAiJS6NrcpLQNQ linux-2.6.7-xen-sparse/drivers/xen/blkback/blkback.c
   2.181 -4087cf0dZadZ8r6CEt4fNN350Yle3A linux-2.6.7-xen-sparse/drivers/xen/blkback/common.h
   2.182 -4087cf0dxlh29iw0w-9rxOCEGCjPcw linux-2.6.7-xen-sparse/drivers/xen/blkback/control.c
   2.183 -4087cf0dbuoH20fMjNZjcgrRK-1msQ linux-2.6.7-xen-sparse/drivers/xen/blkback/interface.c
   2.184 -4087cf0dk97tacDzxfByWV7JifUYqA linux-2.6.7-xen-sparse/drivers/xen/blkback/vbd.c
   2.185 -40f56239Sfle6wGv5FS0wjS_HI150A linux-2.6.7-xen-sparse/drivers/xen/blkfront/Kconfig
   2.186 -40f562395atl9x4suKGhPkjqLOXESg linux-2.6.7-xen-sparse/drivers/xen/blkfront/Makefile
   2.187 -40f56239-JNIaTzlviVJohVdoYOUpw linux-2.6.7-xen-sparse/drivers/xen/blkfront/blkfront.c
   2.188 -40f56239y9naBTXe40Pi2J_z3p-d1g linux-2.6.7-xen-sparse/drivers/xen/blkfront/block.h
   2.189 -40f56239BVfPsXBiWQitXgDRtOsiqg linux-2.6.7-xen-sparse/drivers/xen/blkfront/vbd.c
   2.190 -40f56239fsLjvtD8YBRAWphps4FDjg linux-2.6.7-xen-sparse/drivers/xen/console/Makefile
   2.191 -3e5a4e651TH-SXHoufurnWjgl5bfOA linux-2.6.7-xen-sparse/drivers/xen/console/console.c
   2.192 -40f56239KYxO0YabhPzCTeUuln-lnA linux-2.6.7-xen-sparse/drivers/xen/evtchn/Makefile
   2.193 -40f56239DoibTX6R-ZYd3QTXAB8_TA linux-2.6.7-xen-sparse/drivers/xen/evtchn/evtchn.c
   2.194 -410a9817HEVJvred5Oy_uKH3HFJC5Q linux-2.6.7-xen-sparse/drivers/xen/netback/Makefile
   2.195 -4097ba831lpGeLlPg-bfV8XarVVuoQ linux-2.6.7-xen-sparse/drivers/xen/netback/common.h
   2.196 -4097ba83wvv8yi5P5xugCUBAdb6O-A linux-2.6.7-xen-sparse/drivers/xen/netback/control.c
   2.197 -4097ba83byY5bTSugJGZ1exTxIcMKw linux-2.6.7-xen-sparse/drivers/xen/netback/interface.c
   2.198 -4087cf0dGmSbFhFZyIZBJzvqxY-qBw linux-2.6.7-xen-sparse/drivers/xen/netback/netback.c
   2.199 -40f56239lrg_Ob0BJ8WBFS1zeg2CYw linux-2.6.7-xen-sparse/drivers/xen/netfront/Kconfig
   2.200 -40f56239Wd4k_ycG_mFsSO1r5xKdtQ linux-2.6.7-xen-sparse/drivers/xen/netfront/Makefile
   2.201 -405853f6nbeazrNyEWNHBuoSg2PiPA linux-2.6.7-xen-sparse/drivers/xen/netfront/netfront.c
   2.202 -4108f5c1ppFXVpQzCOAZ6xXYubsjKA linux-2.6.7-xen-sparse/drivers/xen/privcmd/Makefile
   2.203 -3e5a4e65IUfzzMu2kZFlGEB8-rpTaA linux-2.6.7-xen-sparse/drivers/xen/privcmd/privcmd.c
   2.204 -40f56239YAjS52QG2FIAQpHDZAdGHg linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/desc.h
   2.205 -4107adf1E5O4ztGHNGMzCCNhcvqNow linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/dma-mapping.h
   2.206 -40f5623anSzpuEHgiNmQ56fIRfCoaQ linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/e820.h
   2.207 -40f5623akIoBsQ3KxSB2kufkbgONXQ linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/fixmap.h
   2.208 -40f5623aJVXQwpJMOLE99XgvGsfQ8Q linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/io.h
   2.209 -40f5623am9BzluYFuV6EQfTd-so3dA linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/mach-xen/do_timer.h
   2.210 -40f5623adZQ1IZGPxbDXONjyZGYuTA linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/mach-xen/io_ports.h
   2.211 -40f5623aKXkBBxgpLx2NcvkncQ1Yyw linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/mach-xen/irq_vectors.h
   2.212 -40f5623aMQZoYuf4ml9v69N3gu8ing linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/mach-xen/mach_mpspec.h
   2.213 -40f5623a8LroVMnZ5YRzJJmIc-zHlw linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/mach-xen/mach_reboot.h
   2.214 -40f5623an3wOvFKmpIvqSxQfWzklVQ linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/mach-xen/mach_resources.h
   2.215 -40f5623ayR1vnzfF__htza35a8Ft-g linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/mach-xen/mach_time.h
   2.216 -40f5623a4YdRdVzYWJzOOoqe8mnrXA linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/mach-xen/mach_timer.h
   2.217 -40f5623aDLxmbOtUHvkWztKjAO4EjA linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/mach-xen/mach_traps.h
   2.218 -41062ab7HMSSuaUv3_Z4agLpjSO88A linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/mach-xen/pci-functions.h
   2.219 -40f5623aDMCsWOFO0jktZ4e8sjwvEg linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/mach-xen/setup_arch_post.h
   2.220 -40f5623arsFXkGdPvIqvFi3yFXGR0Q linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/mach-xen/setup_arch_pre.h
   2.221 -40f5623aFTyFTR-vdiA-KaGxk5JOKQ linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/msr.h
   2.222 -40f5623adgjZq9nAgCt0IXdWl7udSA linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/page.h
   2.223 -40f5623a54NuG-7qHihGYmw4wWQnMA linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/param.h
   2.224 -40f5623atCokYc2uCysSJ8jFO8TEsw linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/pgalloc.h
   2.225 -40f5623aEToIXouJgO-ao5d5pcEt1w linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/pgtable-2level.h
   2.226 -40f5623aCCXRPlGpNthVXstGz9ZV3A linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/pgtable.h
   2.227 -40f5623aPCkQQfPtJSooGdhcatrvnQ linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/processor.h
   2.228 -40f5623bvhcUmESJrtcII6Bmd61b3w linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/ptrace.h
   2.229 -40f5623bzLvxr7WoJIxVf2OH4rCBJg linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/segment.h
   2.230 -40f5623bG_LzgG6-qwk292nTc5Wabw linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/setup.h
   2.231 -40f5623bgzm_9vwxpzJswlAxg298Gg linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/synch_bitops.h
   2.232 -40f5623bVdKP7Dt7qm8twu3NcnGNbA linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/system.h
   2.233 -40f5623bSgGrvrGRpD71K-lIYqaGgg linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/timer.h
   2.234 -40f5623bc8LKPRO09wY5dGDnY_YCpw linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/tlbflush.h
   2.235 -41062ab7uFxnCq-KtPeAm-aV8CicgA linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/vga.h
   2.236 -40f5623bxUbeGjkRrjDguCy_Gm8RLw linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/xor.h
   2.237 -40f5623bYNP7tHE2zX6YQxp9Zq2utQ linux-2.6.7-xen-sparse/include/asm-xen/ctrl_if.h
   2.238 -40f5623b3Eqs8pAc5WpPX8_jTzV2qw linux-2.6.7-xen-sparse/include/asm-xen/evtchn.h
   2.239 -40f5623aGPlsm0u1LTO-NVZ6AGzNRQ linux-2.6.7-xen-sparse/include/asm-xen/hypervisor.h
   2.240 -40f5623cndVUFlkxpf7Lfx7xu8madQ linux-2.6.7-xen-sparse/include/asm-xen/multicall.h
   2.241 -3f108af1ylCIm82H052FVTfXACBHrw linux-2.6.7-xen-sparse/include/asm-xen/proc_cmd.h
   2.242 -3fa8e3f0kBLeE4To2vpdi3cpJbIkbQ linux-2.6.7-xen-sparse/include/asm-xen/suspend.h
   2.243 -3f689063BoW-HWV3auUJ-OqXfcGArw linux-2.6.7-xen-sparse/include/asm-xen/xen_proc.h
   2.244 -40f56a0ddHCSs3501MY4hRf22tctOw linux-2.6.7-xen-sparse/mkbuildtree
   2.245 -410a94a4KT6I6X0LVc7djB39tRDp4g linux-2.6.7-xen-sparse/mm/page_alloc.c
   2.246 -40e1b09db5mN69Ijj0X_Eol-S7dXiw tools/Make.defs
   2.247 +4187ca95_eQN62ugV1zliQcfzXrHnw install.sh
   2.248 +3e5a4e6589G-U42lFKs43plskXoFxQ linux-2.4.29-xen-sparse/Makefile
   2.249 +3e5a4e65IEPjnWPZ5w3TxS5scV8Ewg linux-2.4.29-xen-sparse/arch/xen/Makefile
   2.250 +3e5a4e65n-KhsEAs-A4ULiStBp-r6w linux-2.4.29-xen-sparse/arch/xen/boot/Makefile
   2.251 +3e5a4e65OV_j_DBtjzt5vej771AJsA linux-2.4.29-xen-sparse/arch/xen/config.in
   2.252 +40648526SxcA4lGIHB_k7ID8VlRSzw linux-2.4.29-xen-sparse/arch/xen/defconfig-xen0
   2.253 +40c73c77QesbL7eIvG-fJGAtVwhGRg linux-2.4.29-xen-sparse/arch/xen/defconfig-xenU
   2.254 +3e6377f5xwPfYZkPHPrDbEq1PRN7uQ linux-2.4.29-xen-sparse/arch/xen/drivers/balloon/Makefile
   2.255 +4083dc16z0jvZEH4PiVDbDRreaNp6w linux-2.4.29-xen-sparse/arch/xen/drivers/blkif/Makefile
   2.256 +4083dc16KQus88a4U3uCV6qVCA6_8Q linux-2.4.29-xen-sparse/arch/xen/drivers/blkif/backend/Makefile
   2.257 +4075806dI5kfeMD5RV-DA0PYoThx_w linux-2.4.29-xen-sparse/arch/xen/drivers/blkif/frontend/Makefile
   2.258 +4075806d4-j7vN0Mn0bklI1cRUX1vQ linux-2.4.29-xen-sparse/arch/xen/drivers/blkif/frontend/common.h
   2.259 +4075806dibjCcfuXv6CINMhxWTw3jQ linux-2.4.29-xen-sparse/arch/xen/drivers/blkif/frontend/vbd.c
   2.260 +3e5a4e65G3e2s0ghPMgiJ-gBTUJ0uQ linux-2.4.29-xen-sparse/arch/xen/drivers/console/Makefile
   2.261 +3e5a4e656nfFISThfbyXQOA6HN6YHw linux-2.4.29-xen-sparse/arch/xen/drivers/dom0/Makefile
   2.262 +40420a6ebRqDjufoN1WSJvolEW2Wjw linux-2.4.29-xen-sparse/arch/xen/drivers/evtchn/Makefile
   2.263 +4083dc16-Kd5y9psK_yk161sme5j5Q linux-2.4.29-xen-sparse/arch/xen/drivers/netif/Makefile
   2.264 +4083dc16UmHXxS9g_UFVnkUpN-oP2Q linux-2.4.29-xen-sparse/arch/xen/drivers/netif/backend/Makefile
   2.265 +405853f2wg7JXZJNltspMwOZJklxgw linux-2.4.29-xen-sparse/arch/xen/drivers/netif/frontend/Makefile
   2.266 +41ee5e8b_2rt-qHzbDXtIoBzOli0EA linux-2.4.29-xen-sparse/arch/xen/drivers/usbif/Makefile
   2.267 +41ee5e8bUhF4tH7OoJaVbUxdXqneVw linux-2.4.29-xen-sparse/arch/xen/drivers/usbif/backend/Makefile
   2.268 +41ee5e8bSPpxzhGO6TrY20TegW3cZg linux-2.4.29-xen-sparse/arch/xen/drivers/usbif/frontend/Makefile
   2.269 +3e5a4e65lWzkiPXsZdzPt2RNnJGG1g linux-2.4.29-xen-sparse/arch/xen/kernel/Makefile
   2.270 +3e5a4e65_hqfuxtGG8IUy6wRM86Ecg linux-2.4.29-xen-sparse/arch/xen/kernel/entry.S
   2.271 +3e5a4e65Hy_1iUvMTPsNqGNXd9uFpg linux-2.4.29-xen-sparse/arch/xen/kernel/head.S
   2.272 +3e5a4e65RMGcuA-HCn3-wNx3fFQwdg linux-2.4.29-xen-sparse/arch/xen/kernel/i386_ksyms.c
   2.273 +3e5a4e653U6cELGv528IxOLHvCq8iA linux-2.4.29-xen-sparse/arch/xen/kernel/irq.c
   2.274 +3e5a4e65muT6SU3ck47IP87Q7Ti5hA linux-2.4.29-xen-sparse/arch/xen/kernel/ldt.c
   2.275 +4051db95N9N99FjsRwi49YKUNHWI8A linux-2.4.29-xen-sparse/arch/xen/kernel/pci-pc.c
   2.276 +3e5a4e65IGt3WwQDNiL4h-gYWgNTWQ linux-2.4.29-xen-sparse/arch/xen/kernel/process.c
   2.277 +3e5a4e66tR-qJMLj3MppcKqmvuI2XQ linux-2.4.29-xen-sparse/arch/xen/kernel/setup.c
   2.278 +3e5a4e66fWSTagLGU2P8BGFGRjhDiw linux-2.4.29-xen-sparse/arch/xen/kernel/signal.c
   2.279 +3e5a4e66N__lUXNwzQ-eADRzK9LXuQ linux-2.4.29-xen-sparse/arch/xen/kernel/time.c
   2.280 +3e5a4e66aHCbQ_F5QZ8VeyikLmuRZQ linux-2.4.29-xen-sparse/arch/xen/kernel/traps.c
   2.281 +3e5a4e66-9_NczrVMbuQkoSLyXckIw linux-2.4.29-xen-sparse/arch/xen/lib/Makefile
   2.282 +3e5a4e6637ZDk0BvFEC-aFQs599-ng linux-2.4.29-xen-sparse/arch/xen/lib/delay.c
   2.283 +3e5a4e66croVgpcJyJuF2ycQw0HuJw linux-2.4.29-xen-sparse/arch/xen/mm/Makefile
   2.284 +3e5a4e66l8Q5Tv-6B3lQIRmaVbFPzg linux-2.4.29-xen-sparse/arch/xen/mm/fault.c
   2.285 +3e5a4e661gLzzff25pJooKIIWe7IWg linux-2.4.29-xen-sparse/arch/xen/mm/init.c
   2.286 +3f0bed43UUdQichXAiVNrjV-y2Kzcg linux-2.4.29-xen-sparse/arch/xen/mm/ioremap.c
   2.287 +3e5a4e66qRlSTcjafidMB6ulECADvg linux-2.4.29-xen-sparse/arch/xen/vmlinux.lds
   2.288 +3e5a4e66mrtlmV75L1tjKDg8RaM5gA linux-2.4.29-xen-sparse/drivers/block/ll_rw_blk.c
   2.289 +40d70c24-Dy2HUMrwSZagfXvAPnI4w linux-2.4.29-xen-sparse/drivers/char/Makefile
   2.290 +3f108aeaLcGDgQdFAANLTUEid0a05w linux-2.4.29-xen-sparse/drivers/char/mem.c
   2.291 +3e5a4e66rw65CxyolW9PKz4GG42RcA linux-2.4.29-xen-sparse/drivers/char/tty_io.c
   2.292 +40c9c0c1pPwYE3-4i-oI3ubUu7UgvQ linux-2.4.29-xen-sparse/drivers/scsi/aic7xxx/Makefile
   2.293 +41f97f64nW0wmgLxhwzPTzkF4E5ERA linux-2.4.29-xen-sparse/drivers/usb/hcd.c
   2.294 +3e5a4e669uzIE54VwucPYtGwXLAbzA linux-2.4.29-xen-sparse/fs/exec.c
   2.295 +3e5a4e66wbeCpsJgVf_U8Jde-CNcsA linux-2.4.29-xen-sparse/include/asm-xen/bugs.h
   2.296 +3e5a4e66HdSkvIV6SJ1evG_xmTmXHA linux-2.4.29-xen-sparse/include/asm-xen/desc.h
   2.297 +3e5a4e66SYp_UpAVcF8Lc1wa3Qtgzw linux-2.4.29-xen-sparse/include/asm-xen/fixmap.h
   2.298 +406aeeaaQvl4RNtmd9hDEugBURbFpQ linux-2.4.29-xen-sparse/include/asm-xen/highmem.h
   2.299 +3e5a4e67YtcyDLQsShhCfQwPSELfvA linux-2.4.29-xen-sparse/include/asm-xen/hw_irq.h
   2.300 +4060044fVx7-tokvNLKBf_6qBB4lqQ linux-2.4.29-xen-sparse/include/asm-xen/io.h
   2.301 +3e5a4e673p7PEOyHFm3nHkYX6HQYBg linux-2.4.29-xen-sparse/include/asm-xen/irq.h
   2.302 +40d70c240tW7TWArl1VUgIFH2nVO1A linux-2.4.29-xen-sparse/include/asm-xen/keyboard.h
   2.303 +3e5a4e678ddsQOpbSiRdy1GRcDc9WA linux-2.4.29-xen-sparse/include/asm-xen/mmu_context.h
   2.304 +40d06e5b2YWInUX1Xv9amVANwd_2Xg linux-2.4.29-xen-sparse/include/asm-xen/module.h
   2.305 +3e5a4e67mnQfh-R8KcQCaVo2Oho6yg linux-2.4.29-xen-sparse/include/asm-xen/page.h
   2.306 +409ba2e7ZfV5hqTvIzxLtpClnxtIzg linux-2.4.29-xen-sparse/include/asm-xen/pci.h
   2.307 +3e5a4e67uTYU5oEnIDjxuaez8njjqg linux-2.4.29-xen-sparse/include/asm-xen/pgalloc.h
   2.308 +3e5a4e67X7JyupgdYkgDX19Huj2sAw linux-2.4.29-xen-sparse/include/asm-xen/pgtable-2level.h
   2.309 +3e5a4e67gr4NLGtQ5CvSLimMYZlkOA linux-2.4.29-xen-sparse/include/asm-xen/pgtable.h
   2.310 +3e5a4e676uK4xErTBDH6XJREn9LSyg linux-2.4.29-xen-sparse/include/asm-xen/processor.h
   2.311 +41224663YBCUMX1kVo_HRUtgaHTi7w linux-2.4.29-xen-sparse/include/asm-xen/queues.h
   2.312 +3e5a4e68uJz-xI0IBVMD7xRLQKJDFg linux-2.4.29-xen-sparse/include/asm-xen/segment.h
   2.313 +3e5a4e68Nfdh6QcOKUTGCaYkf2LmYA linux-2.4.29-xen-sparse/include/asm-xen/smp.h
   2.314 +4062f7e2PzFOUGT0PaE7A0VprTU3JQ linux-2.4.29-xen-sparse/include/asm-xen/synch_bitops.h
   2.315 +3e5a4e68mTr0zcp9SXDbnd-XLrrfxw linux-2.4.29-xen-sparse/include/asm-xen/system.h
   2.316 +3f1056a9L_kqHcFheV00KbKBzv9j5w linux-2.4.29-xen-sparse/include/asm-xen/vga.h
   2.317 +40659defgWA92arexpMGn8X3QMDj3w linux-2.4.29-xen-sparse/include/asm-xen/xor.h
   2.318 +3f056927gMHl7mWB89rb73JahbhQIA linux-2.4.29-xen-sparse/include/linux/blk.h
   2.319 +419e0488SBzS3mdUhwgsES5a5e3abA linux-2.4.29-xen-sparse/include/linux/irq.h
   2.320 +4124f66fPHG6yvB_vXmesjvzrJ3yMg linux-2.4.29-xen-sparse/include/linux/mm.h
   2.321 +401c0590D_kwJDU59X8NyvqSv_Cl2A linux-2.4.29-xen-sparse/include/linux/sched.h
   2.322 +40a248afgI0_JKthdYAe8beVfXSTpQ linux-2.4.29-xen-sparse/include/linux/skbuff.h
   2.323 +401c0592pLrp_aCbQRo9GXiYQQaVVA linux-2.4.29-xen-sparse/include/linux/timer.h
   2.324 +3f9d4b44247udoqWEgFkaHiWv6Uvyg linux-2.4.29-xen-sparse/kernel/time.c
   2.325 +401c059bjLBFYHRD4Py2uM3eA1D4zQ linux-2.4.29-xen-sparse/kernel/timer.c
   2.326 +3e6e7c1efbQe93xCvOpOVCnXTMmQ5w linux-2.4.29-xen-sparse/mkbuildtree
   2.327 +406aeeafkrnCuIVWLFv3kfn4uAD5Eg linux-2.4.29-xen-sparse/mm/highmem.c
   2.328 +3e5a4e68GxCIaFH4sy01v1wjapetaA linux-2.4.29-xen-sparse/mm/memory.c
   2.329 +3f108af5VxPkLv13tXpXgoRKALQtXQ linux-2.4.29-xen-sparse/mm/mprotect.c
   2.330 +3e5a4e681xMPdF9xCMwpyfuYMySU5g linux-2.4.29-xen-sparse/mm/mremap.c
   2.331 +409ba2e7akOFqQUg6Qyg2s28xcXiMg linux-2.4.29-xen-sparse/mm/page_alloc.c
   2.332 +3e5a4e683HKVU-sxtagrDasRB8eBVw linux-2.4.29-xen-sparse/mm/swapfile.c
   2.333 +41180721bNns9Na7w1nJ0ZVt8bhUNA linux-2.4.29-xen-sparse/mm/vmalloc.c
   2.334 +41505c57WAd5l1rlfCLNSCpx9J13vA linux-2.4.29-xen-sparse/net/core/skbuff.c
   2.335 +40f562372u3A7_kfbYYixPHJJxYUxA linux-2.6.10-xen-sparse/arch/xen/Kconfig
   2.336 +40f56237utH41NPukqHksuNf29IC9A linux-2.6.10-xen-sparse/arch/xen/Kconfig.drivers
   2.337 +40f56237penAAlWVBVDpeQZNFIg8CA linux-2.6.10-xen-sparse/arch/xen/Makefile
   2.338 +40f56237JTc60m1FRlUxkUaGSQKrNw linux-2.6.10-xen-sparse/arch/xen/boot/Makefile
   2.339 +40f56237hRxbacU_3PdoAl6DjZ3Jnw linux-2.6.10-xen-sparse/arch/xen/configs/xen0_defconfig
   2.340 +40f56237wubfjJKlfIzZlI3ZM2VgGA linux-2.6.10-xen-sparse/arch/xen/configs/xenU_defconfig
   2.341 +40f56237Mta0yHNaMS_qtM2rge0qYA linux-2.6.10-xen-sparse/arch/xen/i386/Kconfig
   2.342 +40f56238u2CJdXNpjsZgHBxeVyY-2g linux-2.6.10-xen-sparse/arch/xen/i386/Makefile
   2.343 +40f56238eczveJ86k_4hNxCLRQIF-g linux-2.6.10-xen-sparse/arch/xen/i386/kernel/Makefile
   2.344 +40f56238rXVTJQKbBuXXLH52qEArcg linux-2.6.10-xen-sparse/arch/xen/i386/kernel/cpu/Makefile
   2.345 +40f562385s4lr6Zg92gExe7UQ4A76Q linux-2.6.10-xen-sparse/arch/xen/i386/kernel/cpu/common.c
   2.346 +41ab440bnpxZdWShZrGgM9pPaz5rmA linux-2.6.10-xen-sparse/arch/xen/i386/kernel/cpu/mtrr/Makefile
   2.347 +41ab440bBKWz-aEOEojU4PAMXe3Ppg linux-2.6.10-xen-sparse/arch/xen/i386/kernel/cpu/mtrr/main.c
   2.348 +40f56238XDtHSijkAFlbv1PT8Bhw_Q linux-2.6.10-xen-sparse/arch/xen/i386/kernel/entry.S
   2.349 +40f56238bnvciAuyzAiMkdzGErYt1A linux-2.6.10-xen-sparse/arch/xen/i386/kernel/head.S
   2.350 +40f58a0d31M2EkuPbG94ns_nOi0PVA linux-2.6.10-xen-sparse/arch/xen/i386/kernel/i386_ksyms.c
   2.351 +40faa751_zbZlAmLyQgCXdYekVFdWA linux-2.6.10-xen-sparse/arch/xen/i386/kernel/ioport.c
   2.352 +41d00d82zN8IfLBRxc7G_i7lbwT3cQ linux-2.6.10-xen-sparse/arch/xen/i386/kernel/irq.c
   2.353 +40f56238ue3YRsK52HG7iccNzP1AwQ linux-2.6.10-xen-sparse/arch/xen/i386/kernel/ldt.c
   2.354 +41d54a76YMCA67S8J-TBT3J62Wx6yA linux-2.6.10-xen-sparse/arch/xen/i386/kernel/microcode.c
   2.355 +4107adf1cNtsuOxOB4T6paAoY2R2PA linux-2.6.10-xen-sparse/arch/xen/i386/kernel/pci-dma.c
   2.356 +40f56238a8iOVDEoostsbun_sy2i4g linux-2.6.10-xen-sparse/arch/xen/i386/kernel/process.c
   2.357 +40f56238YQIJoYG2ehDGEcdTgLmGbg linux-2.6.10-xen-sparse/arch/xen/i386/kernel/setup.c
   2.358 +40f56238nWMQg7CKbyTy0KJNvCzbtg linux-2.6.10-xen-sparse/arch/xen/i386/kernel/signal.c
   2.359 +41811cac4lkCB-fHir6CcxuEJ2pGsQ linux-2.6.10-xen-sparse/arch/xen/i386/kernel/smp.c
   2.360 +41811ca9mbGpqBrZVrUGEiv8CTV3ng linux-2.6.10-xen-sparse/arch/xen/i386/kernel/smpboot.c
   2.361 +40f56238qVGkpO_ycnQA8k03kQzAgA linux-2.6.10-xen-sparse/arch/xen/i386/kernel/time.c
   2.362 +40f56238NzTgeO63RGoxHrW5NQeO3Q linux-2.6.10-xen-sparse/arch/xen/i386/kernel/timers/Makefile
   2.363 +40f56238BMqG5PuSHufpjbvp_helBw linux-2.6.10-xen-sparse/arch/xen/i386/kernel/timers/timer_tsc.c
   2.364 +40f562389xNa78YBZciUibQjyRU_Lg linux-2.6.10-xen-sparse/arch/xen/i386/kernel/traps.c
   2.365 +40f56238JypKAUG01ZojFwH7qnZ5uA linux-2.6.10-xen-sparse/arch/xen/i386/kernel/vsyscall.S
   2.366 +40f56238wi6AdNQjm0RT57bSkwb6hg linux-2.6.10-xen-sparse/arch/xen/i386/kernel/vsyscall.lds
   2.367 +40f56238a3w6-byOzexIlMgni76Lcg linux-2.6.10-xen-sparse/arch/xen/i386/mm/Makefile
   2.368 +40f56238ILx8xlbywNbzTdv5Zr4xXQ linux-2.6.10-xen-sparse/arch/xen/i386/mm/fault.c
   2.369 +4118cc35CbY8rfGVspF5O-7EkXBEAA linux-2.6.10-xen-sparse/arch/xen/i386/mm/highmem.c
   2.370 +40f562383SKvDStdtrvzr5fyCbW4rw linux-2.6.10-xen-sparse/arch/xen/i386/mm/hypervisor.c
   2.371 +40f56239xcNylAxuGsQHwi1AyMLV8w linux-2.6.10-xen-sparse/arch/xen/i386/mm/init.c
   2.372 +41062ab7CjxC1UBaFhOMWWdhHkIUyg linux-2.6.10-xen-sparse/arch/xen/i386/mm/ioremap.c
   2.373 +413b5ab8LIowAnQrEmaOJSdmqm96jQ linux-2.6.10-xen-sparse/arch/xen/i386/mm/pageattr.c
   2.374 +40f5623906UYHv1rsVUeRc0tFT0dWw linux-2.6.10-xen-sparse/arch/xen/i386/mm/pgtable.c
   2.375 +4107adf12ndy94MidCaivDibJ3pPAg linux-2.6.10-xen-sparse/arch/xen/i386/pci/Makefile
   2.376 +4107adf1WcCgkhsdLTRGX52cOG1vJg linux-2.6.10-xen-sparse/arch/xen/i386/pci/direct.c
   2.377 +4107adf1s5u6249DNPUViX1YNagbUQ linux-2.6.10-xen-sparse/arch/xen/i386/pci/irq.c
   2.378 +40f56239zOksGg_H4XD4ye6iZNtoZA linux-2.6.10-xen-sparse/arch/xen/kernel/Makefile
   2.379 +40f56239bvOjuuuViZ0XMlNiREFC0A linux-2.6.10-xen-sparse/arch/xen/kernel/ctrl_if.c
   2.380 +41ab6fa06JdF7jxUsuDcjN3UhuIAxg linux-2.6.10-xen-sparse/arch/xen/kernel/devmem.c
   2.381 +40f56238xFQe9T7M_U_FItM-bZIpLw linux-2.6.10-xen-sparse/arch/xen/kernel/evtchn.c
   2.382 +4110f478aeQWllIN7J4kouAHiAqrPw linux-2.6.10-xen-sparse/arch/xen/kernel/fixup.c
   2.383 +412dfae9eA3_6e6bCGUtg1mj8b56fQ linux-2.6.10-xen-sparse/arch/xen/kernel/gnttab.c
   2.384 +40f562392LBhwmOxVPsYdkYXMxI_ZQ linux-2.6.10-xen-sparse/arch/xen/kernel/reboot.c
   2.385 +414c113396tK1HTVeUalm3u-1DF16g linux-2.6.10-xen-sparse/arch/xen/kernel/skbuff.c
   2.386 +418f90e4lGdeJK9rmbOB1kN-IKSjsQ linux-2.6.10-xen-sparse/arch/xen/kernel/smp.c
   2.387 +3f68905c5eiA-lBMQSvXLMWS1ikDEA linux-2.6.10-xen-sparse/arch/xen/kernel/xen_proc.c
   2.388 +41261688yS8eAyy-7kzG4KBs0xbYCA linux-2.6.10-xen-sparse/drivers/Makefile
   2.389 +4108f5c1WfTIrs0HZFeV39sttekCTw linux-2.6.10-xen-sparse/drivers/char/mem.c
   2.390 +4111308bZAIzwf_Kzu6x1TZYZ3E0_Q linux-2.6.10-xen-sparse/drivers/char/tty_io.c
   2.391 +40f56239Dp_vMTgz8TEbvo1hjHGc3w linux-2.6.10-xen-sparse/drivers/xen/Makefile
   2.392 +41768fbcncpBQf8s2l2-CwoSNIZ9uA linux-2.6.10-xen-sparse/drivers/xen/balloon/Makefile
   2.393 +3e6377f8i5e9eGz7Pw6fQuhuTQ7DQg linux-2.6.10-xen-sparse/drivers/xen/balloon/balloon.c
   2.394 +410d0893otFGghmv4dUXDUBBdY5aIA linux-2.6.10-xen-sparse/drivers/xen/blkback/Makefile
   2.395 +4087cf0d1XgMkooTZAiJS6NrcpLQNQ linux-2.6.10-xen-sparse/drivers/xen/blkback/blkback.c
   2.396 +4087cf0dZadZ8r6CEt4fNN350Yle3A linux-2.6.10-xen-sparse/drivers/xen/blkback/common.h
   2.397 +4087cf0dxlh29iw0w-9rxOCEGCjPcw linux-2.6.10-xen-sparse/drivers/xen/blkback/control.c
   2.398 +4087cf0dbuoH20fMjNZjcgrRK-1msQ linux-2.6.10-xen-sparse/drivers/xen/blkback/interface.c
   2.399 +4087cf0dk97tacDzxfByWV7JifUYqA linux-2.6.10-xen-sparse/drivers/xen/blkback/vbd.c
   2.400 +40f56239Sfle6wGv5FS0wjS_HI150A linux-2.6.10-xen-sparse/drivers/xen/blkfront/Kconfig
   2.401 +40f562395atl9x4suKGhPkjqLOXESg linux-2.6.10-xen-sparse/drivers/xen/blkfront/Makefile
   2.402 +40f56239-JNIaTzlviVJohVdoYOUpw linux-2.6.10-xen-sparse/drivers/xen/blkfront/blkfront.c
   2.403 +40f56239y9naBTXe40Pi2J_z3p-d1g linux-2.6.10-xen-sparse/drivers/xen/blkfront/block.h
   2.404 +40f56239BVfPsXBiWQitXgDRtOsiqg linux-2.6.10-xen-sparse/drivers/xen/blkfront/vbd.c
   2.405 +41a226e0vjAcDXHOnXE5ummcdUD2mg linux-2.6.10-xen-sparse/drivers/xen/blktap/Makefile
   2.406 +41a226e0VeZA1N8tbU6nvJ3OxUcJmw linux-2.6.10-xen-sparse/drivers/xen/blktap/blktap.c
   2.407 +41a226e1k4J5VMLnrYXDWRqElS49YQ linux-2.6.10-xen-sparse/drivers/xen/blktap/blktap.h
   2.408 +41a226e1-A_Hy7utS8vJKaXnH_tzfA linux-2.6.10-xen-sparse/drivers/xen/blktap/blktap_controlmsg.c
   2.409 +41a226e19NoUUTOvs7jumDMRYDIO4Q linux-2.6.10-xen-sparse/drivers/xen/blktap/blktap_datapath.c
   2.410 +41a226e1MNSyWWK5dEVgvSQ5OW0fDA linux-2.6.10-xen-sparse/drivers/xen/blktap/blktap_userdev.c
   2.411 +40f56239fsLjvtD8YBRAWphps4FDjg linux-2.6.10-xen-sparse/drivers/xen/console/Makefile
   2.412 +3e5a4e651TH-SXHoufurnWjgl5bfOA linux-2.6.10-xen-sparse/drivers/xen/console/console.c
   2.413 +40f56239KYxO0YabhPzCTeUuln-lnA linux-2.6.10-xen-sparse/drivers/xen/evtchn/Makefile
   2.414 +40f56239DoibTX6R-ZYd3QTXAB8_TA linux-2.6.10-xen-sparse/drivers/xen/evtchn/evtchn.c
   2.415 +410a9817HEVJvred5Oy_uKH3HFJC5Q linux-2.6.10-xen-sparse/drivers/xen/netback/Makefile
   2.416 +4097ba831lpGeLlPg-bfV8XarVVuoQ linux-2.6.10-xen-sparse/drivers/xen/netback/common.h
   2.417 +4097ba83wvv8yi5P5xugCUBAdb6O-A linux-2.6.10-xen-sparse/drivers/xen/netback/control.c
   2.418 +4097ba83byY5bTSugJGZ1exTxIcMKw linux-2.6.10-xen-sparse/drivers/xen/netback/interface.c
   2.419 +4087cf0dGmSbFhFZyIZBJzvqxY-qBw linux-2.6.10-xen-sparse/drivers/xen/netback/netback.c
   2.420 +40f56239lrg_Ob0BJ8WBFS1zeg2CYw linux-2.6.10-xen-sparse/drivers/xen/netfront/Kconfig
   2.421 +40f56239Wd4k_ycG_mFsSO1r5xKdtQ linux-2.6.10-xen-sparse/drivers/xen/netfront/Makefile
   2.422 +405853f6nbeazrNyEWNHBuoSg2PiPA linux-2.6.10-xen-sparse/drivers/xen/netfront/netfront.c
   2.423 +4108f5c1ppFXVpQzCOAZ6xXYubsjKA linux-2.6.10-xen-sparse/drivers/xen/privcmd/Makefile
   2.424 +3e5a4e65IUfzzMu2kZFlGEB8-rpTaA linux-2.6.10-xen-sparse/drivers/xen/privcmd/privcmd.c
   2.425 +41ee5e8bYDQkjRVKnFn5uFyy0KreCw linux-2.6.10-xen-sparse/drivers/xen/usbback/common.h
   2.426 +41ee5e8bt7xeBUJqG5XJS-ofukdsgA linux-2.6.10-xen-sparse/drivers/xen/usbback/control.c
   2.427 +41ee5e8bSs3BGC7yegM_ek2Tn0Ahvw linux-2.6.10-xen-sparse/drivers/xen/usbback/interface.c
   2.428 +41ee5e8bglvqKvZSY5uJ5JGQejEwyQ linux-2.6.10-xen-sparse/drivers/xen/usbback/usbback.c
   2.429 +41ee5e8ckZ9xVNvu9NHIZDK7JqApmQ linux-2.6.10-xen-sparse/drivers/xen/usbfront/usbfront.c
   2.430 +41ee5e8ck9scpGirfqEZRARbGDyTXA linux-2.6.10-xen-sparse/drivers/xen/usbfront/xhci.h
   2.431 +412f47e4RKD-R5IS5gEXvcT8L4v8gA linux-2.6.10-xen-sparse/include/asm-generic/pgtable.h
   2.432 +40f56239YAjS52QG2FIAQpHDZAdGHg linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/desc.h
   2.433 +4107adf1E5O4ztGHNGMzCCNhcvqNow linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/dma-mapping.h
   2.434 +40f5623akIoBsQ3KxSB2kufkbgONXQ linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/fixmap.h
   2.435 +41979925z1MsKU1SfuuheM1IFDQ_bA linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/floppy.h
   2.436 +4118b6a418gnL6AZsTdglC92YGqYTg linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/highmem.h
   2.437 +40f5623aJVXQwpJMOLE99XgvGsfQ8Q linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/io.h
   2.438 +40f5623aKXkBBxgpLx2NcvkncQ1Yyw linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/mach-xen/irq_vectors.h
   2.439 +40f5623aDMCsWOFO0jktZ4e8sjwvEg linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/mach-xen/setup_arch_post.h
   2.440 +40f5623arsFXkGdPvIqvFi3yFXGR0Q linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/mach-xen/setup_arch_pre.h
   2.441 +41811f07Iri9hrvs97t-baxmhOwWDQ linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/mach-xen/smpboot_hooks.h
   2.442 +4120f807GCO0uqsLqdZj9csxR1Wthw linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/mmu_context.h
   2.443 +40f5623adgjZq9nAgCt0IXdWl7udSA linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/page.h
   2.444 +40f5623a54NuG-7qHihGYmw4wWQnMA linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/param.h
   2.445 +41137cc1kkvg0cg7uxddcEfjL7L67w linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/pci.h
   2.446 +40f5623atCokYc2uCysSJ8jFO8TEsw linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/pgalloc.h
   2.447 +412e01beTwiaC8sYY4XJP8PxLST5CA linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/pgtable-2level-defs.h
   2.448 +40f5623aEToIXouJgO-ao5d5pcEt1w linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/pgtable-2level.h
   2.449 +40f5623aCCXRPlGpNthVXstGz9ZV3A linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/pgtable.h
   2.450 +40f5623aPCkQQfPtJSooGdhcatrvnQ linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/processor.h
   2.451 +412ea0afQL2CAI-f522TbLjLPMibPQ linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/ptrace.h
   2.452 +40f5623bzLvxr7WoJIxVf2OH4rCBJg linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/segment.h
   2.453 +40f5623bG_LzgG6-qwk292nTc5Wabw linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/setup.h
   2.454 +4198c32a8NzmcKVOzKaEJfaQxxiA0A linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/spinlock.h
   2.455 +40f5623bgzm_9vwxpzJswlAxg298Gg linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/synch_bitops.h
   2.456 +40f5623bVdKP7Dt7qm8twu3NcnGNbA linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/system.h
   2.457 +40f5623bc8LKPRO09wY5dGDnY_YCpw linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/tlbflush.h
   2.458 +41062ab7uFxnCq-KtPeAm-aV8CicgA linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/vga.h
   2.459 +40f5623bxUbeGjkRrjDguCy_Gm8RLw linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/xor.h
   2.460 +41af4017PDMuSmMWtSRU5UC9Vylw5g linux-2.6.10-xen-sparse/include/asm-xen/balloon.h
   2.461 +40f5623bYNP7tHE2zX6YQxp9Zq2utQ linux-2.6.10-xen-sparse/include/asm-xen/ctrl_if.h
   2.462 +40f5623b3Eqs8pAc5WpPX8_jTzV2qw linux-2.6.10-xen-sparse/include/asm-xen/evtchn.h
   2.463 +419b4e9367PjTEvdjwavWN12BeBBXg linux-2.6.10-xen-sparse/include/asm-xen/foreign_page.h
   2.464 +412dfaeazclyNDM0cpnp60Yo4xulpQ linux-2.6.10-xen-sparse/include/asm-xen/gnttab.h
   2.465 +40f5623aGPlsm0u1LTO-NVZ6AGzNRQ linux-2.6.10-xen-sparse/include/asm-xen/hypervisor.h
   2.466 +3f108af1ylCIm82H052FVTfXACBHrw linux-2.6.10-xen-sparse/include/asm-xen/linux-public/privcmd.h
   2.467 +3fa8e3f0kBLeE4To2vpdi3cpJbIkbQ linux-2.6.10-xen-sparse/include/asm-xen/linux-public/suspend.h
   2.468 +40f5623cndVUFlkxpf7Lfx7xu8madQ linux-2.6.10-xen-sparse/include/asm-xen/multicall.h
   2.469 +4122466356eIBnC9ot44WSVVIFyhQA linux-2.6.10-xen-sparse/include/asm-xen/queues.h
   2.470 +3f689063BoW-HWV3auUJ-OqXfcGArw linux-2.6.10-xen-sparse/include/asm-xen/xen_proc.h
   2.471 +419b4e93z2S0gR17XTy8wg09JEwAhg linux-2.6.10-xen-sparse/include/linux/gfp.h
   2.472 +419dfc609zbti8rqL60tL2dHXQ_rvQ linux-2.6.10-xen-sparse/include/linux/irq.h
   2.473 +4124f66f4NaKNa0xPiGGykn9QaZk3w linux-2.6.10-xen-sparse/include/linux/skbuff.h
   2.474 +419dfc6awx7w88wk6cG9P3mPidX6LQ linux-2.6.10-xen-sparse/kernel/irq/manage.c
   2.475 +40f56a0ddHCSs3501MY4hRf22tctOw linux-2.6.10-xen-sparse/mkbuildtree
   2.476 +412f46c0LJuKAgSPGoC0Z1DEkLfuLA linux-2.6.10-xen-sparse/mm/memory.c
   2.477 +410a94a4KT6I6X0LVc7djB39tRDp4g linux-2.6.10-xen-sparse/mm/page_alloc.c
   2.478 +41505c572m-s9ATiO1LiD1GPznTTIg linux-2.6.10-xen-sparse/net/core/skbuff.c
   2.479 +413cb1e4zst25MDYjg63Y-NGC5_pLg netbsd-2.0-xen-sparse/Makefile
   2.480 +413cb1e5c_Mkxf_X0zimEhTKI_l4DA netbsd-2.0-xen-sparse/mkbuildtree
   2.481 +413cb1e5kY_Zil7-b0kI6hvCIxBEYg netbsd-2.0-xen-sparse/nbconfig-xen
   2.482 +413cb1e5-58q5doPifcE1Q8ZAgm-JQ netbsd-2.0-xen-sparse/nbmake-xen
   2.483 +413cb3b3Cmp02Gj87f3wwu2W9y0gBg netbsd-2.0-xen-sparse/sys/arch/xen/conf/XEN
   2.484 +413cb3b3aUP9GmUWqHWQ2SRp1qXnqQ netbsd-2.0-xen-sparse/sys/arch/xen/conf/files.xen
   2.485 +413cb3b3pZuLKElEpQwX1C-3hLW4qA netbsd-2.0-xen-sparse/sys/arch/xen/i386/autoconf.c
   2.486 +413cb3b34ui1cCGaSqIeLiBgMp-PDw netbsd-2.0-xen-sparse/sys/arch/xen/i386/gdt.c
   2.487 +413cb3b3i11i2GVGn0YGlRbM3ifbPQ netbsd-2.0-xen-sparse/sys/arch/xen/i386/hypervisor_machdep.c
   2.488 +413cb3b3FgMboWw-Pm3XdbBFSlZl_g netbsd-2.0-xen-sparse/sys/arch/xen/i386/locore.S
   2.489 +413cb3b4ABCSfkHRmbsWfnZNG28nBA netbsd-2.0-xen-sparse/sys/arch/xen/i386/machdep.c
   2.490 +413cb3b4bvVJ7UlliMSH60J4uIb9kA netbsd-2.0-xen-sparse/sys/arch/xen/i386/pmap.c
   2.491 +413cb3b4aKd9SUY-OzUiTF0Gb9ve9w netbsd-2.0-xen-sparse/sys/arch/xen/i386/sys_machdep.c
   2.492 +413cb3b4jUtWl-sP493PvB27o-Iltw netbsd-2.0-xen-sparse/sys/arch/xen/i386/vector.S
   2.493 +413cb3b4ElwwoJEmmzflV0HgK5Qxcg netbsd-2.0-xen-sparse/sys/arch/xen/i386/xen_machdep.c
   2.494 +413cb564XpMxewOF9BCK37BNcDewHQ netbsd-2.0-xen-sparse/sys/arch/xen/include/ctrl_if.h
   2.495 +413cb564rB0n4HPqzYQxBvfR9r-KeQ netbsd-2.0-xen-sparse/sys/arch/xen/include/evtchn.h
   2.496 +413cb3b4k9OVRCxuSdhKt-2baTp_Yg netbsd-2.0-xen-sparse/sys/arch/xen/include/frameasm.h
   2.497 +413cb3b4bRsqiHQLTKEZk4-zOksf8A netbsd-2.0-xen-sparse/sys/arch/xen/include/hypervisor.h
   2.498 +413cb3b4OqY83qI8GztIZGADpvrpSw netbsd-2.0-xen-sparse/sys/arch/xen/include/if_xennetvar.h
   2.499 +413cb3b42GG0LffraTnpZKlSUq57wg netbsd-2.0-xen-sparse/sys/arch/xen/include/pmap.h
   2.500 +41580792kPzxLiPb47k_GDEMSbAbzA netbsd-2.0-xen-sparse/sys/arch/xen/include/xbdvar.h
   2.501 +413cb3b4F0ArkWVBRyspkw7ivfXihg netbsd-2.0-xen-sparse/sys/arch/xen/include/xen.h
   2.502 +413cb3b4ullQud70n4JClwoEEUBh8Q netbsd-2.0-xen-sparse/sys/arch/xen/include/xenfunc.h
   2.503 +413cb3b4y1Ffq8BOhbdSpn-fGmKuEg netbsd-2.0-xen-sparse/sys/arch/xen/include/xenpmap.h
   2.504 +413cb3b4uXOFcT56QuLt1fcDrB-4Zg netbsd-2.0-xen-sparse/sys/arch/xen/x86/bus_space.c
   2.505 +413cb3b4hIffjrKn3zhVqJmH6ueB3Q netbsd-2.0-xen-sparse/sys/arch/xen/xen/clock.c
   2.506 +413cb564SakPue2EEm4MTtRb4z5JVw netbsd-2.0-xen-sparse/sys/arch/xen/xen/ctrl_if.c
   2.507 +413cb564uNQuIozl7hperSVK9EeDCA netbsd-2.0-xen-sparse/sys/arch/xen/xen/evtchn.c
   2.508 +413cb3b4eNdRIasCoQIuX4Nu39Dlqw netbsd-2.0-xen-sparse/sys/arch/xen/xen/hypervisor.c
   2.509 +413cb3b40DLJLbX_ZUIULB0JFjBuaw netbsd-2.0-xen-sparse/sys/arch/xen/xen/if_xennet.c
   2.510 +413cb3b46JnvK1UurZAubeQoFg1W-w netbsd-2.0-xen-sparse/sys/arch/xen/xen/xbd.c
   2.511 +413cb3b5rIKB3TbyhK3pbNyVkYysqA netbsd-2.0-xen-sparse/sys/arch/xen/xen/xen_debug.c
   2.512 +413cb3b5eKxnzoodEqaWn2wrPnHWnA netbsd-2.0-xen-sparse/sys/arch/xen/xen/xencons.c
   2.513 +413cb3b5F56TvQWAmO5TsuzhtzLFPQ netbsd-2.0-xen-sparse/sys/arch/xen/xen/xenkbc.c
   2.514 +413cb3b53nyOv1OIeDSsCXhBFDXvJA netbsd-2.0-xen-sparse/sys/nfs/files.nfs
   2.515 +413aa1d0oNP8HXLvfPuMe6cSroUfSA patches/linux-2.6.9/agpgart.patch
   2.516  3f776bd1Hy9rn69ntXBhPReUFw9IEA tools/Makefile
   2.517 +40e1b09db5mN69Ijj0X_Eol-S7dXiw tools/Rules.mk
   2.518 +4209033eUwhDBJ_bxejiv5c6gjXS4A tools/blktap/Makefile
   2.519 +4209033ewLAHdhGrT_2jo3Gb_5bDcA tools/blktap/README
   2.520 +4209033eX_Xw94wHaOCtnU9nOAtSJA tools/blktap/blkaio.c
   2.521 +4209033egwf6LDxM2hbaqi9rRdZy4A tools/blktap/blkaiolib.c
   2.522 +4209033f9yELLK85Ipo2oKjr3ickgQ tools/blktap/blkaiolib.h
   2.523 +4209033fL9LcSI6LXrIp5O4axbUBLg tools/blktap/blkcow.c
   2.524 +4209033fUDlFGZreIyZHdP7h7yfvuQ tools/blktap/blkcowgnbd.c
   2.525 +4209033fCgZzLeMOwNBFmsp99x58ZQ tools/blktap/blkcowimg.c
   2.526 +4209033frfXH6oOi9AvRz08PPAndNA tools/blktap/blkcowlib.c
   2.527 +4209033fhFd_y2go9HgCF395A35xJg tools/blktap/blkcowlib.h
   2.528 +4209033fHgtGpb_K16_xC9CpkjNZLw tools/blktap/blkdump.c
   2.529 +4209033fm61CZG1RyKDW75V-eTZ9fg tools/blktap/blkgnbd.c
   2.530 +4209033fVfa-R6MFgGcmsQHTDna4PA tools/blktap/blkgnbdlib.c
   2.531 +4209033fIgDQbaHwHStHhPEDTtbqsA tools/blktap/blkgnbdlib.h
   2.532 +4209033figp5JRsKsXY8rw4keRumkg tools/blktap/blkimg.c
   2.533 +42090340V-8HKGlr00SyJGsE5jXC3A tools/blktap/blkimglib.c
   2.534 +42090340c7pQbh0Km8zLcEqPd_3zIg tools/blktap/blkimglib.h
   2.535 +42090340_mvZtozMjghPJO0qsjk4NQ tools/blktap/blkint.h
   2.536 +42090340rc2q1wmlGn6HtiJAkqhtNQ tools/blktap/blktaplib.c
   2.537 +42090340C-WkRPT7N3t-8Lzehzogdw tools/blktap/blktaplib.h
   2.538 +42090340B3mDvcxvd9ehDHUkg46hvw tools/blktap/libgnbd/Makefile
   2.539 +42090340ZWkc5Xhf9lpQmDON8HJXww tools/blktap/libgnbd/gnbdtest.c
   2.540 +42090340ocMiUScJE3OpY7QNunvSbg tools/blktap/libgnbd/libgnbd.c
   2.541 +42090340G5_F_EeVnPORKB0pTMGGhA tools/blktap/libgnbd/libgnbd.h
   2.542 +4124b307nRyK3dhn1hAsvrY76NuV3g tools/check/Makefile
   2.543 +4124b307vHLUWbfpemVefmaWDcdfag tools/check/README
   2.544 +4124b307jt7T3CHysgl9LijNHSe1tA tools/check/check_brctl
   2.545 +4124b307HDX972-zihuZWXB7R8Vd0w tools/check/check_curl_devel
   2.546 +4124b307P3bZBkTFm6r-3XTbf0phAA tools/check/check_curl_lib
   2.547 +4124b307u-FeKvFP9kZnh0rLV0XjGg tools/check/check_logging
   2.548 +4124b307tRTjLqzRy60QrUoqN2Fhuw tools/check/check_python
   2.549 +4124b307XdznSNCv97lrT3RpOdMM1A tools/check/check_twisted
   2.550 +4124b307lnAATmulpXYa0M-dzxLBDA tools/check/check_zlib_devel
   2.551 +4124b308ly20ptMKQoiztPyP_X68Mw tools/check/check_zlib_lib
   2.552 +4124b308O8yPHMKbj4YPR_grPGZmdA tools/check/chk
   2.553  401d7e160vaxMBAUSLSicuZ7AQjJ3w tools/examples/Makefile
   2.554  401d7e16UgeqroJQTIhwkrDVkoWgZQ tools/examples/README
   2.555 +41597996VhTbNuHbuscYSfRb-WR6fA tools/examples/block-enbd
   2.556 +41597996GHP2_yVih2UspXh328fgMQ tools/examples/block-file
   2.557 +41dde8af16Hulg1pgW8aOnbbxyrl7w tools/examples/bochsrc
   2.558  405ff55dawQyCHFEnJ067ChPRoXBBA tools/examples/init.d/xend
   2.559 +40278d94cIUWl2eRgnwZtr4hTyWT1Q tools/examples/init.d/xendomains
   2.560 +41dde8afTUuvdtFUlOx0ZRusKxyd8w tools/examples/mem-map.sxp
   2.561  40ee75a9xFz6S05sDKu-JCLqyVTkDA tools/examples/network
   2.562 +41fc0c18hVgK5rKJyZUsqybux9D9Dg tools/examples/network-nat
   2.563 +41e661e1giIEKbJ25qfiP-ke8u8hFA tools/examples/network-route
   2.564  40ee75a967sxgcRY4Q7zXoVUaJ4flA tools/examples/vif-bridge
   2.565 -40e15b7edWEtBf_oe3eBwGKuh1dyzQ tools/examples/vifctl
   2.566 +41fc0c18AFAVXA1uGm1JFWHMeeznVw tools/examples/vif-nat
   2.567 +41e661e1ooiRKlOfwumG6wwzc0PdhQ tools/examples/vif-route
   2.568  40ee75a93cqxHp6MiYXxxwR5j2_8QQ tools/examples/xend-config.sxp
   2.569 -41090ec8Pj_bkgCBpg2W7WfmNkumEA tools/examples/xmdefaults
   2.570 -40cf2937oKlROYOJTN8GWwWM5AmjBg tools/examples/xmexample
   2.571 -40dfd40auJwNnb8NoiSnRkvZaaXkUg tools/examples/xmnetbsd-example
   2.572 +41dde8af6M2Pm1Rrv_f5jEFC_BIOIA tools/examples/xmexample.vmx
   2.573 +41090ec8Pj_bkgCBpg2W7WfmNkumEA tools/examples/xmexample1
   2.574 +40cf2937oKlROYOJTN8GWwWM5AmjBg tools/examples/xmexample2
   2.575 +41fc0c18_k4iL81hu4pMIWQu9dKpKA tools/examples/xmexample3
   2.576 +41e2ff6dNPgvIrdIF6dC1azdex1U3A tools/ioemu/Makefile
   2.577 +41e2ff6aoF5fgddZi0QpEWqFr89E5g tools/ioemu/font/vga.bitmap.h
   2.578 +41e2ff6avgnBNvZRiL4ynyGGq2UKlw tools/ioemu/gui/Makefile
   2.579 +41e2ff6a30Xuw7pDX3SlVBx3ssOMDQ tools/ioemu/gui/Makefile.in
   2.580 +41e2ff6aGGn5D3-Yh856G7xWJ5ZJsA tools/ioemu/gui/bitmaps/cdromd.h
   2.581 +41e2ff6abNiWU34DwftxJ30sI6TQmw tools/ioemu/gui/bitmaps/cdromd.xpm
   2.582 +41e2ff6adSUYHlvyVpz7q1Izcx5_gQ tools/ioemu/gui/bitmaps/configbutton.h
   2.583 +41e2ff6aLWWXfMqIH2jSCNUzuc4_Yg tools/ioemu/gui/bitmaps/configbutton.xpm
   2.584 +41e2ff6ahsqMjwuhpbqfrFHCBqYhEA tools/ioemu/gui/bitmaps/copy.h
   2.585 +41e2ff6ajL41CnUeGefMrNijudQlCg tools/ioemu/gui/bitmaps/copy.xpm
   2.586 +41e2ff6aXn5GhkDNOGqUcfCLbDZf3w tools/ioemu/gui/bitmaps/floppya.h
   2.587 +41e2ff6agOpnECodSZ62L-Uijy5fsQ tools/ioemu/gui/bitmaps/floppya.xpm
   2.588 +41e2ff6akrHp6jG_Y2BmFpEcaswUqg tools/ioemu/gui/bitmaps/floppyb.h
   2.589 +41e2ff6aGbvPO1cQLMLduGl16rntbg tools/ioemu/gui/bitmaps/floppyb.xpm
   2.590 +41e2ff6aEcsgeBHQZ_5e3rfgo0USMA tools/ioemu/gui/bitmaps/mouse.h
   2.591 +41e2ff6aO8pXESvDVxMG7TgZL7UvFA tools/ioemu/gui/bitmaps/mouse.xpm
   2.592 +41e2ff6aSd1H6Z0dUVUYLsW-6EDrYw tools/ioemu/gui/bitmaps/paste.h
   2.593 +41e2ff6aRGfY6Jd2TThqWtXoh2CHuQ tools/ioemu/gui/bitmaps/paste.xpm
   2.594 +41e2ff6aKDap56ifPVgdBVPc9yfmvw tools/ioemu/gui/bitmaps/power.h
   2.595 +41e2ff6aDLfEO8dFUd9IpsfUpMk-Vg tools/ioemu/gui/bitmaps/power.xpm
   2.596 +41e2ff6aKWtTsWCds4vL2azV3w-XtQ tools/ioemu/gui/bitmaps/reset.h
   2.597 +41e2ff6a_AU4_ytzHU0Btr3trcbVmA tools/ioemu/gui/bitmaps/reset.xpm
   2.598 +41e2ff6a-hGpcXEChJQDo-xRyH5oGQ tools/ioemu/gui/bitmaps/snapshot.h
   2.599 +41e2ff6aRoGi5nKyQFtcUzK0-9dRDA tools/ioemu/gui/bitmaps/snapshot.xpm
   2.600 +41e2ff6aZdTp9lSJjyUI7YoXqQnCng tools/ioemu/gui/bitmaps/userbutton.h
   2.601 +41e2ff6aWc4p23rAKngLMu8eLZiXlw tools/ioemu/gui/bitmaps/userbutton.xpm
   2.602 +41e2ff6a7gMd57Q5DL0kRD-mR7JzZg tools/ioemu/gui/gui.cc
   2.603 +41e2ff6a-USvofVXiSpY76RT4C0IVw tools/ioemu/gui/gui.h
   2.604 +41e2ff6aYAuOb0x4zTVB7cWYIFIdOA tools/ioemu/gui/icon_bochs.h
   2.605 +41e2ff6aZbFf-Djysg393N4vCEJ7ig tools/ioemu/gui/icon_bochs.xpm
   2.606 +41e2ff6ai-vJcSE9hfz4SHZ20rK5QA tools/ioemu/gui/keymap.cc
   2.607 +41e2ff6a_TY9EJnCcbr5EKV_pi90kg tools/ioemu/gui/keymap.h
   2.608 +41e2ff6aP0co3DAK04MrugZCkp0roQ tools/ioemu/gui/keymaps/convertmap.pl
   2.609 +41e2ff6a-GiP9bzqtVXEjxmxiYgzeg tools/ioemu/gui/keymaps/sdl-pc-de.map
   2.610 +41e2ff6aa5xj7jyze5bcPnj-UHYgTQ tools/ioemu/gui/keymaps/sdl-pc-us.map
   2.611 +41e2ff6ahemkf0kG8SzDXq8g2qp9Pg tools/ioemu/gui/keymaps/x11-pc-be.map
   2.612 +41e2ff6ajdaBBS85yriZ3S9ecy5Odg tools/ioemu/gui/keymaps/x11-pc-da.map
   2.613 +41e2ff6aGkLyRvwOTZnDqvobziAoiQ tools/ioemu/gui/keymaps/x11-pc-de.map
   2.614 +41e2ff6aWcqOK6RjpY28Y4bVjMy9yg tools/ioemu/gui/keymaps/x11-pc-es.map
   2.615 +41e2ff6aF46Uu09XOmmkcGDotToSxw tools/ioemu/gui/keymaps/x11-pc-fr.map
   2.616 +41e2ff6aHM040MYLmOeW_PKIx1TWWg tools/ioemu/gui/keymaps/x11-pc-it.map
   2.617 +41e2ff6aCa-6fHjBOoPWP8hDweZ1Fw tools/ioemu/gui/keymaps/x11-pc-se.map
   2.618 +41e2ff6aUH4wvnqRwo91dJBnhxEYUg tools/ioemu/gui/keymaps/x11-pc-uk.map
   2.619 +41e2ff6aF7b08llRJQBLgNAEfyn9wQ tools/ioemu/gui/keymaps/x11-pc-us.map
   2.620 +41e2ff6a2gbWdoaE7X9vtizvQ4QqdQ tools/ioemu/gui/nogui.cc
   2.621 +41e2ff6a_rWAWre2toEtNUMKliCJPA tools/ioemu/gui/rfb.cc
   2.622 +41e2ff6aQfuugiO3YE07l03L6ASP9g tools/ioemu/gui/rfb.h
   2.623 +41e2ff6aTWFzmW0sjxXpQq7ulaj_Pw tools/ioemu/gui/rfbproto.h
   2.624 +41e2ff6bf4pfJkZTN5vA6HbiJJqeNA tools/ioemu/gui/sdl.h
   2.625 +41e2ff6bVnojmIqKJCbhVUKtMcUWJg tools/ioemu/gui/sdlkeys.h
   2.626 +41e2ff6bKVx97oSdGGToXQXvbQgkZA tools/ioemu/gui/siminterface.cc
   2.627 +41e2ff6bDB5XABCVAA7nMolZPe5ZoA tools/ioemu/gui/siminterface.h
   2.628 +41e2ff6benMg1o7HQ2C5PGS3KFHFow tools/ioemu/gui/svga.cc
   2.629 +41e2ff6bz3XZGzzwvXGqFadb3QqWWQ tools/ioemu/gui/term.cc
   2.630 +41e2ff6b8jzKgyKu2gNVlRWepPNA0A tools/ioemu/gui/textconfig.cc
   2.631 +41e2ff6bUKaJhGtIDqUYzAesLg1MGA tools/ioemu/gui/textconfig.h
   2.632 +41e2ff6b__Pd6Q2aYDZ5vB9bGJEMNA tools/ioemu/gui/x.cc
   2.633 +41e2ff6bp96y5NyMIFjH-HpCRcGBPg tools/ioemu/include/bochs.h
   2.634 +41e2ff6bqIMIJlitAnubjNjf70s3dw tools/ioemu/include/bxversion.h
   2.635 +41e2ff6bTfksDlUXSWC_wC_g30r1cQ tools/ioemu/include/config.h
   2.636 +41e2ff6bwDEGCUwYTf1oo9ZCva2nkw tools/ioemu/include/cpu/cpu.h
   2.637 +41e2ff6bH1PTh2iMScpOn9v9R3SDag tools/ioemu/include/extplugin.h
   2.638 +41e2ff6bFS9XP8ndI6IhGFitzsvTtw tools/ioemu/include/instrument.h
   2.639 +41e2ff6bz71jKff_NUdmI279ArbMgw tools/ioemu/include/ltdl.h
   2.640 +41e2ff6bYayW_YSVmb1sJCvk9z9-ug tools/ioemu/include/ltdlconf.h
   2.641 +41e2ff6b_MdkIIjsFYTFMIKIt7Royw tools/ioemu/include/osdep.h
   2.642 +41e2ff6bPJNSITgePniKtvlujrmcLA tools/ioemu/include/pc_system.h
   2.643 +41e2ff6bmHZyZrzF7iHpD212GeAT-w tools/ioemu/include/plugin.h
   2.644 +41e2ff6bHgstm2ZhCIdsag_c3_dVjA tools/ioemu/include/state_file.h
   2.645 +41e2ff6bJjm8-4K6Cu2k6zoanQ8Yyg tools/ioemu/iodev/Makefile
   2.646 +41e2ff6bKj9bQ4ELP2msSYoT7XrxHQ tools/ioemu/iodev/aspi-win32.h
   2.647 +41e2ff6b95DLt3iA-okw7D4NJcaDCg tools/ioemu/iodev/biosdev.cc
   2.648 +41e2ff6b1ra22hFnE6Tm9lxVaH4Mjw tools/ioemu/iodev/biosdev.h
   2.649 +41e2ff6bftET40KQA19RAisCxyDHVQ tools/ioemu/iodev/cdrom.cc
   2.650 +41e2ff6buuSLUZPj9EtlGA3tufslNQ tools/ioemu/iodev/cdrom.h
   2.651 +41e2ff6bvD6jE2JHKP0wd7I_mB7MJg tools/ioemu/iodev/cdrom_beos.h
   2.652 +41e2ff6b99qviTPyKLjy0-D5DIqACw tools/ioemu/iodev/cmos.cc
   2.653 +41e2ff6bpeZbWqQfuwM_Xj-kElElAA tools/ioemu/iodev/cmos.h
   2.654 +41e2ff6bRf7QN_i1c7BAzkQha8AFUg tools/ioemu/iodev/cpu.cc
   2.655 +41e2ff6byVHp6G3fxAlly1u1sx_DEg tools/ioemu/iodev/crc32.cc
   2.656 +41e2ff6bHWz28hOKgLKRizX9UjsyOQ tools/ioemu/iodev/crc32.h
   2.657 +41e2ff6b3tvq7uKSC9DWkOswq0Re8w tools/ioemu/iodev/devices.cc
   2.658 +41e2ff6bO-SYXzx1RB-1If_FNkyjLg tools/ioemu/iodev/dma.cc
   2.659 +41e2ff6bdI7Ri1mVb1MzkvBKlNSx6Q tools/ioemu/iodev/dma.h
   2.660 +41e2ff6bfnGRrb25sneyvOXxSi8pLg tools/ioemu/iodev/eth.cc
   2.661 +41e2ff6bteOXqvNO1FIR5iFHUwqUuA tools/ioemu/iodev/eth.h
   2.662 +41e2ff6bTQxXrfWSsDCISUAdzlAe9w tools/ioemu/iodev/eth_arpback.cc
   2.663 +41e2ff6brorlh9N9Myd1_g7ktKcIfQ tools/ioemu/iodev/eth_fbsd.cc
   2.664 +41e2ff6b5xRFy8_OISEtd2UrHEUdfw tools/ioemu/iodev/eth_linux.cc
   2.665 +41e2ff6biySiByowEn40XP_yx_lxKg tools/ioemu/iodev/eth_null.cc
   2.666 +41e2ff6bFAVD0UO_ob40usJOnEPAZg tools/ioemu/iodev/eth_packetmaker.cc
   2.667 +41e2ff6bsR-mjksFNRC9HiDDVUfI2w tools/ioemu/iodev/eth_packetmaker.h
   2.668 +41e2ff6bMnzZ7cpqVPQY0_0smpqjHw tools/ioemu/iodev/eth_tap.cc
   2.669 +41e2ff6bGa18jj0cqoOAqBPDzk2Aog tools/ioemu/iodev/eth_tuntap.cc
   2.670 +41e2ff6bY1u244mkTGfttym3HoLo5Q tools/ioemu/iodev/extfpuirq.cc
   2.671 +41e2ff6b_wh3dgYBx38KIJ00Qv4XUA tools/ioemu/iodev/extfpuirq.h
   2.672 +41e2ff6b3uiKo02slxJn11bvZKsF3g tools/ioemu/iodev/floppy.cc
   2.673 +41e2ff6bKba0nlJHGy2kWUr_3e_nvw tools/ioemu/iodev/floppy.h
   2.674 +41e2ff6bC1KaCAEBYYTkJJ5_pBydkQ tools/ioemu/iodev/gameport.cc
   2.675 +41e2ff6bePGww4K0p8vTLphdE_zdig tools/ioemu/iodev/gameport.h
   2.676 +41e2ff6biLQpMiiiKokz7qUXpBn5cg tools/ioemu/iodev/guest2host.h
   2.677 +41e2ff6bji1Iix0CzQTeh9yB-Ao14Q tools/ioemu/iodev/harddrv.cc
   2.678 +41e2ff6bcSDALK1SdvKvTCxemzpWwQ tools/ioemu/iodev/harddrv.h
   2.679 +41e2ff6b36hFBfV06tX0a5CRjFpuxA tools/ioemu/iodev/ioapic.cc
   2.680 +41e2ff6brajF6a0a7RkLHiX0M9oH7w tools/ioemu/iodev/ioapic.h
   2.681 +41e2ff6btDX2IfOnC_LkP08ZlKxjJw tools/ioemu/iodev/iodebug.cc
   2.682 +41e2ff6b-__Z4ECo9pHWVM-Rz-0ehw tools/ioemu/iodev/iodebug.h
   2.683 +41e2ff6btRbGfsUt5k4MClieCZ-EBQ tools/ioemu/iodev/iodev.h
   2.684 +41e2ff6bH5C9aG3f2QhoD6zCdShJYQ tools/ioemu/iodev/keyboard.cc
   2.685 +41e2ff6bUOmeloSf5s9Gkdffo1bEyA tools/ioemu/iodev/keyboard.h
   2.686 +41e2ff6b55oybF1yhInYSZX2bxiJSw tools/ioemu/iodev/load32bitOShack.cc
   2.687 +41e2ff6b5WcmfYXaREzUm0KQu7pKCQ tools/ioemu/iodev/logio.cc
   2.688 +41e2ff6bqqHfrDtizlRKA-_oPRbGAw tools/ioemu/iodev/main.cc
   2.689 +41e2ff6cWAAGa6Pt6eE4URbCOq8wQA tools/ioemu/iodev/ne2k.cc
   2.690 +41e2ff6cap6qrVL42AgTpxjav0QMQg tools/ioemu/iodev/ne2k.h
   2.691 +41e2ff6cHH0UoJW74RKZFnPBSt1jUw tools/ioemu/iodev/osdep.cc
   2.692 +41e2ff6ckuFNtxuAQDMVwJtYwL2QCg tools/ioemu/iodev/parallel.cc
   2.693 +41e2ff6cbqWnJwLAQ9NDZJwUyGiIww tools/ioemu/iodev/parallel.h
   2.694 +41e2ff6cAdkxmfzVhbQn9Plq3X4S_w tools/ioemu/iodev/pc_system.cc
   2.695 +41e2ff6csu1e9S_rywWOq9B85IaZzA tools/ioemu/iodev/pci.cc
   2.696 +41e2ff6cjcmNZLD17naGuKj_Qon6Ow tools/ioemu/iodev/pci.h
   2.697 +41e2ff6c91zYiAb9XulXkl2vLERo-w tools/ioemu/iodev/pci2isa.cc
   2.698 +41e2ff6cV7IdLNbFXwlWvdcOz4F1Aw tools/ioemu/iodev/pci2isa.h
   2.699 +41e2ff6cviwF37ZllnYtHA3MEHRMWw tools/ioemu/iodev/pciusb.cc
   2.700 +41e2ff6ceFmfyqr1MgYhEoRM1s6icQ tools/ioemu/iodev/pciusb.h
   2.701 +41e2ff6cd-1VHyISVo789tv3ImNgLw tools/ioemu/iodev/pcivga.cc
   2.702 +41e2ff6cVkXDlrNUTdt7D6BULEp1Tg tools/ioemu/iodev/pcivga.h
   2.703 +41e2ff6c3xjAFB8X5OLFz_8Of62v2Q tools/ioemu/iodev/pic.cc
   2.704 +41e2ff6c4UHzse5_N0Mx6u5dqKrVkw tools/ioemu/iodev/pic.h
   2.705 +41e2ff6cdD9yovRmQNNJu8QVtZg7Iw tools/ioemu/iodev/pit.cc
   2.706 +41e2ff6cXtvewmYJyoxrWGic2sOayg tools/ioemu/iodev/pit.h
   2.707 +41e2ff6cXaqNRxMagdpNiT1kTWJJUA tools/ioemu/iodev/pit82c54.cc
   2.708 +41e2ff6cHAkpKzMwyz3diMZWTswxmg tools/ioemu/iodev/pit82c54.h
   2.709 +41e2ff6cMK9E2gjqHoWV9ZQfz-cP1Q tools/ioemu/iodev/pit_wrap.cc
   2.710 +41e2ff6cbie7fPpQMgBImJ885GAPdw tools/ioemu/iodev/pit_wrap.h
   2.711 +41e2ff6c0wLrWtBHxxboIzHsrZzkRA tools/ioemu/iodev/plugin.cc
   2.712 +41e2ff6cN4Z6pnguPQaqiCkWp42MOQ tools/ioemu/iodev/scancodes.cc
   2.713 +41e2ff6chK1sqb78l1sqhF3fJhjzBw tools/ioemu/iodev/scancodes.h
   2.714 +41e2ff6cIyPvY7hNE5rP_PMZELhyVw tools/ioemu/iodev/scsi_commands.h
   2.715 +41e2ff6cF3wH8A_66_yG92Wk7I2IWQ tools/ioemu/iodev/scsidefs.h
   2.716 +41e2ff6cbAin6eD3Gfz2CozOS4_bwA tools/ioemu/iodev/scsipt.h
   2.717 +41e2ff6cce6mNXZPGmlQ1bg_I0ef8Q tools/ioemu/iodev/serial.cc
   2.718 +41e2ff6cxsITO-ikpd4vBYZUYO3qSw tools/ioemu/iodev/serial.h
   2.719 +41e2ff6cbaCEgMJ92UELiRE2wEYe3g tools/ioemu/iodev/serial_raw.h
   2.720 +41e2ff6cwDKTU8OukKNBNMDiAYUWvQ tools/ioemu/iodev/slowdown_timer.cc
   2.721 +41e2ff6cM5XYdcgL417IBOzW-QipFg tools/ioemu/iodev/slowdown_timer.h
   2.722 +41e2ff6c5X0WxdBPUyZlNmW6Zv_LRQ tools/ioemu/iodev/soundlnx.cc
   2.723 +41e2ff6cIuE1VxGF_L6rdBtD6rZ_aA tools/ioemu/iodev/soundlnx.h
   2.724 +41e2ff6cDIv87LKamP0Y-yjrdqALzQ tools/ioemu/iodev/soundwin.cc
   2.725 +41e2ff6cB55j_uYIqYh-UiLS4wlm_g tools/ioemu/iodev/soundwin.h
   2.726 +41e2ff6dRPBmtxjFbEM5WYuilnSSZg tools/ioemu/iodev/state_file.cc
   2.727 +41e2ff6dMwkI1Dpa-UHSEzHCvjpOyw tools/ioemu/iodev/unmapped.cc
   2.728 +41e2ff6d_yJMFHYPENtVmJz6wyldQA tools/ioemu/iodev/unmapped.h
   2.729 +41e2ff6dU5hJI6Kn70mFingJo4cHUw tools/ioemu/iodev/vga.cc
   2.730 +41e2ff6dh8xDcCXkZzpSqnFP-OXggw tools/ioemu/iodev/vga.h
   2.731 +41e2ff6dayXwb5dxf0K5pd3q4QppRA tools/ioemu/iodev/virt_timer.cc
   2.732 +41e2ff6dI_rNgBwki594UAWN337-zw tools/ioemu/iodev/virt_timer.h
   2.733 +41e2ff6dCCtE_btrlEopLaCsLO3JDA tools/ioemu/memory/Makefile
   2.734 +41e2ff6dZtwsTW8s-Gqv7bqObdvaXw tools/ioemu/memory/memory.cc
   2.735 +41e2ff6dpk6EFzlHlsAsFEFdyG4wrA tools/ioemu/memory/memory.h
   2.736 +41e2ff6d2i-wqgCe4iAXdckUc1GD-A tools/ioemu/memory/misc_mem.cc
   2.737 +41e2ff6dCYuZgf6pxRmphkh5yeuA9Q tools/ioemu/mk/helix.mk
   2.738  3fbba6dbDfYvJSsw9500b4SZyUhxjQ tools/libxc/Makefile
   2.739 +41dde8afKYRKxS4XtLv1KUegGQy_bg tools/libxc/linux_boot_params.h
   2.740 +41cc934abX-QLXJXW_clV_wRjM0zYg tools/libxc/plan9a.out.h
   2.741  3fbba6dc1uU7U3IFeF6A-XEOYF2MkQ tools/libxc/rpm.spec
   2.742  3fbba6dcrNxtygEcgJYAJJ1gCQqfsA tools/libxc/xc.h
   2.743  40589968oCfoUlXd460CjVAkBE8IBA tools/libxc/xc_atropos.c
   2.744 @@ -259,35 +541,50 @@ 3fbba6dbEVkVMX0JuDFzap9jeaucGA tools/lib
   2.745  3fbba6dbasJQV-MVElDC0DGSHMiL5w tools/libxc/xc_domain.c
   2.746  40278d99BLsfUv3qxv0I8C1sClZ0ow tools/libxc/xc_elf.h
   2.747  403e0977Bjsm_e82pwvl9VvaJxh8Gg tools/libxc/xc_evtchn.c
   2.748 -40ec1922Nq_Rur5KUH0MvRNKczPGxg tools/libxc/xc_fbvtsched.c
   2.749  40e03333Eegw8czSWvHsbKxrRZJjRA tools/libxc/xc_io.c
   2.750  40e03333vrWGbLAhyJjXlqCHaJt7eA tools/libxc/xc_io.h
   2.751  3fbba6dbNCU7U6nsMYiXzKkp3ztaJg tools/libxc/xc_linux_build.c
   2.752  3fbba6dbl267zZOAVHYLOdLCdhcZMw tools/libxc/xc_linux_restore.c
   2.753  3fbba6db7li3FJiABYtCmuGxOJxEGw tools/libxc/xc_linux_save.c
   2.754  3fbba6db7WnnJr0KFrIFrqNlSKvFYg tools/libxc/xc_misc.c
   2.755 -40278d9ctaHVDaEuwhXI3Om2JOjx9w tools/libxc/xc_netbsd_build.c
   2.756  4051bce6CHAsYh8P5t2OHDtRWOP9og tools/libxc/xc_physdev.c
   2.757 +41cc934aO1m6NxEh_8eDr9bJIMoLFA tools/libxc/xc_plan9_build.c
   2.758  3fbba6dctWRWlFJkYb6hdix2X4WMuw tools/libxc/xc_private.c
   2.759  3fbba6dcbVrG2hPzEzwdeV_UC8kydQ tools/libxc/xc_private.h
   2.760  40589968UQFnJeOMn8UIFLbXBuwXjw tools/libxc/xc_rrobin.c
   2.761 +41dde8b0pLfAKMs_L9Uri2hnzHiCRQ tools/libxc/xc_vmx_build.c
   2.762  40e1b09dMYB4ItGCqcMIzirdMd9I-w tools/libxutil/Makefile
   2.763  40e033325Sjqs-_4TuzeUEprP_gYFg tools/libxutil/allocate.c
   2.764  40e03332KYz7o1bn2MG_KPbBlyoIMA tools/libxutil/allocate.h
   2.765 +41a216cav5JJbtDQnusfuMa_1x_Xpw tools/libxutil/debug.h
   2.766 +40e9808eyjiahG5uF6AMelNVujBzCg tools/libxutil/enum.c
   2.767 +40e9808eZpbdn9q2KSSMGCNvY_ZgpQ tools/libxutil/enum.h
   2.768  40e03332p5Dc_owJQRuN72ymJZddFQ tools/libxutil/file_stream.c
   2.769  40e03332jWfB2viAhLSkq1WK0r_iDQ tools/libxutil/file_stream.h
   2.770  40e03332rUjNMGg11n2rN6V4DCrvOg tools/libxutil/gzip_stream.c
   2.771  40e033321O5Qg22haLoq5lpmk4tooQ tools/libxutil/gzip_stream.h
   2.772 +40e9808easXCzzAZQodEfKAhgUXSPA tools/libxutil/hash_table.c
   2.773 +40e9808e94BNXIVVKBFHC3rnkvwtJg tools/libxutil/hash_table.h
   2.774  40e03332ihnBGzHykVwZnFmkAppb4g tools/libxutil/iostream.c
   2.775  40e03332UGwbLR4wsw4ft14p0Yw5pg tools/libxutil/iostream.h
   2.776  40e0333245DLDzJemeSVBLuutHtzEQ tools/libxutil/kernel_stream.c
   2.777  40e03332aK0GkgpDdc-PVTkWKTeOBg tools/libxutil/kernel_stream.h
   2.778 +40e9808epW9iHcLXuO3QfUfLzB7onw tools/libxutil/lexis.c
   2.779 +40e9808egccMhCizayQRGtpBA3L5MQ tools/libxutil/lexis.h
   2.780 +41a216caM4z39Fzjb91rv9Ed_4By1A tools/libxutil/socket_stream.c
   2.781 +41a216caqinvF1I5FQMHA4HTRz8MSA tools/libxutil/socket_stream.h
   2.782  40e03332KT_tnnoAMbPVAZBB7kSOAQ tools/libxutil/string_stream.c
   2.783  40e03332-VtK6_OZa1vMHXFil8uq6w tools/libxutil/string_stream.h
   2.784 +40e9808e5_PLdodqVOSx0b4T_f5aeg tools/libxutil/sxpr.c
   2.785 +40e9808e0O4sHZtkDv5hlSqjYcdQAQ tools/libxutil/sxpr.h
   2.786 +40ec1cc6SIiGbynOi-1NtPesOlzF-Q tools/libxutil/sxpr_parser.c
   2.787 +40ec1cc6wpvvGxZiq4EFvNOcw0tUFg tools/libxutil/sxpr_parser.h
   2.788  40e03332Rkvq6nn_UNjzAAK_Tk9v1g tools/libxutil/sys_net.c
   2.789  40e03332lQHvQHw4Rh7VsT1_sui29A tools/libxutil/sys_net.h
   2.790  40e033321smklZd7bDSdWvQCeIshtg tools/libxutil/sys_string.c
   2.791  40e03332h5V611rRWURRLqb1Ekatxg tools/libxutil/sys_string.h
   2.792 +41a216cayFe2FQroFuzvNPw1AvNiqQ tools/libxutil/util.c
   2.793 +41a216ca7mgVSnCBHPCLkGOIqPS1CQ tools/libxutil/util.h
   2.794  3f776bd2Xd-dUcPKlPN2vG89VGtfvQ tools/misc/Makefile
   2.795  40ab2cfawIw8tsYo0dQKtp83h4qfTQ tools/misc/fakei386xen
   2.796  3f6dc136ZKOjd8PIqLbFBl_v-rnkGg tools/misc/miniterm/Makefile
   2.797 @@ -296,14 +593,13 @@ 3f6dc142IHaf6XIcAYGmhV9nNSIHFQ tools/mis
   2.798  40c9c469kT0H9COWzA4XzPBjWK0WsA tools/misc/netfix
   2.799  4022a73cEKvrYe_DVZW2JlAxobg9wg tools/misc/nsplitd/Makefile
   2.800  4022a73cKms4Oq030x2JBzUB426lAQ tools/misc/nsplitd/nsplitd.c
   2.801 -3f870808_8aFBAcZbWiWGdgrGQyIEw tools/misc/p4perf.h
   2.802  3f5ef5a2ir1kVAthS14Dc5QIRCEFWg tools/misc/xen-clone
   2.803  3f5ef5a2dTZP0nnsFoeq2jRf3mWDDg tools/misc/xen-clone.README
   2.804 -3f870808zS6T6iFhqYPGelroZlVfGQ tools/misc/xen_cpuperf.c
   2.805  405eedf6_nnNhFQ1I85lhCkLK6jFGA tools/misc/xencons
   2.806  40c9c4697z76HDfkCLdMhmaEwzFoNQ tools/misc/xend
   2.807 +41adc641dV-0cDLSyzMs5BT8nL7v3Q tools/misc/xenperf.c
   2.808  4107986eMWVdBoz4tXYoOscpN_BCYg tools/misc/xensv
   2.809 -4056f5155QYZdsk-1fLdjsZPFTnlhg tools/misc/xensymoops.py
   2.810 +4056f5155QYZdsk-1fLdjsZPFTnlhg tools/misc/xensymoops
   2.811  40cf2937dqM1jWW87O5OoOYND8leuA tools/misc/xm
   2.812  40c9c468icGyC5RAF1bRKsCXPDCvsA tools/python/Makefile
   2.813  40ffc44dOwe1CcYXGCkYHdG_NxcccA tools/python/logging/logging-0.4.9.2/PKG-INFO
   2.814 @@ -370,7 +666,10 @@ 40fcefb2-RIU8GB67mJMRzybME9bxw tools/pyt
   2.815  40fcefb23FfQn-ZBCbcHqA0cPGqQxw tools/python/xen/sv/GenTabbed.py
   2.816  40fcefb2QZAn3u3sX-M7NXBjOv5HGg tools/python/xen/sv/HTMLBase.py
   2.817  40fcefb2vnfDbl4w_yCTedROPuqs0g tools/python/xen/sv/Main.py
   2.818 +4186e24fZMp7_bX4f50MvUscdrST9Q tools/python/xen/sv/MigrateDomain.py
   2.819  40fcefb24h-04WaHag-Tg4nxWPhTig tools/python/xen/sv/NodeInfo.py
   2.820 +4186e24fb4YtJw155tNtSXXN6nEWqA tools/python/xen/sv/RestoreDomain.py
   2.821 +4186e24fVXt0lfeQSAy1eiFKnPCHTg tools/python/xen/sv/SaveDomain.py
   2.822  40fcefb2Sif__6AqrANeBQZZfvP-6w tools/python/xen/sv/TabView.py
   2.823  41052eb8UrgtUkuJPg7oY1tutVQHsg tools/python/xen/sv/Wizard.py
   2.824  40fcefb2DqteqCCZYDCvvh4Q5jBd0w tools/python/xen/sv/__init__.py
   2.825 @@ -380,12 +679,15 @@ 40d8915cyoVA0hJxiBFNymL7YvDaRg tools/pyt
   2.826  40dfd40aGqGkiopOOgJxSF4iCbHM0Q tools/python/xen/util/__init__.py
   2.827  4055ee4dwy4l0MghZosxoiu6zmhc9Q tools/python/xen/util/console_client.py
   2.828  40c9c468IienauFHQ_xJIcqnPJ8giQ tools/python/xen/util/ip.py
   2.829 +41dde8b0yuJX-S79w4xJKxBQ-Mhp1A tools/python/xen/util/memmap.py
   2.830  4059c6a0pnxhG8hwSOivXybbGOwuXw tools/python/xen/util/tempfile.py
   2.831  40c9c468SNuObE_YWARyS0hzTPSzKg tools/python/xen/xend/Args.py
   2.832 +41597996WNvJA-DVCBmc0xU9w_XmoA tools/python/xen/xend/Blkctl.py
   2.833  40c9c468Um_qc66OQeLEceIz1pgD5g tools/python/xen/xend/EventServer.py
   2.834  40c9c468U8EVl0d3G--8YXVg6VJD3g tools/python/xen/xend/EventTypes.py
   2.835  40c9c468QJTEuk9g4qHxGpmIi70PEQ tools/python/xen/xend/PrettyPrint.py
   2.836  40e15b7eeQxWE_hUPB2YTgM9fsZ1PQ tools/python/xen/xend/Vifctl.py
   2.837 +4151594bBq8h-bwTfEt8dbBuojMtcA tools/python/xen/xend/XendAsynchProtocol.py
   2.838  40c9c4688m3eqnC8fhLu1APm36VOVA tools/python/xen/xend/XendClient.py
   2.839  40c9c468t6iIKTjwuYoe-UMCikDcOQ tools/python/xen/xend/XendConsole.py
   2.840  40c9c468WnXs6eOUSff23IIGI4kMfQ tools/python/xen/xend/XendDB.py
   2.841 @@ -397,6 +699,7 @@ 40f50d99YiiaMI1fZBh1VCDFLD57qg tools/pyt
   2.842  40ffc44eGsgTEY355E3nN4mPLZHhMQ tools/python/xen/xend/XendLogging.py
   2.843  40c9c46854nsHmuxHQHncKk5rAs5NA tools/python/xen/xend/XendMigrate.py
   2.844  40c9c468M96gA1EYDvNa5w5kQNYLFA tools/python/xen/xend/XendNode.py
   2.845 +4151594bhib4aUerB2SMKDl-iCtc4Q tools/python/xen/xend/XendProtocol.py
   2.846  40c9c4686jruMyZIqiaZRMiMoqMJtg tools/python/xen/xend/XendRoot.py
   2.847  40c9c468xzANp6o2D_MeCYwNmOIUsQ tools/python/xen/xend/XendVnet.py
   2.848  40c9c468x191zetrVlMnExfsQWHxIQ tools/python/xen/xend/__init__.py
   2.849 @@ -414,6 +717,7 @@ 40c9c469-8mYEJJTAR6w_ClrJRAfwQ tools/pyt
   2.850  40c9c4694eu5759Dehr4Uhakei0EMg tools/python/xen/xend/server/SrvNode.py
   2.851  40c9c469TaZ83ypsrktmPSHLEZiP5w tools/python/xen/xend/server/SrvRoot.py
   2.852  40c9c469W3sgDMbBJYQdz5wbQweL0Q tools/python/xen/xend/server/SrvServer.py
   2.853 +41ee5e8cFlODpYxhBMZqo9ZgGtcHbg tools/python/xen/xend/server/SrvUsbif.py
   2.854  40c9c469aq7oXrE1Ngqf3_lBqL0RoQ tools/python/xen/xend/server/SrvVnetDir.py
   2.855  4108f181GtRoD1U9TBuJXMfBbGJwdQ tools/python/xen/xend/server/SrvXendLog.py
   2.856  40c9c469Y_aimoOFfUZoS-4eV8gEKg tools/python/xen/xend/server/__init__.py
   2.857 @@ -425,16 +729,21 @@ 40d83983OXjt-y3HjSCcuoPp9rzvmw tools/pyt
   2.858  40c9c469yrm31i60pGKslTi2Zgpotg tools/python/xen/xend/server/messages.py
   2.859  40c9c46925x-Rjb0Cv2f1-l2jZrPYg tools/python/xen/xend/server/netif.py
   2.860  40c9c469ZqILEQ8x6yWy0_51jopiCg tools/python/xen/xend/server/params.py
   2.861 +41ee5e8dq9NtihbL4nWKjuSLOhXPUg tools/python/xen/xend/server/usbif.py
   2.862  40c9c469LNxLVizOUpOjEaTKKCm8Aw tools/python/xen/xend/sxp.py
   2.863 +4189125cL90jKSOcBJ3Vx4nWGiXXvA tools/python/xen/xend/util.py
   2.864  40d05079aFRp6NQdo5wIh5Ly31c0cg tools/python/xen/xm/__init__.py
   2.865  40cf2937gKQcATgXKGtNeWb1PDH5nA tools/python/xen/xm/create.py
   2.866  40f552eariuUSB9TWqCPnDLz5zvxMw tools/python/xen/xm/destroy.py
   2.867  40e41cd2w0I4En6qrJn4em8HkK_oxQ tools/python/xen/xm/help.py
   2.868  40cf2937isyS250zyd0Q2GuEDoNXfQ tools/python/xen/xm/main.py
   2.869 +411b2c1ehdEGO_CwG0tvn85Q-Tfh5g tools/python/xen/xm/migrate.py
   2.870  40cf2937PSslwBliN1g7ofDy2H_RhA tools/python/xen/xm/opts.py
   2.871  40cf2937Z8WCNOnO2FcWdubvEAF9QQ tools/python/xen/xm/shutdown.py
   2.872 +41b88ba6_C4---jeA895Efg9YFZgKA tools/python/xen/xm/sysrq.py
   2.873  40fcefb2K1xqVVT4D-p7nL2GzS4scg tools/sv/Main.rpy
   2.874  40ffbcb66Dj5F-1kCK9BcgSqCWkt1w tools/sv/Makefile
   2.875 +4120b0e5L_nW-u0MWRfIdXg4ng4OjA tools/sv/images/destroy.png
   2.876  4107c921_OR9NTSv2dKFiLCXxrXoxA tools/sv/images/finish.png
   2.877  40fcefb3wXQMsl9WkgQAVtdrupm4sw tools/sv/images/left-end-highlight.jpg
   2.878  40fcefb3K6ESt5sQhD9aCQRscQIlXQ tools/sv/images/left-end-no-highlight.jpg
   2.879 @@ -452,10 +761,86 @@ 40fcefb3qNbAZR5FYGPAZ9sFPVMTDA tools/sv/
   2.880  40fcefb3dgsa24WLk_BJeYQHrDLuOg tools/sv/images/seperator-right-highlight.jpg
   2.881  40fcefb3FtiX4Pd2kT8wDlp8u8xRhQ tools/sv/images/seperator.jpg
   2.882  41013a82sUdUqBv8EoAUJii3gsZ-4g tools/sv/images/shutdown.png
   2.883 +4120b0e5RyNoIQNMjUs4A2kshovjaQ tools/sv/images/small-destroy.png
   2.884 +4120b0e6vW66wW6WvjQyFD0AZH2tng tools/sv/images/small-pause.png
   2.885 +4120b0e6USof7ieyGxEvtCdTMpxaQw tools/sv/images/small-unpause.png
   2.886  4104ffca-jPHLVOrW0n0VghEXXtKxg tools/sv/images/unpause.png
   2.887  40fcefb3yMSrZvApO9ToIi-iQwnchA tools/sv/images/xen.png
   2.888  41013a83z27rKvWIxAfUBMVZ1eDCDg tools/sv/inc/script.js
   2.889  40fcefb3zGC9XNBkSwTEobCoq8YClA tools/sv/inc/style.css
   2.890 +41a21888_WlknVWjSxb32Fo13_ujsw tools/vnet/00README
   2.891 +420a9b706I-bN_uPdiy0m3rmDifNNg tools/vnet/INSTALL
   2.892 +41a21888bOiOJc7blzRbe4MNJoaYTw tools/vnet/Makefile
   2.893 +41a21888mg2k5HeiVjlQYEtJBZT4Qg tools/vnet/doc/vnet-module.txt
   2.894 +41a21888cuxfT8wjCdRR6V1lqf5NtA tools/vnet/doc/vnet-xend.txt
   2.895 +41a21888xEQJAIGktS6XQ4xz2TyA5g tools/vnet/examples/Makefile
   2.896 +41a21888FGQhPR5LJ1GRtOSIIN3QEw tools/vnet/examples/network-vnet
   2.897 +41a21888QPgKrulCfR9SY_pxZKU0KA tools/vnet/examples/vnet97.sxp
   2.898 +41a21888Gm0UBs1i7HqveT7Yz0u8DQ tools/vnet/examples/vnet98.sxp
   2.899 +41a21888r4oGPuGv2Lxl-thgV3H54w tools/vnet/examples/vnet99.sxp
   2.900 +41a21888c9TCRlUwJS9WBjB3e9aWgg tools/vnet/vnet-module/00README
   2.901 +41a21888K2ItolEkksc1MUqyTDI_Kg tools/vnet/vnet-module/Makefile
   2.902 +41a21888mJsFJD7bVMm-nrnWnalGBw tools/vnet/vnet-module/Makefile-2.4
   2.903 +41a21888Znze3-UCCBZ-Nxpj-bNeHA tools/vnet/vnet-module/Makefile-2.6
   2.904 +41a21889fwc1judJ7DYvyEviSJ3TPg tools/vnet/vnet-module/Makefile.ver
   2.905 +41a21889m_sYkdODF3j5uhMP-Guy9Q tools/vnet/vnet-module/Makefile.vnet
   2.906 +41a21889bXW2lC28U6KS_s5tOJ_W9Q tools/vnet/vnet-module/esp.c
   2.907 +41a21889L2MfLDsUFQxstt-0frIVmw tools/vnet/vnet-module/esp.h
   2.908 +41a21889V1jOsB2JExI-XQl720WHwg tools/vnet/vnet-module/etherip.c
   2.909 +41a21889IpMYbNufHMDXe2ndNw4JxA tools/vnet/vnet-module/etherip.h
   2.910 +41a21889LT9TNqO2EvTFIUTujrkX9w tools/vnet/vnet-module/if_etherip.h
   2.911 +41a21889PESythGZFG6kmSoOkkN2Nw tools/vnet/vnet-module/if_varp.h
   2.912 +41a21889nCPEomHqOyQ4vnhEm4II4g tools/vnet/vnet-module/linux/pfkeyv2.h
   2.913 +41a21889A_fw4pRmCbBfZdtRunM5Eg tools/vnet/vnet-module/random.c
   2.914 +41a218899Xy2dPKSu3pkuqaqkfKMTA tools/vnet/vnet-module/random.h
   2.915 +41a21889rIH5S1dv8ygdSsTGNlg0JA tools/vnet/vnet-module/sa.c
   2.916 +41a218896Z4vxy6gnV9h0fWRWu0lKQ tools/vnet/vnet-module/sa.h
   2.917 +41a21889qFD8BTbDpB55uVmSVDEsgw tools/vnet/vnet-module/sa_algorithm.c
   2.918 +41a21889r2AwTe-OCSSVMxBzz8uDtw tools/vnet/vnet-module/sa_algorithm.h
   2.919 +41a21889tvjtL7O8tMveVB8MdSKPnQ tools/vnet/vnet-module/skb_context.c
   2.920 +41a21889lD_QOUz2Msd7fB5rJQzfxA tools/vnet/vnet-module/skb_context.h
   2.921 +41a21889F1r1xnJamzdeuClR8MNwQg tools/vnet/vnet-module/skb_util.c
   2.922 +41a21889sS4bjVqEna24sS8NpV7SRA tools/vnet/vnet-module/skb_util.h
   2.923 +41a21889MDawEK3J_f_oAGnZznhG2w tools/vnet/vnet-module/tunnel.c
   2.924 +41a218896TlHXpVVqF50uz_u_WMXRw tools/vnet/vnet-module/tunnel.h
   2.925 +41a21889nQYbJbqrOApg_RbkwPtXGg tools/vnet/vnet-module/varp.c
   2.926 +41a21889Pev5MJlqqass6CxN4mmvPw tools/vnet/vnet-module/varp.h
   2.927 +41a21889GbsHHfkpA-PkOvltfEwpMA tools/vnet/vnet-module/varp_socket.c
   2.928 +41a21889sknn8zd5xCJlpQbs7MvxKg tools/vnet/vnet-module/vif.c
   2.929 +41a21889VsKKWpe6rcXOSLPy2FuNWQ tools/vnet/vnet-module/vif.h
   2.930 +41a21889dgkOyuSTVqy7D8TPIzrUyw tools/vnet/vnet-module/vnet.c
   2.931 +41a21889ocAdwk7V1nNt4iBpmYW-Mw tools/vnet/vnet-module/vnet.h
   2.932 +41a21889YrTiC0ArJSGFtiaHz2j1qQ tools/vnet/vnet-module/vnet_dev.c
   2.933 +41a21889rHT4vrC4VAfk7-xP_K5aBg tools/vnet/vnet-module/vnet_dev.h
   2.934 +41a21889qJj6GjT2f5hMHRvPS1AW4w tools/vnet/vnet-module/vnet_ioctl.c
   2.935 +41a2188a8W4xYB0LYm512agtoEv52g tools/vnet/vnet-module/vnet_ioctl.h
   2.936 +41a2188aFF_1T9OgpqUjjjaCqKB8lw tools/vnet/vnetd/Makefile
   2.937 +41a2188a9j84qS4CxqMLVCvyGpA93w tools/vnet/vnetd/connection.c
   2.938 +41a2188atexNEami9TNVYNkRSb7Bqg tools/vnet/vnetd/connection.h
   2.939 +41a2188abgYpITSrWoMGHHrM56nklw tools/vnet/vnetd/marshal.c
   2.940 +41a2188aUbOi5tAYwOS4aPixo1EGwQ tools/vnet/vnetd/marshal.h
   2.941 +41a2188aDJlSVB1s_st2MSWxW8kMwg tools/vnet/vnetd/select.c
   2.942 +41a2188aE9LUDdSSwNT3BWVWCvGSnQ tools/vnet/vnetd/select.h
   2.943 +41a2188aTbMKv_Eig12dSrBUEBl1Jg tools/vnet/vnetd/timer.c
   2.944 +41a2188aIzBGqQ6DUVzCxfBsN0Q6Ww tools/vnet/vnetd/timer.h
   2.945 +41a2188aIf3Xk6uvk7KzjdpOsflAEw tools/vnet/vnetd/vcache.c
   2.946 +41a2188ar6_vOO3_tEJQjmFVU3409A tools/vnet/vnetd/vcache.h
   2.947 +41a2188aETrGU60X9WtGhYVfU7z0Pw tools/vnet/vnetd/vnetd.c
   2.948 +41a2188ahYjemudGyB7078AWMFR-0w tools/vnet/vnetd/vnetd.h
   2.949 +4194e861IgTabTt8HOuh143QIJFD1Q tools/x2d2/Makefile
   2.950 +4194e861M2gcBz4i94cQYpqzi8n6UA tools/x2d2/cntrl_con.c
   2.951 +4194e8612TrrMvC8ZlA4h2ZYCPWz4g tools/x2d2/minixend.c
   2.952 +4194e861x2eqNCD61RYPCUEBVdMYuw tools/x2d2/minixend.h
   2.953 +4194e861A4V9VbD_FYmgXpYEj5YwVg tools/x2d2/util.c
   2.954 +41d58ba63w1WfBmd6Cr_18nhLNv7PA tools/xcs/Makefile
   2.955 +41d58ba6NxgkfzD_rmsGjgd_zJ3H_w tools/xcs/bindings.c
   2.956 +41d58ba6I2umi60mShq4Pl0RDg7lzQ tools/xcs/connection.c
   2.957 +41d58ba6YyYu53bFuoIAw9hNNmneEg tools/xcs/ctrl_interface.c
   2.958 +41d58ba6Ru9ZbhTjgYX_oiszSIwCww tools/xcs/evtchn.c
   2.959 +41d58ba6x9KO1CQBT7kKOKq_pJYC3g tools/xcs/xcs.c
   2.960 +41d58ba6R6foSMtSFEcu-yxWFrT8VQ tools/xcs/xcs.h
   2.961 +41d58ba6qyr2BkTcH2WlNBYLRyl2Yw tools/xcs/xcs_proto.h
   2.962 +41d58ba6ijEF6fedqRO5vFu7uCirZg tools/xcs/xcsdump.c
   2.963  403a3edbrr8RE34gkbR40zep98SXbg tools/xentrace/Makefile
   2.964  40a107afN60pFdURgBv9KwEzgRl5mQ tools/xentrace/formats
   2.965  4050c413PhhLNAYk3TEwP37i_iLw9Q tools/xentrace/xentrace.8
   2.966 @@ -467,22 +852,13 @@ 40e9808epTR4zWrYjGUnaaynK20Q5A tools/xfr
   2.967  40e9808eysqT4VNDlJFqsZB2rdg4Qw tools/xfrd/connection.c
   2.968  40e9808eyXfJUi4E0C3WSgrEXqQ1sQ tools/xfrd/connection.h
   2.969  40e9808eULGwffNOE4kBrAfZ9YAVMA tools/xfrd/debug.h
   2.970 -40e9808eyjiahG5uF6AMelNVujBzCg tools/xfrd/enum.c
   2.971 -40e9808eZpbdn9q2KSSMGCNvY_ZgpQ tools/xfrd/enum.h
   2.972 -40e9808easXCzzAZQodEfKAhgUXSPA tools/xfrd/hash_table.c
   2.973 -40e9808e94BNXIVVKBFHC3rnkvwtJg tools/xfrd/hash_table.h
   2.974 -40e9808epW9iHcLXuO3QfUfLzB7onw tools/xfrd/lexis.c
   2.975 -40e9808egccMhCizayQRGtpBA3L5MQ tools/xfrd/lexis.h
   2.976 +411b5139tfKZfWs1LQHmwDR_wjKoxQ tools/xfrd/http.h
   2.977  40e9808ePADCSKL1YgGCt2TbYPnYkw tools/xfrd/lzi_stream.c
   2.978  40e9808eDNAdpF71o5teYb9DTT-PRw tools/xfrd/lzi_stream.h
   2.979  40e9808eQxi0EzTcPJtosrzxEIjA-Q tools/xfrd/marshal.c
   2.980  40e9808etg13xfRm0Lqd8vY-jHOoTg tools/xfrd/marshal.h
   2.981  40e9808eCsmywryb036TdtRMJHDMmQ tools/xfrd/select.c
   2.982  40e9808e99OcM547cKMTfmCVSoWVAw tools/xfrd/select.h
   2.983 -40e9808e5_PLdodqVOSx0b4T_f5aeg tools/xfrd/sxpr.c
   2.984 -40e9808e0O4sHZtkDv5hlSqjYcdQAQ tools/xfrd/sxpr.h
   2.985 -40ec1cc6SIiGbynOi-1NtPesOlzF-Q tools/xfrd/sxpr_parser.c
   2.986 -40ec1cc6wpvvGxZiq4EFvNOcw0tUFg tools/xfrd/sxpr_parser.h
   2.987  40e9808eF3NVldqRNS5IHM8gbFAvpw tools/xfrd/xdr.c
   2.988  40e9808ezXzoRHm7pybXU69NtnjimA tools/xfrd/xdr.h
   2.989  40e9808edpUtf4bJ8IbqClPJj_OvbA tools/xfrd/xen_domain.c
   2.990 @@ -493,6 +869,11 @@ 40e9808eHXvs_5eggj9McD_J90mhNw tools/xfr
   2.991  3f72f1bdJPsV3JCnBqs9ddL9tr6D2g xen/COPYING
   2.992  3ddb79bcbOVHh38VJzc97-JEGD4dJQ xen/Makefile
   2.993  3ddb79bcWnTwYsQRWl_PaneJfa6p0w xen/Rules.mk
   2.994 +41a26ebcqaSGVQ8qTMwpPwOJSJ7qSw xen/arch/ia64/privop.c
   2.995 +41a26ebc4BOHDUsT0TSnryPeV2xfRA xen/arch/ia64/process.c
   2.996 +41a26ebcJ30TFl1v2kR8rqpEBvOtVw xen/arch/ia64/regionreg.c
   2.997 +41a26ebc--sjlYZQxmIxyCx3jw70qA xen/arch/ia64/vcpu.c
   2.998 +41a26ebc4jSBGQOuyNIPDST58mNbBw xen/arch/ia64/xenasm.S
   2.999  3ddb79bcZbRBzT3elFWSX7u6NtMagQ xen/arch/x86/Makefile
  2.1000  3ddb79bcBQF85CfLS4i1WGZ4oLLaCA xen/arch/x86/Rules.mk
  2.1001  3e5636e5FAYZ5_vQnmgwFJfSdmO5Mw xen/arch/x86/acpi.c
  2.1002 @@ -503,6 +884,7 @@ 40e42bdbNu4MjI750THP_8J1S-Sa0g xen/arch/
  2.1003  3ddb79bcUrk2EIaM5VsT6wUudH1kkg xen/arch/x86/delay.c
  2.1004  40e34414WiQO4h2m3tcpaCPn7SyYyg xen/arch/x86/dom0_ops.c
  2.1005  3ddb79bc1_2bAt67x9MFCP4AZrQnvQ xen/arch/x86/domain.c
  2.1006 +41d3eaae6GSDo3ZJDfK3nvQsJux-PQ xen/arch/x86/e820.c
  2.1007  3ddb79bcY5zW7KhvI9gvfuPi3ZumEg xen/arch/x86/extable.c
  2.1008  3fe443fdDDb0Sw6NQBCk4GQapayfTA xen/arch/x86/flushtlb.c
  2.1009  3ddb79bcesE5E-lS4QhRhlqXxqj9cA xen/arch/x86/i387.c
  2.1010 @@ -510,15 +892,21 @@ 3ddb79bcCAq6IpdkHueChoVTfXqEQQ xen/arch/
  2.1011  3ddb79bcBit4xJXbwtX0kb1hh2uO1Q xen/arch/x86/idle0_task.c
  2.1012  3ddb79bcKIkRR0kqWaJhe5VUDkMdxg xen/arch/x86/io_apic.c
  2.1013  3ddb79bdqfIcjkz_h9Hvtp8Tk_19Zw xen/arch/x86/irq.c
  2.1014 -40ec29ffuOa1ZvmJHzFKyZn4k_RcXg xen/arch/x86/memory.c
  2.1015 +41d54a76qfpO0VnbL2tYs0Jgt3W3XA xen/arch/x86/microcode.c
  2.1016 +40ec29ffuOa1ZvmJHzFKyZn4k_RcXg xen/arch/x86/mm.c
  2.1017  3ddb79bdS4UeWWXDH-FaBKqcpMFcnw xen/arch/x86/mpparse.c
  2.1018 +41aaf566Z4sTDgJ77eEg0TzzQ1ka6Q xen/arch/x86/mtrr/amd.c
  2.1019 +41aaf566TOpOBXT00wwQGUh20f1rlA xen/arch/x86/mtrr/centaur.c
  2.1020 +41aaf566yhr0zKYnGVSOQpkWMM0Kiw xen/arch/x86/mtrr/cyrix.c
  2.1021 +41aaf567t3hFKsyfEFoy3KAnB-bj8w xen/arch/x86/mtrr/generic.c
  2.1022 +41aaf567tqrKGSTDK8OVeAbpeoccPw xen/arch/x86/mtrr/main.c
  2.1023 +41aaf567a36esU-rUK7twPiv-yTFyw xen/arch/x86/mtrr/mtrr.h
  2.1024 +41aaf567DcTL6pqVtLZJI5cSryyA1A xen/arch/x86/mtrr/state.c
  2.1025  3f12cff65EV3qOG2j37Qm0ShgvXGRw xen/arch/x86/nmi.c
  2.1026  3ddb79bdHe6_Uij4-glW91vInNtBYQ xen/arch/x86/pci-irq.c
  2.1027  3ddb79bcZ_2FxINljqNSkqa17ISyJw xen/arch/x86/pci-pc.c
  2.1028  3ddb79bdeJ7_86z03yTAPIeeywOg3Q xen/arch/x86/pci-x86.c
  2.1029  3ddb79bdIKgipvGoqExEQ7jawfVowA xen/arch/x86/pci-x86.h
  2.1030 -40a4dfced2dnSzbKgJFlD3chKHexjQ xen/arch/x86/pdb-linux.c
  2.1031 -4022a73czgX7d-2zfF_cb33oVemApQ xen/arch/x86/pdb-stub.c
  2.1032  3ddb79bc7KxGCEJsgBnkDX7XjD_ZEQ xen/arch/x86/rwlock.c
  2.1033  3ddb79bcrD6Z_rUvSDgrvjyb4846Eg xen/arch/x86/setup.c
  2.1034  405b8599xI_PoEr3zZoJ2on-jdn7iw xen/arch/x86/shadow.c
  2.1035 @@ -527,44 +915,54 @@ 3ddb79bcfUN3-UBCPzX26IU8bq-3aw xen/arch/
  2.1036  3ddb79bc-Udq7ol-NX4q9XsYnN7A2Q xen/arch/x86/time.c
  2.1037  3ddb79bccYVzXZJyVaxuv5T42Z1Fsw xen/arch/x86/trampoline.S
  2.1038  3ddb79bcOftONV9h4QCxXOfiT0h91w xen/arch/x86/traps.c
  2.1039 +41c0c411tD3C7TpfDMiFTf7BaNd_Dg xen/arch/x86/vmx.c
  2.1040 +420951dcf1rSGnCH0AEYN2KjWGLG6A xen/arch/x86/vmx_intercept.c
  2.1041 +41c0c411ODt8uEmV-yUxpQLpqimE5Q xen/arch/x86/vmx_io.c
  2.1042 +41f97ef5139vN42cOYHfX_Ac8WOOjA xen/arch/x86/vmx_platform.c
  2.1043 +41c0c4128URE0dxcO15JME_MuKBPfg xen/arch/x86/vmx_vmcs.c
  2.1044 +419cbedeQDg8IrO3izo3o5rQNlo0kQ xen/arch/x86/x86_32/asm-offsets.c
  2.1045 +4202391dkvdTZ8GhWXe3Gqf9EOgWXg xen/arch/x86/x86_32/domain_build.c
  2.1046  3e32af9aRnYGl4GMOaDKp7JdfhOGhg xen/arch/x86/x86_32/domain_page.c
  2.1047 -40f92331jfOlE7MfKwpdkEb1CEf23g xen/arch/x86/x86_32/emulate.c
  2.1048  3ddb79bcecupHj56ZbTa3B0FxDowMg xen/arch/x86/x86_32/entry.S
  2.1049  3ddb79bcHwuCQDjBICDTSis52hWguw xen/arch/x86/x86_32/mm.c
  2.1050 +40f92331jfOlE7MfKwpdkEb1CEf23g xen/arch/x86/x86_32/seg_fixup.c
  2.1051 +42000d3ckiFc1qxa4AWqsd0t3lxuyw xen/arch/x86/x86_32/traps.c
  2.1052  3ddb79bc4nTpGQOe6_-MbyZzkhlhFQ xen/arch/x86/x86_32/usercopy.c
  2.1053  4107c15e_NqNYew2EXroXz2mgTAMWQ xen/arch/x86/x86_32/xdb_trap.S
  2.1054  3ddb79bcOMCu9-5mKpjIh5d0qqBDPg xen/arch/x86/x86_32/xen.lds
  2.1055 +41bf1717Ty3hwN3E9swdu8QfnvGqww xen/arch/x86/x86_64/asm-offsets.c
  2.1056 +4202391dA91ZovYX9d_5zJi9yGvLoQ xen/arch/x86/x86_64/domain_build.c
  2.1057  40e96d3aLDI-nViMuYneD7VKYlZrVg xen/arch/x86/x86_64/entry.S
  2.1058 +41bf1717XhPz_dNT5OKSjgmbFuWBuA xen/arch/x86/x86_64/mm.c
  2.1059 +42000d3cMb8o1WuFBXC07c8i3lPZBw xen/arch/x86/x86_64/traps.c
  2.1060  40e96d3ahBTZqbTViInnq0lM03vs7A xen/arch/x86/x86_64/usercopy.c
  2.1061  40e96d3akN3Hu_J5Bk-WXD8OGscrYQ xen/arch/x86/x86_64/xen.lds
  2.1062  4107c15e-VmEcLsE-7JCXZaabI8C7A xen/arch/x86/xdb.c
  2.1063  3ddb79bdff-gj-jFGKjOejeHLqL8Lg xen/common/Makefile
  2.1064  3e397e66AyyD5fYraAySWuwi9uqSXg xen/common/ac_timer.c
  2.1065 -4022a73c_BbDFd2YJ_NQYVvKX5Oz7w xen/common/debug-linux.c
  2.1066 -3fa152581E5KhrAtqZef2Sr5NKTz4w xen/common/debug.c
  2.1067  3ddb79bdLX_P6iB7ILiblRLWvebapg xen/common/dom0_ops.c
  2.1068  3e6377e4i0c9GtKN65e99OtRbw3AZw xen/common/dom_mem_ops.c
  2.1069  3ddb79bdYO5D8Av12NHqPeSviav7cg xen/common/domain.c
  2.1070  40f2b4a27xPOh3R6zD4M_aabz-TDyg xen/common/elf.c
  2.1071  3fba5b96H0khoxNiKbjdi0inpXV-Pw xen/common/event_channel.c
  2.1072 +41262590gGIOn-1pvF5KpUu8Wb6_JA xen/common/grant_table.c
  2.1073  3ddb79bd9drcFPVxd4w2GPOIjLlXpA xen/common/kernel.c
  2.1074  3e4cd9d8LAAghUY0hNIK72uc2ch_Nw xen/common/keyhandler.c
  2.1075  3ddb79bduhSEZI8xa7IbGQCpap5y2A xen/common/lib.c
  2.1076 -3ddb79bdS39UXxUtZnaScie83-7VTQ xen/common/memory.c
  2.1077 +41a61536SZbR6cj1ukWTb0DYU-vz9w xen/common/multicall.c
  2.1078  3ddb79bdD4SLmmdMD7yLW5HcUWucXw xen/common/page_alloc.c
  2.1079  3e54c38dkHAev597bPr71-hGzTdocg xen/common/perfc.c
  2.1080  4051bcecFeq4DE70p4zGO5setf47CA xen/common/physdev.c
  2.1081  3ddb79bdHqdQpATqC0rmUZNbsb6L6A xen/common/resource.c
  2.1082  4064773cJ31vZt-zhbSoxqft1Jaw0w xen/common/sched_atropos.c
  2.1083  40589968dD2D1aejwSOvrROg7fOvGQ xen/common/sched_bvt.c
  2.1084 -40ec1922He_dRhVJdOicTcHvT8v1NQ xen/common/sched_fair_bvt.c
  2.1085  40589968be_t_n0-w6ggceW7h-sx0w xen/common/sched_rrobin.c
  2.1086  3e397e6619PgAfBbw2XFbXkewvUWgw xen/common/schedule.c
  2.1087 -3ddb79bdB9RNMnkQnUyZ5C9hhMSQQw xen/common/slab.c
  2.1088  3ddb79bd0gVQYmL2zvuJnldvD0AGxQ xen/common/softirq.c
  2.1089  3e7f358awXBC3Vw-wFRwPw18qL1khg xen/common/string.c
  2.1090  403a3edbejm33XLTGMuinKEwQBrOIg xen/common/trace.c
  2.1091  3ddb79bd3zgV33PHdt-cgh3sxcb1hw xen/common/vsprintf.c
  2.1092 +4203fb92Qcy7mGpauBdq09J-WAqfoA xen/common/xmalloc.c
  2.1093  3ddb79c0ppNeJtjC4va8j41ADCnchA xen/drivers/Makefile
  2.1094  40715b2bi9gU43-cYzlmPDgreYQchw xen/drivers/acpi/Makefile
  2.1095  40715b2bDxNCz5LFV8FAXihmYJZFUQ xen/drivers/acpi/acpi_ksyms.c
  2.1096 @@ -579,15 +977,7 @@ 3ddb79bfoQcFKLf5P6wZlDl36alWdQ xen/drive
  2.1097  3ddb79bfyX7-pD6XdxY_mdNrJR20iw xen/drivers/pci/pci.c
  2.1098  3ddb79bf2AS7YBGwooE_Kbv7XgUqNQ xen/drivers/pci/pci.ids
  2.1099  3ddb79bf7sTn85WtP_8Nc2YEmmVExQ xen/drivers/pci/quirks.c
  2.1100 -3ddb79bfkVLMq5CWjZLACPDivqxq_w xen/drivers/pci/setup-bus.c
  2.1101 -3ddb79bfl1H1arbB0pzAEC2uPmY_3g xen/drivers/pci/setup-irq.c
  2.1102  3ddb79bfJaf0bkE1Y67bnll8-kjEPg xen/drivers/pci/setup-res.c
  2.1103 -3ddb79bfIcCWJsBDNcQQE3ok2Azn-Q xen/drivers/pci/syscall.c
  2.1104 -3eb3c87fc79FXLA6R9TvdBJNTvQDwA xen/figlet/LICENSE
  2.1105 -3eb3c87fPL2T_zBb0bHlbZY-ACEKRw xen/figlet/Makefile
  2.1106 -3eb3c87fmKYTC5GCh_rydFakZp9ayw xen/figlet/README
  2.1107 -3eb3c87fdQKQ5OBGbM-KjZfi9Us4ng xen/figlet/figlet.c
  2.1108 -3eb3c87fS7DNbg0i6yhFs28UIqAK5g xen/figlet/xen.flf
  2.1109  40715b2cFpte_UNWnBZW0Du7z9AhTQ xen/include/acpi/acconfig.h
  2.1110  40715b2cEQWX-PaxEH30qI48K1krnQ xen/include/acpi/acdebug.h
  2.1111  40715b2c_7j-oy3ZNAuqE3IFNPzArg xen/include/acpi/acdisasm.h
  2.1112 @@ -625,22 +1015,26 @@ 40715b2d1yZkqyAt0kgx2xEwsatuuA xen/inclu
  2.1113  40715b2dWe0tDhx9LkLXzTQkvD49RA xen/include/asm-x86/acpi.h
  2.1114  3ddb79c3l4IiQtf6MS2jIzcd-hJS8g xen/include/asm-x86/apic.h
  2.1115  3ddb79c3QJYWr8LLGdonLbWmNb9pQQ xen/include/asm-x86/apicdef.h
  2.1116 +41bf17171g_hhz2k4B-fN9LQlODDjQ xen/include/asm-x86/asm_defns.h
  2.1117  3ddb79c3OiG9eTsi9Dy3F_OkuRAzKA xen/include/asm-x86/atomic.h
  2.1118  3ddb79c3rM-Ote0Xn6Ytg8Y6YqAG-A xen/include/asm-x86/bitops.h
  2.1119  3ddb79c3KhTI0F_Iw_hRL9QEyOVK-g xen/include/asm-x86/cache.h
  2.1120  404f1b920OQVnrbnXnySS-WxrH9Wzw xen/include/asm-x86/config.h
  2.1121  3ddb79c2LLt11EQHjrd6sB7FUqvFfA xen/include/asm-x86/cpufeature.h
  2.1122  40cf1596ajIU1KJfF22XD-tSLfH6XA xen/include/asm-x86/current.h
  2.1123 +4194efbdvxUXjCLobbopgLOojisO4Q xen/include/asm-x86/debugger.h
  2.1124  3ddb79c2jFkPAZTDmU35L6IUssYMgQ xen/include/asm-x86/debugreg.h
  2.1125  3ddb79c3r9-31dIsewPV3P3i8HALsQ xen/include/asm-x86/delay.h
  2.1126  3ddb79c34BFiXjBJ_cCKB0aCsV1IDw xen/include/asm-x86/desc.h
  2.1127  40715b2dTokMLYGSuD58BnxOqyWVew xen/include/asm-x86/div64.h
  2.1128 -40f2b4a2hC3HtChu-ArD8LyojxWMjg xen/include/asm-x86/domain.h
  2.1129 -3e20b82fl1jmQiKdLy7fxMcutfpjWA xen/include/asm-x86/domain_page.h
  2.1130 +4204e7acwzqgXyTAPKa1nM-L7Ec0Qw xen/include/asm-x86/domain.h
  2.1131 +41febc4bBKTKHhnAu_KPYwgNkHjFlg xen/include/asm-x86/domain_page.h
  2.1132 +41d3eaaeIBzW621S1oa0c2yk7X43qQ xen/include/asm-x86/e820.h
  2.1133  3ddb79c3NU8Zy40OTrq3D-i30Y3t4A xen/include/asm-x86/fixmap.h
  2.1134  3e2d29944GI24gf7vOP_7x8EyuqxeA xen/include/asm-x86/flushtlb.h
  2.1135  3ddb79c39o75zPP0T1aQQ4mNrCAN2w xen/include/asm-x86/hardirq.h
  2.1136  3ddb79c3TMDjkxVndKFKnGiwY0HzDg xen/include/asm-x86/i387.h
  2.1137 +4204e7acwXDo-5iAAiO2eQbtDeYZXA xen/include/asm-x86/init.h
  2.1138  3ddb79c3fQ_O3o5NHK2N8AJdk0Ea4Q xen/include/asm-x86/io.h
  2.1139  3ddb79c2TKeScYHQZreTdHqYNLbehQ xen/include/asm-x86/io_apic.h
  2.1140  3ddb79c2L7rTlFzazOLW1XuSZefpFw xen/include/asm-x86/irq.h
  2.1141 @@ -649,12 +1043,12 @@ 3ddb79c3I98vWcQR8xEo34JMJ4Ahyw xen/inclu
  2.1142  40ec25fd7cSvbP7Biw91zaU_g0xsEQ xen/include/asm-x86/mm.h
  2.1143  3ddb79c3n_UbPuxlkNxvvLycClIkxA xen/include/asm-x86/mpspec.h
  2.1144  3ddb79c2wa0dA_LGigxOelSGbJ284Q xen/include/asm-x86/msr.h
  2.1145 +41aaf567Mi3OishhvrCtET1y-mxQBg xen/include/asm-x86/mtrr.h
  2.1146 +41a61536MFhNalgbVmYGXAhQsPTZNw xen/include/asm-x86/multicall.h
  2.1147  3ddb79c3xjYnrv5t3VqYlR4tNEOl4Q xen/include/asm-x86/page.h
  2.1148  3ddb79c3ysKUbxZuwKBRK3WXU2TlEg xen/include/asm-x86/pci.h
  2.1149 -404f1bb41Yl-5ZjIWnG66HDCj6OIWA xen/include/asm-x86/pda.h
  2.1150 -4022a73diKn2Ax4-R4gzk59lm1YdDg xen/include/asm-x86/pdb.h
  2.1151  3ddb79c2QF5-pZGzuX4QukPCDAl59A xen/include/asm-x86/processor.h
  2.1152 -40cf1596bim9F9DNdV75klgRSZ6Y2A xen/include/asm-x86/ptrace.h
  2.1153 +40cf1596bim9F9DNdV75klgRSZ6Y2A xen/include/asm-x86/regs.h
  2.1154  3ddb79c2plf7ciNgoNjU-RsbUzawsw xen/include/asm-x86/rwlock.h
  2.1155  405b8599BsDsDwKEJLS0XipaiQW3TA xen/include/asm-x86/shadow.h
  2.1156  3ddb79c3Hgbb2g8CyWLMCK-6_ZVQSQ xen/include/asm-x86/smp.h
  2.1157 @@ -662,41 +1056,60 @@ 3ddb79c3jn8ALV_S9W5aeTYUQRKBpg xen/inclu
  2.1158  3ddb79c3NiyQE2vQnyGiaBnNjBO1rA xen/include/asm-x86/spinlock.h
  2.1159  40e1966akOHWvvunCED7x3HPv35QvQ xen/include/asm-x86/string.h
  2.1160  3ddb79c3ezddh34MdelJpa5tNR00Dw xen/include/asm-x86/system.h
  2.1161 +42033fc1Bb8ffTshBYFGouGkiAMoUQ xen/include/asm-x86/time.h
  2.1162  3ddb79c4HugMq7IYGxcQKFBpKwKhzA xen/include/asm-x86/types.h
  2.1163  40cf1596saFaHD5DC5zvrSn7CDCWGQ xen/include/asm-x86/uaccess.h
  2.1164 +41c0c412k6GHYF3cJtDdw37ee3TVaw xen/include/asm-x86/vmx.h
  2.1165 +41c0c412hck3QX-6_MaXaISGkngQuA xen/include/asm-x86/vmx_cpu.h
  2.1166 +420951dcGoqsqnmjjAtEtm6-3dM9KA xen/include/asm-x86/vmx_intercept.h
  2.1167 +41c0c41243jC1mcArZx_t3YkBL4lTA xen/include/asm-x86/vmx_platform.h
  2.1168 +420951dcqyUCe_gXA_XJPu1ix_poKg xen/include/asm-x86/vmx_virpit.h
  2.1169 +41c0c412lQ0NVVN9PsOSznQ-qhOiPA xen/include/asm-x86/vmx_vmcs.h
  2.1170 +418fbcfe_WliJPToeVM-9VStvym-hw xen/include/asm-x86/x86_32/asm_defns.h
  2.1171  3ddb79c2ADvRmdexd9y3AYK9_NTx-Q xen/include/asm-x86/x86_32/current.h
  2.1172 -3ddb79c3mbqEM7QQr3zVq7NiBNhouA xen/include/asm-x86/x86_32/ptrace.h
  2.1173 +3e20b82fl1jmQiKdLy7fxMcutfpjWA xen/include/asm-x86/x86_32/domain_page.h
  2.1174 +4208e2a3ZNFroNXbX9OYaOB-xtUyDQ xen/include/asm-x86/x86_32/page.h
  2.1175 +3ddb79c3mbqEM7QQr3zVq7NiBNhouA xen/include/asm-x86/x86_32/regs.h
  2.1176  3e7f358aG11EvMI9VJ4_9hD4LUO7rQ xen/include/asm-x86/x86_32/string.h
  2.1177  3ddb79c3M2n1ROZH6xk3HbyN4CPDqg xen/include/asm-x86/x86_32/uaccess.h
  2.1178 +41bf1717bML6GxpclTWJabiaO5W5vg xen/include/asm-x86/x86_64/asm_defns.h
  2.1179  404f1b9ceJeGVaPNIENm2FkK0AgEOQ xen/include/asm-x86/x86_64/current.h
  2.1180 -404f1b9fl6AQ_a-T1TDK3fuwTPXmHw xen/include/asm-x86/x86_64/desc.h
  2.1181 +41febc4b1aCGLsm0Y0b_82h7lFtrEA xen/include/asm-x86/x86_64/domain_page.h
  2.1182  404f1badfXZJZ2sU8sh9PS2EZvd19Q xen/include/asm-x86/x86_64/ldt.h
  2.1183 -404f1bb86rAXB3aLS1vYdcqpJiEcyg xen/include/asm-x86/x86_64/ptrace.h
  2.1184 +4208e2a3Fktw4ZttKdDxbhvTQ6brfQ xen/include/asm-x86/x86_64/page.h
  2.1185 +404f1bb86rAXB3aLS1vYdcqpJiEcyg xen/include/asm-x86/x86_64/regs.h
  2.1186  40e1966azOJZfNI6Ilthe6Q-T3Hewg xen/include/asm-x86/x86_64/string.h
  2.1187  404f1bc4tWkB9Qr8RkKtZGW5eMQzhw xen/include/asm-x86/x86_64/uaccess.h
  2.1188 -400304fcmRQmDdFYEzDh0wcBba9alg xen/include/hypervisor-ifs/COPYING
  2.1189 -404f1bc68SXxmv0zQpXBWGrCzSyp8w xen/include/hypervisor-ifs/arch-x86_32.h
  2.1190 -404f1bc7IwU-qnH8mJeVu0YsNGMrcw xen/include/hypervisor-ifs/arch-x86_64.h
  2.1191 -3ddb79c2PMeWTK86y4C3F4MzHw4A1g xen/include/hypervisor-ifs/dom0_ops.h
  2.1192 -403cd194j2pyLqXD8FJ-ukvZzkPenw xen/include/hypervisor-ifs/event_channel.h
  2.1193 -3ddb79c25UE59iu4JJcbRalx95mvcg xen/include/hypervisor-ifs/hypervisor-if.h
  2.1194 -40f5623bqoi4GEoBiiUc6TZk1HjsMg xen/include/hypervisor-ifs/io/blkif.h
  2.1195 -40dc4076pVeE1kEEWzcUaNZin65kCA xen/include/hypervisor-ifs/io/domain_controller.h
  2.1196 -40f5623cTZ80EwjWUBlh44A9F9i_Lg xen/include/hypervisor-ifs/io/netif.h
  2.1197 -4051db79512nOCGweabrFWO2M2h5ng xen/include/hypervisor-ifs/physdev.h
  2.1198 -40589968wmhPmV5-ENbBYmMjnedgKw xen/include/hypervisor-ifs/sched_ctl.h
  2.1199 -404f3d2eR2Owk-ZcGOx9ULGHg3nrww xen/include/hypervisor-ifs/trace.h
  2.1200 +400304fcmRQmDdFYEzDh0wcBba9alg xen/include/public/COPYING
  2.1201 +404f1bc68SXxmv0zQpXBWGrCzSyp8w xen/include/public/arch-x86_32.h
  2.1202 +404f1bc7IwU-qnH8mJeVu0YsNGMrcw xen/include/public/arch-x86_64.h
  2.1203 +3ddb79c2PMeWTK86y4C3F4MzHw4A1g xen/include/public/dom0_ops.h
  2.1204 +403cd194j2pyLqXD8FJ-ukvZzkPenw xen/include/public/event_channel.h
  2.1205 +4121d149udGfSUGhn3k1ECz0bM31nQ xen/include/public/grant_table.h
  2.1206 +40f5623bqoi4GEoBiiUc6TZk1HjsMg xen/include/public/io/blkif.h
  2.1207 +40dc4076pVeE1kEEWzcUaNZin65kCA xen/include/public/io/domain_controller.h
  2.1208 +41c0c412FLc0gunlJl91qMYscFtXVA xen/include/public/io/ioreq.h
  2.1209 +40f5623cTZ80EwjWUBlh44A9F9i_Lg xen/include/public/io/netif.h
  2.1210 +41d40e9b8zCk5VDqhVbuQyhc7G3lqA xen/include/public/io/ring.h
  2.1211 +41ee5e8c6mLxIx82KPsbpt_uts_vSA xen/include/public/io/usbif.h
  2.1212 +4051db79512nOCGweabrFWO2M2h5ng xen/include/public/physdev.h
  2.1213 +40589968wmhPmV5-ENbBYmMjnedgKw xen/include/public/sched_ctl.h
  2.1214 +404f3d2eR2Owk-ZcGOx9ULGHg3nrww xen/include/public/trace.h
  2.1215 +3ddb79c25UE59iu4JJcbRalx95mvcg xen/include/public/xen.h
  2.1216  3e397e66m2tO3s-J8Jnr7Ws_tGoPTg xen/include/xen/ac_timer.h
  2.1217  40715b2epYl2jBbxzz9CI2rgIca7Zg xen/include/xen/acpi.h
  2.1218  3ddb79c0c0cX_DZE209-Bb-Rx1v-Aw xen/include/xen/cache.h
  2.1219 +41f2cea7Yna7xc0X9fyavIjoSFFeVg xen/include/xen/compile.h.in
  2.1220  3f840f12CkbYSlwMrY2S11Mpyxg7Nw xen/include/xen/compiler.h
  2.1221  3ddb79c259jh8hE7vre_8NuE7nwNSA xen/include/xen/config.h
  2.1222  3eb165e0eawr3R-p2ZQtSdLWtLRN_A xen/include/xen/console.h
  2.1223  3ddb79c1V44RD26YqCUm-kqIupM37A xen/include/xen/ctype.h
  2.1224  3ddb79c05DdHQ0UxX_jKsXdR4QlMCA xen/include/xen/delay.h
  2.1225 +40f2b4a2hC3HtChu-ArD8LyojxWMjg xen/include/xen/domain.h
  2.1226  3ddb79c2O729EttZTYu1c8LcsUO_GQ xen/include/xen/elf.h
  2.1227  3ddb79c0HIghfBF8zFUdmXhOU8i6hA xen/include/xen/errno.h
  2.1228  3ddb79c1W0lQca8gRV7sN6j3iY4Luw xen/include/xen/event.h
  2.1229 +41262590CyJy4vd42dnqzsn8-eeGvw xen/include/xen/grant_table.h
  2.1230  3ddb79c0GurNF9tDWqQbAwJFH8ugfA xen/include/xen/init.h
  2.1231  3ddb79c1nzaWu8NoF4xCCMSFJR4MlA xen/include/xen/ioport.h
  2.1232  3ddb79c2qAxCOABlkKtD8Txohe-qEw xen/include/xen/irq.h
  2.1233 @@ -707,6 +1120,7 @@ 3ddb79c1NfYlOrWNqgZkj9EwtFfJow xen/inclu
  2.1234  3ddb79c18Ajy7micDGQQfJ0zWgEHtA xen/include/xen/list.h
  2.1235  3ddb79c1gs2VbLbQlw0dcDUXYIepDA xen/include/xen/mm.h
  2.1236  3ddb79c1ieLZfGSFwfvvSQ2NK1BMSg xen/include/xen/multiboot.h
  2.1237 +41a61536ii6j2lJ2rXwMOLaG1CHPvw xen/include/xen/multicall.h
  2.1238  3ddb79c2Fg44_PBPVxHSC0gTOMq4Ow xen/include/xen/pci.h
  2.1239  3ddb79c0MOVXq8qZDQRGb6z64_xAwg xen/include/xen/pci_ids.h
  2.1240  3e54c38dlSCVdyVM4PKcrSfzLLxWUQ xen/include/xen/perfc.h
  2.1241 @@ -724,3 +1138,9 @@ 3e7f358aMtFMUVvN_Zjg5qvEJIqEBA xen/inclu
  2.1242  3ddb79c0BnA20PbgmuMPSGIBljNRQw xen/include/xen/time.h
  2.1243  403a3edbG9K5uZjuY19_LORbQGmFbA xen/include/xen/trace.h
  2.1244  3ddb79c1-kVvF8cVa0k3ZHDdBMj01Q xen/include/xen/types.h
  2.1245 +41d291f5u3J3HYViXLs3cNuFGTvzNg xen/tools/Makefile
  2.1246 +3eb3c87fc79FXLA6R9TvdBJNTvQDwA xen/tools/figlet/LICENSE
  2.1247 +3eb3c87fPL2T_zBb0bHlbZY-ACEKRw xen/tools/figlet/Makefile
  2.1248 +3eb3c87fmKYTC5GCh_rydFakZp9ayw xen/tools/figlet/README
  2.1249 +3eb3c87fdQKQ5OBGbM-KjZfi9Us4ng xen/tools/figlet/figlet.c
  2.1250 +3eb3c87fS7DNbg0i6yhFs28UIqAK5g xen/tools/figlet/xen.flf
     3.1 --- a/BitKeeper/etc/ignore	Fri Aug 06 12:20:20 2004 +0000
     3.2 +++ b/BitKeeper/etc/ignore	Thu Feb 10 13:17:10 2005 +0000
     3.3 @@ -1,54 +1,102 @@
     3.4  *.a
     3.5  *.d
     3.6  *.o
     3.7 +*.opic
     3.8  *.pyc
     3.9  *.so
    3.10  *.so.*
    3.11  *.tar.bz2
    3.12  *.tar.gz
    3.13  *~
    3.14 +BLOG
    3.15  BitKeeper/*/*
    3.16  PENDING/*
    3.17  TAGS
    3.18 -Twisted-1.3.0
    3.19  Twisted-1.3.0.tar.gz
    3.20 +Twisted-1.3.0/*
    3.21 +dist/*
    3.22  docs/*.aux
    3.23 +docs/*.dvi
    3.24  docs/*.log
    3.25  docs/*.pdf
    3.26  docs/*.ps
    3.27  docs/*.toc
    3.28 -docs/interface/*
    3.29 -docs/user/*
    3.30 +docs/figs/xenserver.eps
    3.31 +docs/html/*
    3.32 +docs/interface/WARNINGS
    3.33 +docs/interface/images.pl
    3.34 +docs/interface/images.tex
    3.35 +docs/interface/img1.png
    3.36 +docs/interface/index.html
    3.37 +docs/interface/interface.css
    3.38 +docs/interface/interface.html
    3.39 +docs/interface/labels.pl
    3.40 +docs/pdf/*
    3.41 +docs/ps/*
    3.42 +docs/user/WARNINGS
    3.43 +docs/user/images.pl
    3.44 +docs/user/images.tex
    3.45 +docs/user/img1.png
    3.46 +docs/user/img2.png
    3.47 +docs/user/img3.png
    3.48 +docs/user/index.html
    3.49 +docs/user/internals.pl
    3.50 +docs/user/labels.pl
    3.51 +docs/user/user.css
    3.52 +docs/user/user.html
    3.53  extras/mini-os/h/hypervisor-ifs
    3.54 -install
    3.55  install/*
    3.56  linux-*-xen0/*
    3.57  linux-*-xenU/*
    3.58 -linux-2.4.26-xen0
    3.59 -linux-2.4.26-xenU
    3.60 -linux-2.4.26.tar.gz
    3.61 -linux-2.6.7-xenU
    3.62 -linux-2.6.7.tar.bz2
    3.63 +linux-*.patch
    3.64  linux-xen-sparse
    3.65 -patches/*
    3.66 +mkddbxen
    3.67 +netbsd-*-tools/*
    3.68 +netbsd-*-xen0/*
    3.69 +netbsd-*-xenU/*
    3.70 +netbsd-*.patch
    3.71 +patches/ebtables-brnf-5_vs_2.4.25.diff
    3.72 +patches/ebtables.diff
    3.73 +patches/tmp/*
    3.74 +pristine-*
    3.75  tools/*/build/lib*/*.py
    3.76  tools/balloon/balloon
    3.77 +tools/check/.*
    3.78 +tools/cmdline/xen/*
    3.79 +tools/ioemu/iodev/device-model
    3.80 +tools/libxc/xen/*
    3.81  tools/misc/miniterm/miniterm
    3.82  tools/misc/xen_cpuperf
    3.83 +tools/misc/xenperf
    3.84 +tools/vnet/gc
    3.85 +tools/vnet/gc*/*
    3.86 +tools/vnet/vnet-module/*.ko
    3.87 +tools/vnet/vnet-module/.*.cmd
    3.88 +tools/vnet/vnet-module/.tmp_versions/*
    3.89 +tools/vnet/vnet-module/vnet_module.mod.*
    3.90 +tools/vnetd/vnetd
    3.91  tools/web-shutdown.tap
    3.92 +tools/x2d2/minixend
    3.93 +tools/xcs/xcs
    3.94 +tools/xcs/xcsdump
    3.95  tools/xentrace/xentrace
    3.96  tools/xfrd/xfrd
    3.97 +xen/BLOG
    3.98 +xen/arch/x86/asm-offsets.s
    3.99  xen/arch/x86/boot/mkelf32
   3.100 +xen/ddb/*
   3.101  xen/drivers/pci/classlist.h
   3.102  xen/drivers/pci/devlist.h
   3.103  xen/drivers/pci/gen-devlist
   3.104  xen/figlet/figlet
   3.105  xen/include/asm
   3.106 +xen/include/asm-*/asm-offsets.h
   3.107  xen/include/hypervisor-ifs/arch
   3.108 +xen/include/xen/*.new
   3.109 +xen/include/xen/banner.h
   3.110  xen/include/xen/compile.h
   3.111  xen/tools/elf-reloc
   3.112  xen/tools/figlet/figlet
   3.113  xen/xen
   3.114  xen/xen-syms
   3.115  xen/xen.*
   3.116 -xen/common/sched_atropos.c.smh
     4.1 --- a/BitKeeper/etc/logging_ok	Fri Aug 06 12:20:20 2004 +0000
     4.2 +++ b/BitKeeper/etc/logging_ok	Thu Feb 10 13:17:10 2005 +0000
     4.3 @@ -9,36 +9,59 @@ bd240@labyrinth.cl.cam.ac.uk
     4.4  br260@br260.wolfson.cam.ac.uk
     4.5  br260@labyrinth.cl.cam.ac.uk
     4.6  br260@laudney.cl.cam.ac.uk
     4.7 +bren@anvil.research
     4.8 +cl349@arcadians.cl.cam.ac.uk
     4.9  cl349@freefall.cl.cam.ac.uk
    4.10 +cl349@labyrinth.cl.cam.ac.uk
    4.11 +cwc22@centipede.cl.cam.ac.uk
    4.12  djm@kirby.fc.hp.com
    4.13  gm281@boulderdash.cl.cam.ac.uk
    4.14 +gm281@tetrapod.cl.cam.ac.uk
    4.15 +harry@dory.(none)
    4.16  iap10@freefall.cl.cam.ac.uk
    4.17  iap10@labyrinth.cl.cam.ac.uk
    4.18  iap10@nidd.cl.cam.ac.uk
    4.19 +iap10@pb001.cl.cam.ac.uk
    4.20 +iap10@pb007.cl.cam.ac.uk
    4.21  iap10@striker.cl.cam.ac.uk
    4.22  iap10@tetris.cl.cam.ac.uk
    4.23  jws22@gauntlet.cl.cam.ac.uk
    4.24  jws@cairnwell.research
    4.25 +kaf24@camelot.eng.3leafnetworks.com
    4.26 +kaf24@firebug.cl.cam.ac.uk
    4.27 +kaf24@freefall.cl.cam.ac.uk
    4.28  kaf24@labyrinth.cl.cam.ac.uk
    4.29 +kaf24@pb001.cl.cam.ac.uk
    4.30 +kaf24@penguin.local
    4.31 +kaf24@planb.cl.cam.ac.uk
    4.32  kaf24@plym.cl.cam.ac.uk
    4.33  kaf24@scramble.cl.cam.ac.uk
    4.34  kaf24@striker.cl.cam.ac.uk
    4.35 +kaf24@viper.(none)
    4.36  laudney@eclipse.(none)
    4.37  lynx@idefix.cl.cam.ac.uk
    4.38 +mafetter@fleming.research
    4.39 +mark@maw48.kings.cam.ac.uk
    4.40  maw48@labyrinth.cl.cam.ac.uk
    4.41  mjw@wray-m-3.hpl.hp.com
    4.42 +mwilli2@anvil.research
    4.43 +mwilli2@equilibrium.research
    4.44  mwilli2@equilibrium.research.intel-research.net
    4.45 +mwilli2@pug.(none)
    4.46  rac61@labyrinth.cl.cam.ac.uk
    4.47  rgr22@boulderdash.cl.cam.ac.uk
    4.48  rn@wyvis.camb.intel-research.net
    4.49  rn@wyvis.research.intel-research.net
    4.50  rneugeba@wyvis.research
    4.51  rneugeba@wyvis.research.intel-research.net
    4.52 +sd386@font.cl.cam.ac.uk
    4.53 +shand@spidean.research.intel-research.net
    4.54  smh22@boulderdash.cl.cam.ac.uk
    4.55  smh22@labyrinth.cl.cam.ac.uk
    4.56  smh22@tempest.cl.cam.ac.uk
    4.57  smh22@uridium.cl.cam.ac.uk
    4.58  sos22@donkeykong.cl.cam.ac.uk
    4.59 +sos22@douglas.cl.cam.ac.uk
    4.60  sos22@labyrinth.cl.cam.ac.uk
    4.61  tlh20@elite.cl.cam.ac.uk
    4.62  tlh20@labyrinth.cl.cam.ac.uk
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/COPYING	Thu Feb 10 13:17:10 2005 +0000
     5.3 @@ -0,0 +1,369 @@
     5.4 +
     5.5 +GNU General Public License
     5.6 +--------------------------
     5.7 +
     5.8 +Most files in this repository are licensed under the terms of the GNU
     5.9 +General Public License (GPL), a copy of which is attached at the end
    5.10 +of this notice. Note that the only valid version of the GPL as far as
    5.11 +the files in this repository are concerned is _this_ particular
    5.12 +version of the license (i.e., *only* v2, not v2.2 or v3.x or
    5.13 +whatever), unless explicitly otherwise stated.
    5.14 +
    5.15 +Licensing Exceptions (the relaxed BSD-style license)
    5.16 +----------------------------------------------------
    5.17 +
    5.18 +For the convenience of users and those who are porting OSes to run as
    5.19 +Xen guests, certain files in this repository are not subject to the
    5.20 +GPL when distributed separately or included in software packages
    5.21 +outside this repository. Instead we specify a much more relaxed
    5.22 +BSD-style license. Affected files include the Xen interface headers
    5.23 +(xen/include/public/COPYING), and various drivers, support functions
    5.24 +and header files within the Linux sparse source trees. In all such
    5.25 +cases, license terms are stated at the top of the file or in a COPYING
    5.26 +file in the same directory. Note that _any_ file that is modified and
    5.27 +then distributed within a Linux kernel is still subject to the GNU GPL.
    5.28 +
    5.29 + -- Keir Fraser (on behalf of the Xen team)
    5.30 +
    5.31 +=====================================================================
    5.32 +
    5.33 +		    GNU GENERAL PUBLIC LICENSE
    5.34 +		       Version 2, June 1991
    5.35 +
    5.36 + Copyright (C) 1989, 1991 Free Software Foundation, Inc.
    5.37 +                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    5.38 + Everyone is permitted to copy and distribute verbatim copies
    5.39 + of this license document, but changing it is not allowed.
    5.40 +
    5.41 +			    Preamble
    5.42 +
    5.43 +  The licenses for most software are designed to take away your
    5.44 +freedom to share and change it.  By contrast, the GNU General Public
    5.45 +License is intended to guarantee your freedom to share and change free
    5.46 +software--to make sure the software is free for all its users.  This
    5.47 +General Public License applies to most of the Free Software
    5.48 +Foundation's software and to any other program whose authors commit to
    5.49 +using it.  (Some other Free Software Foundation software is covered by
    5.50 +the GNU Library General Public License instead.)  You can apply it to
    5.51 +your programs, too.
    5.52 +
    5.53 +  When we speak of free software, we are referring to freedom, not
    5.54 +price.  Our General Public Licenses are designed to make sure that you
    5.55 +have the freedom to distribute copies of free software (and charge for
    5.56 +this service if you wish), that you receive source code or can get it
    5.57 +if you want it, that you can change the software or use pieces of it
    5.58 +in new free programs; and that you know you can do these things.
    5.59 +
    5.60 +  To protect your rights, we need to make restrictions that forbid
    5.61 +anyone to deny you these rights or to ask you to surrender the rights.
    5.62 +These restrictions translate to certain responsibilities for you if you
    5.63 +distribute copies of the software, or if you modify it.
    5.64 +
    5.65 +  For example, if you distribute copies of such a program, whether
    5.66 +gratis or for a fee, you must give the recipients all the rights that
    5.67 +you have.  You must make sure that they, too, receive or can get the
    5.68 +source code.  And you must show them these terms so they know their
    5.69 +rights.
    5.70 +
    5.71 +  We protect your rights with two steps: (1) copyright the software, and
    5.72 +(2) offer you this license which gives you legal permission to copy,
    5.73 +distribute and/or modify the software.
    5.74 +
    5.75 +  Also, for each author's protection and ours, we want to make certain
    5.76 +that everyone understands that there is no warranty for this free
    5.77 +software.  If the software is modified by someone else and passed on, we
    5.78 +want its recipients to know that what they have is not the original, so
    5.79 +that any problems introduced by others will not reflect on the original
    5.80 +authors' reputations.
    5.81 +
    5.82 +  Finally, any free program is threatened constantly by software
    5.83 +patents.  We wish to avoid the danger that redistributors of a free
    5.84 +program will individually obtain patent licenses, in effect making the
    5.85 +program proprietary.  To prevent this, we have made it clear that any
    5.86 +patent must be licensed for everyone's free use or not licensed at all.
    5.87 +
    5.88 +  The precise terms and conditions for copying, distribution and
    5.89 +modification follow.
    5.90 +
    5.91 +		    GNU GENERAL PUBLIC LICENSE
    5.92 +   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
    5.93 +
    5.94 +  0. This License applies to any program or other work which contains
    5.95 +a notice placed by the copyright holder saying it may be distributed
    5.96 +under the terms of this General Public License.  The "Program", below,
    5.97 +refers to any such program or work, and a "work based on the Program"
    5.98 +means either the Program or any derivative work under copyright law:
    5.99 +that is to say, a work containing the Program or a portion of it,
   5.100 +either verbatim or with modifications and/or translated into another
   5.101 +language.  (Hereinafter, translation is included without limitation in
   5.102 +the term "modification".)  Each licensee is addressed as "you".
   5.103 +
   5.104 +Activities other than copying, distribution and modification are not
   5.105 +covered by this License; they are outside its scope.  The act of
   5.106 +running the Program is not restricted, and the output from the Program
   5.107 +is covered only if its contents constitute a work based on the
   5.108 +Program (independent of having been made by running the Program).
   5.109 +Whether that is true depends on what the Program does.
   5.110 +
   5.111 +  1. You may copy and distribute verbatim copies of the Program's
   5.112 +source code as you receive it, in any medium, provided that you
   5.113 +conspicuously and appropriately publish on each copy an appropriate
   5.114 +copyright notice and disclaimer of warranty; keep intact all the
   5.115 +notices that refer to this License and to the absence of any warranty;
   5.116 +and give any other recipients of the Program a copy of this License
   5.117 +along with the Program.
   5.118 +
   5.119 +You may charge a fee for the physical act of transferring a copy, and
   5.120 +you may at your option offer warranty protection in exchange for a fee.
   5.121 +
   5.122 +  2. You may modify your copy or copies of the Program or any portion
   5.123 +of it, thus forming a work based on the Program, and copy and
   5.124 +distribute such modifications or work under the terms of Section 1
   5.125 +above, provided that you also meet all of these conditions:
   5.126 +
   5.127 +    a) You must cause the modified files to carry prominent notices
   5.128 +    stating that you changed the files and the date of any change.
   5.129 +
   5.130 +    b) You must cause any work that you distribute or publish, that in
   5.131 +    whole or in part contains or is derived from the Program or any
   5.132 +    part thereof, to be licensed as a whole at no charge to all third
   5.133 +    parties under the terms of this License.
   5.134 +
   5.135 +    c) If the modified program normally reads commands interactively
   5.136 +    when run, you must cause it, when started running for such
   5.137 +    interactive use in the most ordinary way, to print or display an
   5.138 +    announcement including an appropriate copyright notice and a
   5.139 +    notice that there is no warranty (or else, saying that you provide
   5.140 +    a warranty) and that users may redistribute the program under
   5.141 +    these conditions, and telling the user how to view a copy of this
   5.142 +    License.  (Exception: if the Program itself is interactive but
   5.143 +    does not normally print such an announcement, your work based on
   5.144 +    the Program is not required to print an announcement.)
   5.145 +
   5.146 +These requirements apply to the modified work as a whole.  If
   5.147 +identifiable sections of that work are not derived from the Program,
   5.148 +and can be reasonably considered independent and separate works in
   5.149 +themselves, then this License, and its terms, do not apply to those
   5.150 +sections when you distribute them as separate works.  But when you
   5.151 +distribute the same sections as part of a whole which is a work based
   5.152 +on the Program, the distribution of the whole must be on the terms of
   5.153 +this License, whose permissions for other licensees extend to the
   5.154 +entire whole, and thus to each and every part regardless of who wrote it.
   5.155 +
   5.156 +Thus, it is not the intent of this section to claim rights or contest
   5.157 +your rights to work written entirely by you; rather, the intent is to
   5.158 +exercise the right to control the distribution of derivative or
   5.159 +collective works based on the Program.
   5.160 +
   5.161 +In addition, mere aggregation of another work not based on the Program
   5.162 +with the Program (or with a work based on the Program) on a volume of
   5.163 +a storage or distribution medium does not bring the other work under
   5.164 +the scope of this License.
   5.165 +
   5.166 +  3. You may copy and distribute the Program (or a work based on it,
   5.167 +under Section 2) in object code or executable form under the terms of
   5.168 +Sections 1 and 2 above provided that you also do one of the following:
   5.169 +
   5.170 +    a) Accompany it with the complete corresponding machine-readable
   5.171 +    source code, which must be distributed under the terms of Sections
   5.172 +    1 and 2 above on a medium customarily used for software interchange; or,
   5.173 +
   5.174 +    b) Accompany it with a written offer, valid for at least three
   5.175 +    years, to give any third party, for a charge no more than your
   5.176 +    cost of physically performing source distribution, a complete
   5.177 +    machine-readable copy of the corresponding source code, to be
   5.178 +    distributed under the terms of Sections 1 and 2 above on a medium
   5.179 +    customarily used for software interchange; or,
   5.180 +
   5.181 +    c) Accompany it with the information you received as to the offer
   5.182 +    to distribute corresponding source code.  (This alternative is
   5.183 +    allowed only for noncommercial distribution and only if you
   5.184 +    received the program in object code or executable form with such
   5.185 +    an offer, in accord with Subsection b above.)
   5.186 +
   5.187 +The source code for a work means the preferred form of the work for
   5.188 +making modifications to it.  For an executable work, complete source
   5.189 +code means all the source code for all modules it contains, plus any
   5.190 +associated interface definition files, plus the scripts used to
   5.191 +control compilation and installation of the executable.  However, as a
   5.192 +special exception, the source code distributed need not include
   5.193 +anything that is normally distributed (in either source or binary
   5.194 +form) with the major components (compiler, kernel, and so on) of the
   5.195 +operating system on which the executable runs, unless that component
   5.196 +itself accompanies the executable.
   5.197 +
   5.198 +If distribution of executable or object code is made by offering
   5.199 +access to copy from a designated place, then offering equivalent
   5.200 +access to copy the source code from the same place counts as
   5.201 +distribution of the source code, even though third parties are not
   5.202 +compelled to copy the source along with the object code.
   5.203 +
   5.204 +  4. You may not copy, modify, sublicense, or distribute the Program
   5.205 +except as expressly provided under this License.  Any attempt
   5.206 +otherwise to copy, modify, sublicense or distribute the Program is
   5.207 +void, and will automatically terminate your rights under this License.
   5.208 +However, parties who have received copies, or rights, from you under
   5.209 +this License will not have their licenses terminated so long as such
   5.210 +parties remain in full compliance.
   5.211 +
   5.212 +  5. You are not required to accept this License, since you have not
   5.213 +signed it.  However, nothing else grants you permission to modify or
   5.214 +distribute the Program or its derivative works.  These actions are
   5.215 +prohibited by law if you do not accept this License.  Therefore, by
   5.216 +modifying or distributing the Program (or any work based on the
   5.217 +Program), you indicate your acceptance of this License to do so, and
   5.218 +all its terms and conditions for copying, distributing or modifying
   5.219 +the Program or works based on it.
   5.220 +
   5.221 +  6. Each time you redistribute the Program (or any work based on the
   5.222 +Program), the recipient automatically receives a license from the
   5.223 +original licensor to copy, distribute or modify the Program subject to
   5.224 +these terms and conditions.  You may not impose any further
   5.225 +restrictions on the recipients' exercise of the rights granted herein.
   5.226 +You are not responsible for enforcing compliance by third parties to
   5.227 +this License.
   5.228 +
   5.229 +  7. If, as a consequence of a court judgment or allegation of patent
   5.230 +infringement or for any other reason (not limited to patent issues),
   5.231 +conditions are imposed on you (whether by court order, agreement or
   5.232 +otherwise) that contradict the conditions of this License, they do not
   5.233 +excuse you from the conditions of this License.  If you cannot
   5.234 +distribute so as to satisfy simultaneously your obligations under this
   5.235 +License and any other pertinent obligations, then as a consequence you
   5.236 +may not distribute the Program at all.  For example, if a patent
   5.237 +license would not permit royalty-free redistribution of the Program by
   5.238 +all those who receive copies directly or indirectly through you, then
   5.239 +the only way you could satisfy both it and this License would be to
   5.240 +refrain entirely from distribution of the Program.
   5.241 +
   5.242 +If any portion of this section is held invalid or unenforceable under
   5.243 +any particular circumstance, the balance of the section is intended to
   5.244 +apply and the section as a whole is intended to apply in other
   5.245 +circumstances.
   5.246 +
   5.247 +It is not the purpose of this section to induce you to infringe any
   5.248 +patents or other property right claims or to contest validity of any
   5.249 +such claims; this section has the sole purpose of protecting the
   5.250 +integrity of the free software distribution system, which is
   5.251 +implemented by public license practices.  Many people have made
   5.252 +generous contributions to the wide range of software distributed
   5.253 +through that system in reliance on consistent application of that
   5.254 +system; it is up to the author/donor to decide if he or she is willing
   5.255 +to distribute software through any other system and a licensee cannot
   5.256 +impose that choice.
   5.257 +
   5.258 +This section is intended to make thoroughly clear what is believed to
   5.259 +be a consequence of the rest of this License.
   5.260 +
   5.261 +  8. If the distribution and/or use of the Program is restricted in
   5.262 +certain countries either by patents or by copyrighted interfaces, the
   5.263 +original copyright holder who places the Program under this License
   5.264 +may add an explicit geographical distribution limitation excluding
   5.265 +those countries, so that distribution is permitted only in or among
   5.266 +countries not thus excluded.  In such case, this License incorporates
   5.267 +the limitation as if written in the body of this License.
   5.268 +
   5.269 +  9. The Free Software Foundation may publish revised and/or new versions
   5.270 +of the General Public License from time to time.  Such new versions will
   5.271 +be similar in spirit to the present version, but may differ in detail to
   5.272 +address new problems or concerns.
   5.273 +
   5.274 +Each version is given a distinguishing version number.  If the Program
   5.275 +specifies a version number of this License which applies to it and "any
   5.276 +later version", you have the option of following the terms and conditions
   5.277 +either of that version or of any later version published by the Free
   5.278 +Software Foundation.  If the Program does not specify a version number of
   5.279 +this License, you may choose any version ever published by the Free Software
   5.280 +Foundation.
   5.281 +
   5.282 +  10. If you wish to incorporate parts of the Program into other free
   5.283 +programs whose distribution conditions are different, write to the author
   5.284 +to ask for permission.  For software which is copyrighted by the Free
   5.285 +Software Foundation, write to the Free Software Foundation; we sometimes
   5.286 +make exceptions for this.  Our decision will be guided by the two goals
   5.287 +of preserving the free status of all derivatives of our free software and
   5.288 +of promoting the sharing and reuse of software generally.
   5.289 +
   5.290 +			    NO WARRANTY
   5.291 +
   5.292 +  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
   5.293 +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
   5.294 +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
   5.295 +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
   5.296 +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
   5.297 +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
   5.298 +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
   5.299 +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
   5.300 +REPAIR OR CORRECTION.
   5.301 +
   5.302 +  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
   5.303 +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
   5.304 +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
   5.305 +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
   5.306 +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
   5.307 +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
   5.308 +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
   5.309 +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
   5.310 +POSSIBILITY OF SUCH DAMAGES.
   5.311 +
   5.312 +		     END OF TERMS AND CONDITIONS
   5.313 +
   5.314 +	    How to Apply These Terms to Your New Programs
   5.315 +
   5.316 +  If you develop a new program, and you want it to be of the greatest
   5.317 +possible use to the public, the best way to achieve this is to make it
   5.318 +free software which everyone can redistribute and change under these terms.
   5.319 +
   5.320 +  To do so, attach the following notices to the program.  It is safest
   5.321 +to attach them to the start of each source file to most effectively
   5.322 +convey the exclusion of warranty; and each file should have at least
   5.323 +the "copyright" line and a pointer to where the full notice is found.
   5.324 +
   5.325 +    <one line to give the program's name and a brief idea of what it does.>
   5.326 +    Copyright (C) <year>  <name of author>
   5.327 +
   5.328 +    This program is free software; you can redistribute it and/or modify
   5.329 +    it under the terms of the GNU General Public License as published by
   5.330 +    the Free Software Foundation; either version 2 of the License, or
   5.331 +    (at your option) any later version.
   5.332 +
   5.333 +    This program is distributed in the hope that it will be useful,
   5.334 +    but WITHOUT ANY WARRANTY; without even the implied warranty of
   5.335 +    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   5.336 +    GNU General Public License for more details.
   5.337 +
   5.338 +    You should have received a copy of the GNU General Public License
   5.339 +    along with this program; if not, write to the Free Software
   5.340 +    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
   5.341 +
   5.342 +
   5.343 +Also add information on how to contact you by electronic and paper mail.
   5.344 +
   5.345 +If the program is interactive, make it output a short notice like this
   5.346 +when it starts in an interactive mode:
   5.347 +
   5.348 +    Gnomovision version 69, Copyright (C) year name of author
   5.349 +    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
   5.350 +    This is free software, and you are welcome to redistribute it
   5.351 +    under certain conditions; type `show c' for details.
   5.352 +
   5.353 +The hypothetical commands `show w' and `show c' should show the appropriate
   5.354 +parts of the General Public License.  Of course, the commands you use may
   5.355 +be called something other than `show w' and `show c'; they could even be
   5.356 +mouse-clicks or menu items--whatever suits your program.
   5.357 +
   5.358 +You should also get your employer (if you work as a programmer) or your
   5.359 +school, if any, to sign a "copyright disclaimer" for the program, if
   5.360 +necessary.  Here is a sample; alter the names:
   5.361 +
   5.362 +  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
   5.363 +  `Gnomovision' (which makes passes at compilers) written by James Hacker.
   5.364 +
   5.365 +  <signature of Ty Coon>, 1 April 1989
   5.366 +  Ty Coon, President of Vice
   5.367 +
   5.368 +This General Public License does not permit incorporating your program into
   5.369 +proprietary programs.  If your program is a subroutine library, you may
   5.370 +consider it more useful to permit linking proprietary applications with the
   5.371 +library.  If this is what you want to do, use the GNU Library General
   5.372 +Public License instead of this License.
     6.1 --- a/Makefile	Fri Aug 06 12:20:20 2004 +0000
     6.2 +++ b/Makefile	Thu Feb 10 13:17:10 2005 +0000
     6.3 @@ -2,164 +2,180 @@
     6.4  # Grand Unified Makefile for Xen.
     6.5  #
     6.6  
     6.7 -INSTALL_DIR ?= $(shell pwd)/install
     6.8 -
     6.9 -SOURCEFORGE_MIRROR := http://heanet.dl.sourceforge.net/sourceforge
    6.10 -#http://voxel.dl.sourceforge.net/sourceforge/
    6.11 -#http://easynews.dl.sourceforge.net/sourceforge
    6.12 -
    6.13 -.PHONY: docs delete-symlinks clean
    6.14 -
    6.15 -# a not partcularly useful but safe default target
    6.16 -all: make-symlinks
    6.17 -	$(MAKE) prefix=$(INSTALL_DIR) dist=yes -C xen install
    6.18 -	$(MAKE) prefix=$(INSTALL_DIR) dist=yes -C tools install
    6.19 -
    6.20 -# install everything into the standard system directories
    6.21 -install: dist
    6.22 -	$(MAKE) -C xen install
    6.23 -	$(MAKE) -C tools install
    6.24 -	$(shell cp -a install/boot/*$(LINUX_VER)* /boot/)
    6.25 -	$(shell cp -a install/lib/modules/* /lib/modules/)
    6.26 +# Default is to install to local 'dist' directory.
    6.27 +DISTDIR ?= $(CURDIR)/dist
    6.28 +DESTDIR ?= $(DISTDIR)/install
    6.29  
    6.30 -# install xen and tools into the install directory
    6.31 -dist: all
    6.32 -	$(MAKE) linux-xenU
    6.33 -	$(MAKE) linux-xen0
    6.34 +INSTALL		:= install
    6.35 +INSTALL_DIR	:= $(INSTALL) -d -m0755
    6.36 +INSTALL_DATA	:= $(INSTALL) -m0644
    6.37 +INSTALL_PROG	:= $(INSTALL) -m0755
    6.38  
    6.39 -LINUX_RELEASE    ?= 2.4
    6.40 -LINUX_VER        ?= $(shell ( /bin/ls -ld linux-$(LINUX_RELEASE).*-xen-sparse ) 2>/dev/null | \
    6.41 -		      sed -e 's!^.*linux-\(.\+\)-xen-sparse!\1!' )
    6.42 -LINUX26_VER      ?= $(shell ( /bin/ls -ld linux-2.6.*-xen-sparse ) 2>/dev/null | \
    6.43 -		      sed -e 's!^.*linux-\(.\+\)-xen-sparse!\1!' )
    6.44 -LINUX_CONFIG_DIR ?= $(INSTALL_DIR)/boot
    6.45 -LINUX_SRC_PATH   ?= .:..
    6.46 -LINUX_SRC        ?= $(firstword $(foreach dir,$(subst :, ,$(LINUX_SRC_PATH)),\
    6.47 -                    $(wildcard $(dir)/linux-$(LINUX_VER).tar.*z*)))
    6.48 +KERNELS ?= linux-2.6-xen0 linux-2.6-xenU
    6.49 +# linux-2.4-xen0 linux-2.4-xenU netbsd-2.0-xenU
    6.50 +# You may use wildcards in the above e.g. KERNELS=*2.4*
    6.51  
    6.52 -# search for a pristine kernel tar ball, or try downloading one
    6.53 -pristine-linux-src: 
    6.54 -ifeq ($(LINUX_SRC),)
    6.55 -	@echo "Cannot find linux-$(LINUX_VER).tar.gz in path $(LINUX_SRC_PATH)"
    6.56 -	@wget http://www.kernel.org/pub/linux/kernel/v$(LINUX_RELEASE)/linux-$(LINUX_VER).tar.bz2 -O./linux-$(LINUX_VER).tar.bz2
    6.57 -LINUX_SRC := ./linux-$(LINUX_VER).tar.bz2 
    6.58 +ALLKERNELS = $(patsubst buildconfigs/mk.%,%,$(wildcard buildconfigs/mk.*))
    6.59 +ALLSPARSETREES = $(patsubst %-xen-sparse,%,$(wildcard *-xen-sparse))
    6.60 +XKERNELS := $(foreach kernel, $(KERNELS), $(patsubst buildconfigs/mk.%,%,$(wildcard buildconfigs/mk.$(kernel))) )
    6.61 +
    6.62 +export DESTDIR
    6.63 +
    6.64 +# Export target architecture overrides to Xen and Linux sub-trees.
    6.65 +ifneq ($(TARGET_ARCH),)
    6.66 +SUBARCH := $(subst x86_32,i386,$(TARGET_ARCH))
    6.67 +export TARGET_ARCH SUBARCH
    6.68  endif
    6.69  
    6.70 -patches/ebtables-brnf-5_vs_2.4.25.diff:
    6.71 -	mkdir -p patches
    6.72 -	wget $(SOURCEFORGE_MIRROR)/ebtables/ebtables-brnf-5_vs_2.4.25.diff.gz \
    6.73 -	     -O- | gunzip -c > $@
    6.74 -
    6.75 -LINUX_TREES := linux-$(LINUX_VER)-xen0 linux-$(LINUX_VER)-xenU
    6.76 +include buildconfigs/Rules.mk
    6.77  
    6.78 -# make a linux-xen build tree from a pristine kernel plus sparse tree
    6.79 -ifeq ($(LINUX_RELEASE),2.4)
    6.80 -mk-linux-trees: patches/ebtables-brnf-5_vs_2.4.25.diff pristine-linux-src 
    6.81 -	$(RM) -rf $(LINUX_TREES)
    6.82 -	echo $(LINUX_SRC) | grep -q bz2 && \
    6.83 -	    tar -jxf $(LINUX_SRC) || tar -zxf $(LINUX_SRC)
    6.84 -	mv linux-$(LINUX_VER) linux-$(LINUX_VER)-xen0
    6.85 -	( cd linux-$(LINUX_VER)-xen-sparse ; \
    6.86 -          ./mkbuildtree ../linux-$(LINUX_VER)-xen0 )
    6.87 -	cp -al linux-$(LINUX_VER)-xen0 linux-$(LINUX_VER)-xenU
    6.88 -	( cd linux-$(LINUX_VER)-xen0 ; \
    6.89 -          patch -p1 -F3 < ../patches/ebtables-brnf-5_vs_2.4.25.diff )
    6.90 -else
    6.91 -mk-linux-trees: pristine-linux-src 
    6.92 -	$(RM) -rf $(LINUX_TREES)
    6.93 -	echo $(LINUX_SRC) | grep -q bz2 && \
    6.94 -	    tar -jxf $(LINUX_SRC) || tar -zxf $(LINUX_SRC)
    6.95 -	mv linux-$(LINUX_VER) linux-$(LINUX_VER)-xen0
    6.96 -	( cd linux-$(LINUX_VER)-xen-sparse ; \
    6.97 -          ./mkbuildtree ../linux-$(LINUX_VER)-xen0 )
    6.98 -	cp -al linux-$(LINUX_VER)-xen0 linux-$(LINUX_VER)-xenU
    6.99 -endif
   6.100 +.PHONY:	all dist install xen tools kernels docs world clean mkpatches mrproper
   6.101 +.PHONY:	kbuild kdelete kclean
   6.102  
   6.103 -# configure the specified linux tree
   6.104 -CDIR = $(subst config-,linux-$(LINUX_VER)-,$@)
   6.105 -ifeq ($(LINUX_RELEASE),2.4)
   6.106 -config-xen%:
   6.107 -	$(MAKE) -C $(CDIR) ARCH=xen mrproper
   6.108 -	cp $(LINUX_CONFIG_DIR)/config-$(LINUX_VER)-$(subst config-,,$@) \
   6.109 -	    $(CDIR)/.config || \
   6.110 -	    $(MAKE) -C $(CDIR) ARCH=xen $(subst config-,,$@)_config
   6.111 -	$(MAKE) -C $(CDIR) ARCH=xen oldconfig
   6.112 -	$(MAKE) -C $(CDIR) ARCH=xen dep
   6.113 -else
   6.114 -config-xen%:
   6.115 -	$(MAKE) -C $(CDIR) ARCH=xen mrproper
   6.116 -	@[ -e $(LINUX_CONFIG_DIR)/config-$(LINUX_VER)-$(subst config-,,$@) ] \
   6.117 -	  && cp $(LINUX_CONFIG_DIR)/config-$(LINUX_VER)-$(subst config-,,$@) \
   6.118 -		$(CDIR)/.config || \
   6.119 -	$(MAKE) -C $(CDIR) ARCH=xen $(subst config-,,$@)_defconfig
   6.120 -endif
   6.121 +all: dist
   6.122  
   6.123 -# build the specified linux tree
   6.124 -BDIR = $(subst linux-,linux-$(LINUX_VER)-,$@)
   6.125 -linux-xen%:	
   6.126 -	$(MAKE) -C $(BDIR) ARCH=xen modules
   6.127 -	$(MAKE) -C $(BDIR) ARCH=xen INSTALL_MOD_PATH=$(INSTALL_DIR) \
   6.128 -	    modules_install
   6.129 -	$(MAKE) -C $(BDIR) ARCH=xen INSTALL_PATH=$(INSTALL_DIR) install
   6.130 +# build and install everything into the standard system directories
   6.131 +install: install-xen install-tools install-kernels install-docs
   6.132 +
   6.133 +# build and install everything into local dist directory
   6.134 +dist: xen tools kernels docs
   6.135 +	$(INSTALL_DIR) $(DISTDIR)/check
   6.136 +	$(INSTALL_DATA) ./COPYING $(DISTDIR)
   6.137 +	$(INSTALL_DATA) ./README $(DISTDIR)
   6.138 +	$(INSTALL_PROG) ./install.sh $(DISTDIR)
   6.139 +	$(INSTALL_PROG) tools/check/chk tools/check/check_* $(DISTDIR)/check
   6.140 +
   6.141 +xen:
   6.142 +	$(MAKE) -C xen install
   6.143 +
   6.144 +tools:
   6.145 +	$(MAKE) -C tools install
   6.146 +
   6.147 +kernels:
   6.148 +	for i in $(XKERNELS) ; do $(MAKE) $$i-build || exit 1; done
   6.149 +
   6.150 +docs:
   6.151 +	sh ./docs/check_pkgs && $(MAKE) -C docs install || true
   6.152 +
   6.153 +# Build all the various kernels and modules
   6.154 +kbuild: kernels
   6.155 +
   6.156 +# Delete the kernel build trees entirely
   6.157 +kdelete:
   6.158 +	for i in $(XKERNELS) ; do $(MAKE) $$i-delete ; done
   6.159 +
   6.160 +# Clean the kernel build trees
   6.161 +kclean:
   6.162 +	for i in $(XKERNELS) ; do $(MAKE) $$i-clean ; done
   6.163 +
   6.164 +# Make patches from kernel sparse trees
   6.165 +mkpatches:
   6.166 +	for i in $(ALLSPARSETREES) ; do $(MAKE) $$i-xen.patch || exit 1; done
   6.167 +
   6.168  
   6.169  # build xen, the tools, and a domain 0 plus unprivileged linux-xen images,
   6.170  # and place them in the install directory. 'make install' should then
   6.171  # copy them to the normal system directories
   6.172 -world:
   6.173 +world: 
   6.174  	$(MAKE) clean
   6.175 -	$(MAKE) all
   6.176 -	$(MAKE) mk-linux-trees
   6.177 -	$(MAKE) config-xenU
   6.178 -	$(MAKE) linux-xenU
   6.179 -	$(MAKE) config-xen0
   6.180 -	$(MAKE) linux-xen0
   6.181 -	$(MAKE) docs
   6.182 +	$(MAKE) kdelete
   6.183 +	$(MAKE) dist
   6.184  
   6.185 -linux26:
   6.186 -	$(MAKE) LINUX_RELEASE=2.6 mk-linux-trees
   6.187 -	$(MAKE) LINUX_RELEASE=2.6 config-xenU
   6.188 -	$(MAKE) LINUX_RELEASE=2.6 linux-xenU
   6.189 -	$(MAKE) LINUX_RELEASE=2.6 config-xen0
   6.190 -	$(MAKE) LINUX_RELEASE=2.6 linux-xen0
   6.191 -
   6.192 -
   6.193 -clean: delete-symlinks
   6.194 +# clean doesn't do a kclean
   6.195 +clean: 
   6.196  	$(MAKE) -C xen clean
   6.197  	$(MAKE) -C tools clean
   6.198  	$(MAKE) -C docs clean
   6.199  
   6.200 -# clean, but blow away linux build tree plus src tar ball
   6.201 +# clean, but blow away kernel build tree plus tar balls
   6.202  mrproper: clean
   6.203 -	rm -rf install/* patches $(LINUX_TREES) linux-$(LINUX_VER).tar.*
   6.204 +	rm -rf dist patches/tmp
   6.205 +	for i in $(ALLKERNELS) ; do $(MAKE) $$i-delete ; done
   6.206 +	for i in $(ALLSPARSETREES) ; do $(MAKE) $$i-mrproper ; done
   6.207  
   6.208 -make-symlinks: delete-symlinks
   6.209 -	ln -sf linux-$(LINUX26_VER)-xen-sparse linux-xen-sparse
   6.210 -
   6.211 -delete-symlinks:
   6.212 -	$(RM) linux-xen-sparse
   6.213 -
   6.214 -# handy target to install twisted (use rpm or apt-get in preference)
   6.215  install-twisted:
   6.216  	wget http://www.twistedmatrix.com/products/get-current.epy
   6.217  	tar -zxf Twisted-*.tar.gz
   6.218 -	( cd Twisted-* ; python setup.py install )
   6.219 +	cd Twisted-* && python setup.py install
   6.220  
   6.221  install-logging: LOGGING=logging-0.4.9.2
   6.222  install-logging:
   6.223  	[ -f $(LOGGING).tar.gz ] || wget http://www.red-dove.com/$(LOGGING).tar.gz
   6.224  	tar -zxf $(LOGGING).tar.gz
   6.225 -	( cd $(LOGGING) && python setup.py install )
   6.226 +	cd $(LOGGING) && python setup.py install
   6.227  
   6.228  # handy target to upgrade iptables (use rpm or apt-get in preference)
   6.229  install-iptables:
   6.230  	wget http://www.netfilter.org/files/iptables-1.2.11.tar.bz2
   6.231 -	tar -jxf iptables-*.tar.bz2
   6.232 -	( cd iptables-* ; \
   6.233 -	  make PREFIX= KERNEL_DIR=../linux-$(LINUX_VER)-xen0 install)
   6.234 +	tar -jxf iptables-1.2.11.tar.bz2
   6.235 +	$(MAKE) -C iptables-1.2.11 PREFIX= KERNEL_DIR=../linux-$(LINUX_VER)-xen0 install
   6.236  
   6.237 +install-%: DESTDIR=
   6.238 +install-%: %
   6.239 +	@: # do nothing
   6.240 +
   6.241 +help:
   6.242 +	@echo 'Installation targets:'
   6.243 +	@echo '  install          - build and install everything'
   6.244 +	@echo '  install-xen      - build and install the Xen hypervisor'
   6.245 +	@echo '  install-tools    - build and install the control tools'
   6.246 +	@echo '  install-kernels  - build and install guest kernels'
   6.247 +	@echo '  install-docs     - build and install documentation'
   6.248 +	@echo ''
   6.249 +	@echo 'Building targets:'
   6.250 +	@echo '  dist             - build and install everything into local dist directory'
   6.251 +	@echo '  world            - clean everything, delete guest kernel build'
   6.252 +	@echo '                     trees then make dist'
   6.253 +	@echo '  xen              - build and install Xen hypervisor'
   6.254 +	@echo '  tools            - build and install tools'
   6.255 +	@echo '  kernels          - build and install guest kernels'
   6.256 +	@echo '  kbuild           - synonym for make kernels'
   6.257 +	@echo '  docs             - build and install docs'
   6.258 +	@echo ''
   6.259 +	@echo 'Cleaning targets:'
   6.260 +	@echo '  clean            - clean the Xen, tools and docs (but not'
   6.261 +	@echo '                     guest kernel) trees'
   6.262 +	@echo '  mrproper         - clean plus delete kernel tarballs and kernel'
   6.263 +	@echo '                     build trees'
   6.264 +	@echo '  kdelete          - delete guest kernel build trees'
   6.265 +	@echo '  kclean           - clean guest kernel build trees'
   6.266 +	@echo ''
   6.267 +	@echo 'Dependency installation targets:'
   6.268 +	@echo '  install-twisted  - install the Twisted Matrix Framework'
   6.269 +	@echo '  install-logging  - install the Python Logging package'
   6.270 +	@echo '  install-iptables - install iptables tools'
   6.271 +	@echo ''
   6.272 +	@echo 'Miscellaneous targets:'
   6.273 +	@echo '  mkpatches        - make patches against vanilla kernels from'
   6.274 +	@echo '                     sparse trees'
   6.275 +	@echo '  uninstall        - attempt to remove installed Xen tools (use'
   6.276 +	@echo '                     with extreme care!)'
   6.277 +
   6.278 +# Use this target with extreme care!
   6.279 +uninstall: DESTDIR=
   6.280 +uninstall: D=$(DESTDIR)
   6.281  uninstall:
   6.282 -	cp -a /etc/xen /etc/xen.old && rm -rf /etc/xen 
   6.283 -	rm -rf "/usr/lib/python2.2/site-packages/xen* /usr/lib/libxc* /usr/lib/python2.2/site-packages/Xc*"
   6.284 +	[ ! -d $(D)/etc/xen ] || mv -f $(D)/etc/xen $(D)/etc/xen.old
   6.285 +	rm -rf $(D)/etc/init.d/xend*
   6.286 +	rm -rf $(D)/usr/lib/libxc* $(D)/usr/lib/libxutil*
   6.287 +	rm -rf $(D)/usr/lib/python/xen $(D)/usr/include/xen
   6.288 +	rm -rf $(D)/usr/include/xcs_proto.h $(D)/usr/include/xc.h
   6.289 +	rm -rf $(D)/usr/sbin/xcs $(D)/usr/sbin/xcsdump $(D)/usr/sbin/xen*
   6.290 +	rm -rf $(D)/usr/sbin/netfix
   6.291 +	rm -rf $(D)/usr/sbin/xfrd $(D)/usr/sbin/xm $(D)/var/lib/xen
   6.292 +	rm -rf $(D)/usr/share/doc/xen  $(D)/usr/man/man*/xentrace*
   6.293 +	rm -rf $(D)/usr/bin/xen* $(D)/usr/bin/miniterm
   6.294 +	rm -rf $(D)/boot/*xen*
   6.295  
   6.296 -docs:
   6.297 -	$(MAKE) -C docs all || true
   6.298 +# Legacy targets for compatibility
   6.299 +linux24:
   6.300 +	$(MAKE) linux-2.4-xen0-build
   6.301 +	$(MAKE) linux-2.4-xenU-build
   6.302 +
   6.303 +linux26:
   6.304 +	$(MAKE) linux-2.6-xen0-build
   6.305 +	$(MAKE) linux-2.6-xenU-build
   6.306 +
   6.307 +netbsd20:
   6.308 +	$(MAKE) netbsd-2.0-xenU-build
   6.309 +
     7.1 --- a/README	Fri Aug 06 12:20:20 2004 +0000
     7.2 +++ b/README	Thu Feb 10 13:17:10 2005 +0000
     7.3 @@ -1,219 +1,81 @@
     7.4 -#############################
     7.5 - __  __            _   _____ 
     7.6 - \ \/ /___ _ __   / | |___ / 
     7.7 -  \  // _ \ '_ \  | |   |_ \ 
     7.8 -  /  \  __/ | | | | |_ ___) |
     7.9 - /_/\_\___|_| |_| |_(_)____/ 
    7.10 -                                              
    7.11 -#############################
    7.12 +###############################
    7.13 +__  __            ____    ___
    7.14 +\ \/ /___ _ __   |___ \  / _ \
    7.15 + \  // _ \ '_ \    __) || | | |
    7.16 + /  \  __/ | | |  / __/ | |_| |
    7.17 +/_/\_\___|_| |_| |_____(_)___/
    7.18 +
    7.19 +###############################
    7.20  
    7.21  University of Cambridge Computer Laboratory
    7.22 -15 Jun 2004
    7.23 -
    7.24 -http://www.cl.cam.ac.uk/netos/xen
    7.25 -
    7.26 -About the Xen Virtual Machine Monitor
    7.27 -=====================================
    7.28 -
    7.29 -"Xen" is a Virtual Machine Monitor (VMM) originally developed by the
    7.30 -Systems Research Group of the University of Cambridge Computer
    7.31 -Laboratory, as part of the UK-EPSRC funded XenoServers project. 
    7.32 -
    7.33 -The XenoServers project aims to provide a "public infrastructure for
    7.34 -global distributed computing", and Xen plays a key part in that,
    7.35 -allowing us to efficiently partition a single machine to enable
    7.36 -multiple independent clients to run their operating systems and
    7.37 -applications in an environment providing protection, resource
    7.38 -isolation and accounting.  The project web page contains further
    7.39 -information along with pointers to papers and technical reports:
    7.40 -http://www.cl.cam.ac.uk/xeno
    7.41 -
    7.42 -Xen has since grown into a project in its own right, enabling us to
    7.43 -investigate interesting research issues regarding the best techniques
    7.44 -for virtualizing resources such as the CPU, memory, disk and network.
    7.45 -The project has been bolstered by support from Intel Research
    7.46 -Cambridge, and HP Labs, who are now working closely with us. We're
    7.47 -also in receipt of support from Microsoft Research Cambridge to port
    7.48 -Windows XP to run on Xen.
    7.49 -
    7.50 -Xen enables multiple operating system images to execute concurrently 
    7.51 -on the same hardware with very low performance overhead --- much lower
    7.52 -than commercial offerings for the same x86 platform.
    7.53 -
    7.54 -This is achieved by requiring OSs to be specifically ported to run on
    7.55 -Xen, rather than allowing unmodified OS images to be used. Crucially,
    7.56 -only the OS needs to be changed -- all of the user-level application
    7.57 -binaries, libraries etc can run unmodified. Hence the modified OS
    7.58 -kernel can typically just be dropped into any existing OS distribution
    7.59 -or installation.
    7.60 -
    7.61 -Xen currently runs on the x86 architecture, but could in principle be
    7.62 -ported to others. In fact, it would have been rather easier to write
    7.63 -Xen for pretty much any other architecture as x86 is particularly 
    7.64 -tricky to handle. A good description of Xen's design, implementation 
    7.65 -and performance is contained in our October 2003 SOSP paper, available
    7.66 -at http://www.cl.cam.ac.uk/netos/papers/2003-xensosp.pdf
    7.67 -[update: work to port Xen to x86_64 and IA64 is underway]
    7.68 -
    7.69 -Five different operating systems have been ported to run on Xen: 
    7.70 -Linux 2.4/2.6, Windows XP, NetBSD, FreeBSD and Plan 9.
    7.71 -
    7.72 -The Linux 2.4 port (currently Linux 2.4.26) works very well -- we
    7.73 -regularly use it to host complex applications such as PostgreSQL,
    7.74 -Apache, BK servers etc. It runs every user-space applications we've
    7.75 -tried.  We refer to our version of Linux ported to run on Xen as
    7.76 -"XenLinux", although really it's just standard Linux ported to a new
    7.77 -virtual CPU architecture that we call xen-x86.
    7.78 -
    7.79 -NetBSD has been ported to Xen by Christian Limpach, and will hopefully
    7.80 -soon become part of the standard release. Work on a FreeBSD port has
    7.81 -been started by Kip Macy, and we hope to see this complete for the 2.0
    7.82 -release. Ron Minnich has been working on Plan 9.
    7.83 -
    7.84 -The Windows XP port is nearly finished. It's running user space
    7.85 -applications and is generally in pretty good shape thanks to some hard
    7.86 -work by a team over the summer.  Of course, there are issues with
    7.87 -releasing this code to others.  We should be able to release the
    7.88 -source and binaries to anyone that has signed the Microsoft academic
    7.89 -source license, which these days has very reasonable terms. We are in
    7.90 -discussions with Microsoft about the possibility of being able to make
    7.91 -binary releases to a larger user community. Obviously, there are
    7.92 -issues with product activation in this environment which need to be 
    7.93 -thought through.
    7.94 -
    7.95 -So, for the moment, you only get to run Linux 2.4/2.6 and NetBSD on
    7.96 -Xen, but we hope this will change before too long.  Even running
    7.97 -multiple copies of the same OS can be very useful, as it provides a
    7.98 -means of containing faults to one OS image, and also for providing
    7.99 -performance isolation between the various OS, enabling you to either
   7.100 -restrict, or reserve resources for, particular VM instances.
   7.101 -
   7.102 -It's also useful for development -- each version of Linux can have
   7.103 -different patches applied, enabling different kernels to be tried
   7.104 -out. For example, the "vservers" patch used by PlanetLab applies
   7.105 -cleanly to our ported version of Linux.
   7.106 -
   7.107 -We've successfully booted over 128 copies of Linux on the same machine
   7.108 -(a dual CPU hyperthreaded Xeon box) but we imagine that it would be
   7.109 -more normal to use some smaller number, perhaps 10-20.
   7.110 -
   7.111 -A common question is "how many virtual machines can I run on hardware
   7.112 -xyz?". The answer is very application dependent, but the rule of thumb
   7.113 -is that you should expect to be able to run the same workload under
   7.114 -multiple guest OSes that you could run under a single Linux instance,
   7.115 -with an additional overhead of a few MB per OS instance.
   7.116 -
   7.117 -One key feature in this new release of Xen is `live migration'. This
   7.118 -enables virtual machines instances to be dynamically moved between
   7.119 -physical Xen machines, with typical downtimes of just a few tens of
   7.120 -milliseconds. This is really useful for admins that want to take a
   7.121 -node down for maintenance, or to load balance a large number of
   7.122 -virtual machines across a cluster.
   7.123 -
   7.124 -
   7.125 +3 November 2004
   7.126  
   7.127 -Hardware support
   7.128 -================
   7.129 -
   7.130 -Xen is intended to be run on server-class machines, and the current
   7.131 -list of supported hardware very much reflects this, avoiding the need
   7.132 -for us to write drivers for "legacy" hardware. It is likely that some
   7.133 -desktop chipsets will fail to work properly with the default Xen
   7.134 -configuration: specifying 'noacpi' or 'ignorebiostables' when booting
   7.135 -Xen may help in these cases.
   7.136 -
   7.137 -Xen requires a "P6" or newer processor (e.g. Pentium Pro, Celeron,
   7.138 -Pentium II, Pentium III, Pentium IV, Xeon, AMD Athlon, AMD Duron).
   7.139 -Multiprocessor machines are supported, and we also have basic support
   7.140 -for HyperThreading (SMT), although this remains a topic for ongoing
   7.141 -research. We're also working on an AMD x86_64 port (though Xen should
   7.142 -run on Opterons in 32-bit mode just fine).
   7.143 -
   7.144 -Xen can currently use up to 4GB of memory. It's possible for x86
   7.145 -machines to address more than that (64GB), but it requires using a
   7.146 -different page table format (3-level rather than 2-level) that we
   7.147 -currently don't support. Adding 3-level PAE support wouldn't be
   7.148 -difficult, but we'd also need to add support to all the guest
   7.149 -OSs. Volunteers welcome!
   7.150 -
   7.151 -In contrast to previous Xen versions, in Xen 2.0 device drivers run
   7.152 -within a privileged guest OS rather than within Xen itself. This means
   7.153 -that we should be compatible with the full set of device hardware
   7.154 -supported by Linux.  The default XenLinux build contains support for
   7.155 -relatively modern server-class network and disk hardware, but you can
   7.156 -add suppport for other hardware by configuring your XenLinux kernel in
   7.157 -the normal way (e.g. "make xconfig").
   7.158 -
   7.159 -
   7.160 -Building Xen and XenLinux
   7.161 -=========================
   7.162 -
   7.163 -The public master BK repository for the 2.0 release lives at: 
   7.164 -bk://xen.bkbits.net/xeno-2.0.bk
   7.165 -
   7.166 -To fetch a local copy, install the BitKeeper tools, then run: 
   7.167 -'bk clone bk://xen.bkbits.net/xeno-2.0.bk'
   7.168 -
   7.169 -You can do a complete build of Xen, the control tools, and the
   7.170 -XenLinux kernel images with "make world". This can take 10 minutes
   7.171 -even on a fast machine. If you're on an SMP machine you may wish to
   7.172 -give the '-j4' argument to make to get a parallel build.  All of the
   7.173 -files that are built are placed under the ./install directory.  You
   7.174 -can then install everything to the standard system directories
   7.175 -(e.g. /boot, /usr/bin, /usr/lib/python/ etc) by typing "make install".
   7.176 +http://www.cl.cam.ac.uk/netos/xen/
   7.177  
   7.178 -Take a look in install/boot/:
   7.179 - install/boot/xen.gz               The Xen 'kernel' (formerly image.gz)
   7.180 - install/boot/vmlinuz-2.4.26-xen0  Domain 0 XenLinux kernel (xenolinux.gz)
   7.181 - install/boot/vmlinuz-2.4.26-xenU  Unprivileged XenLinux kernel
   7.182 -
   7.183 -The difference between the two Linux kernels that are built is
   7.184 -due to the configuration file used for each. The "U" suffixed
   7.185 -unprivileged version doesn't contain any of the physical hardware
   7.186 -device drivers, so is 30% smaller and hence may be preferred for
   7.187 -your non-privileged domains.
   7.188 -
   7.189 -The install/boot directory will also contain the config files
   7.190 -used for building the XenLinux kernels, and also versions of Xen
   7.191 -and XenLinux kernels that contain debug symbols (xen-syms and
   7.192 -vmlinux-syms-2.4.26-xen0) which are essential for interpreting crash
   7.193 -dumps.
   7.194 +What is Xen?
   7.195 +============
   7.196  
   7.197 -Inspect the Makefile if you want to see what goes on during a
   7.198 -build. Building Xen and the tools is straightforward, but XenLinux is
   7.199 -more complicated. The makefile needs a 'pristine' linux kernel tree
   7.200 -which it will then add the Xen architecture files to. You can tell the
   7.201 -makefile the location of the appropriate linux compressed tar file by
   7.202 -setting the LINUX_SRC environment variable
   7.203 -(e.g. "LINUX_SRC=/tmp/linux-2.4.26.tar.gz make world") or by placing
   7.204 -the tar file somewhere in the search path of LINUX_SRC_PATH which
   7.205 -defaults to ".:..". If the makefile can't find a suitable kernel tar
   7.206 -file it attempts to download it from kernel.org, but this won't work
   7.207 -if you're behind a firewall.
   7.208 +Xen is a Virtual Machine Monitor (VMM) originally developed by the
   7.209 +Systems Research Group of the University of Cambridge Computer
   7.210 +Laboratory, as part of the UK-EPSRC funded XenoServers project.
   7.211 +Xen is freely-distributable Open Source software, released under the
   7.212 +GNU GPL.
   7.213  
   7.214 -After untaring the pristine kernel tree, the makefile uses the
   7.215 -'mkbuildtree' script to add the Xen patches the kernel. "make world"
   7.216 -then build two different XenLinux images, one with a "-xen0" extension
   7.217 -which contains hardware device drivers and is intended to be used in
   7.218 -the first virtual machine ("domain 0"), and one with a "-xenU"
   7.219 -extension that just contains virtual-device drivers. The latter can be
   7.220 -used for all non hardware privileged domains, and is substantially
   7.221 -smaller than the other kernel with its selection of hardware drivers.
   7.222 -
   7.223 -If you don't want to use bitkeeper to download the source, you can
   7.224 -download prebuilt binaries and src tar balls from the project
   7.225 -downloads page:  http://www.cl.cam.ac.uk/netos/xen/downloads/
   7.226 +The 2.0 release offers excellent performance, hardware support and
   7.227 +enterprise-grade features such as live migration. Linux 2.6, 2.4 and
   7.228 +NetBSD 2.0 are already available for Xen, with more operating system
   7.229 +ports on the way.
   7.230  
   7.231 -Using the domain control tools
   7.232 -==============================
   7.233 +This file contains some quick-start instructions to install Xen on
   7.234 +your system. For full documentation, see the Xen User Manual. If this
   7.235 +is a pre-built release then you can find the manual at:
   7.236 + dist/install/usr/share/doc/xen/pdf/user.pdf
   7.237 +If you have a source release, then 'make -C docs' will build the
   7.238 +manual at docs/pdf/user.pdf.
   7.239  
   7.240 -Before starting domains you'll need to start the node management
   7.241 -daemon: "xend start". 
   7.242 -The primary tool for starting and controlling domains is "xm". 
   7.243 -"xm help <cmd>" will tell you how to use it.
   7.244 +Quick-Start Guide - Pre-Built Binary Release
   7.245 +============================================
   7.246  
   7.247 -README.CD contains some example invocations.
   7.248 +[NB. Unless noted otherwise, all the following steps should be
   7.249 +performed with root privileges.]
   7.250  
   7.251 -Further documentation is in docs/ (e.g., docs/Xen-HOWTO), and also in
   7.252 +1. Install the binary distribution onto your filesystem:
   7.253 +    # sh ./install.sh
   7.254 +   Amongst other things, this will install Xen and XenLinux kernel
   7.255 +   files in /boot, kernel modules and Python packages in /lib, and
   7.256 +   various control tools in standard 'bin' directories.
   7.257  
   7.258 +2. Configure your bootloader to boot Xen and an initial Linux virtual
   7.259 +   machine. Note that Xen currently only works with GRUB: less common
   7.260 +   alternatives such as LILO are *not* supported. You can most likely
   7.261 +   find your GRUB menu file at /boot/grub/menu.lst: edit this file to
   7.262 +   include an entry like the following:
   7.263 +    # title Xen 2.0 / XenLinux 2.6.9
   7.264 +    #   kernel /boot/xen.gz dom0_mem=<mem-kb> console=vga
   7.265 +    #   module /boot/vmlinuz-2.6.9-xen0 root=<root-dev> ro console=tty0
   7.266 +   For <mem-kb> you should specify the amount of memory, in kilobytes,
   7.267 +   to allocate for use by your initial XenLinux virtual machine. Note
   7.268 +   that Xen itself reserves about 32MB memory for internal use, which
   7.269 +   is not available for allocation to virtual machines.
   7.270 +   For <root-dev>, specify your usual root partition (e.g., /dev/hda1).
   7.271  
   7.272 +3. Reboot your system and select the "Xen 2.0 / XenLinux 2.6.9" menu
   7.273 +   option. After booting Xen, XenLinux will start and your
   7.274 +   initialisation scripts should execute in the usual way.
   7.275 +
   7.276 +Quick-Start Guide - Source Release
   7.277 +==================================
   7.278 +
   7.279 +First, there are a number of prerequisites for building a Xen source
   7.280 +release. Make sure you have all the following installed, either by
   7.281 +visiting the project webpage or installing a pre-built package
   7.282 +provided by your Linux distributor:
   7.283 +    * GCC (preferably v3.2.x or v3.3.x; older versions are unsupported) 
   7.284 +    * GNU Make
   7.285 +    * GNU Binutils
   7.286 +    * Development install of libcurl (e.g., libcurl-dev)
   7.287 +    * Development install of zlib (e.g., zlib-dev)
   7.288 +    * Development install of Python v2.2 or later (e.g., python-dev)
   7.289 +
   7.290 +[NB. Unless noted otherwise, all the following steps should be
   7.291 +performed with root privileges.]
     8.1 --- a/README.CD	Fri Aug 06 12:20:20 2004 +0000
     8.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     8.3 @@ -1,739 +0,0 @@
     8.4 -#############################
     8.5 - __  __            _   _____ 
     8.6 - \ \/ /___ _ __   / | |___ / 
     8.7 -  \  // _ \ '_ \  | |   |_ \ 
     8.8 -  /  \  __/ | | | | |_ ___) |
     8.9 - /_/\_\___|_| |_| |_(_)____/ 
    8.10 -                                              
    8.11 -#############################
    8.12 -
    8.13 - XenDemoCD 1.3
    8.14 - University of Cambridge Computer Laboratory
    8.15 - 24 Jan 2004
    8.16 -
    8.17 - http://www.cl.cam.ac.uk/netos/xen
    8.18 -
    8.19 -Welcome to the Xen Demo CD! 
    8.20 -
    8.21 -Executive Summary
    8.22 -=================
    8.23 -
    8.24 -This CD is a standalone demo of the Xen Virtual Machine Monitor (VMM)
    8.25 -and Linux-2.4 OS port (Xenlinux). It runs entirely off the CD,
    8.26 -without requiring hard disk installation. This is achieved using a RAM
    8.27 -disk to store mutable file system data while using the CD for
    8.28 -everything else. The CD can also be used for installing Xen/Xenlinux
    8.29 -to disk, and includes a source code snapshot along with all of the
    8.30 -tools required to build it.
    8.31 -
    8.32 -Booting the CD
    8.33 -==============
    8.34 -
    8.35 -It should be possible to get Xen working with any relatively modern
    8.36 -hardware supported by standard Linux. However, the version of XenLinux
    8.37 -built for the DemoCD is fairly h/w specific. If you need other
    8.38 -hardware, you'll have to configure and build your own xenlinux kernel.
    8.39 -Xen does require an 'i686'-class CPU or newer, so won't work on 486's
    8.40 -or plain Pentiums.
    8.41 -
    8.42 -We have compiled in drivers for the following hardware:
    8.43 -
    8.44 -CPU:  Pentium Pro/II/III/IV/Xeon, Athlon (i.e. P6 or newer) SMP supported
    8.45 -IDE:  Intel PIIX chipset, others will be PIO only (slow)
    8.46 -SCSI: Adaptec / Dell PERC Raid (aacraid), fusion MPT, megaraid, Adaptec aic7xxx
    8.47 -Net:  Recommended: Intel e1000, Broadcom BCM57xx (tg3), 3c905 (3c59x)
    8.48 -      Also supported: pcnet32, Intel e100, tulip
    8.49 -
    8.50 -Because of the demo CD's use of RAM disks, make sure you have plenty
    8.51 -of RAM (256MB+).
    8.52 -
    8.53 -To try out the Demo, boot from CD (you may need to change your BIOS
    8.54 -configuration to do this), then select one of the four boot options 
    8.55 -from the Grub menu:
    8.56 -
    8.57 - Xen / linux-2.4.26
    8.58 - Xen / linux-2.4.26 using cmdline IP configuration
    8.59 - Xen / linux-2.4.26 in "safe mode"
    8.60 - linux-2.4.22
    8.61 -
    8.62 -The last option is a plain linux kernel that runs on the bare machine,
    8.63 -and is included simply to help diagnose driver compatibility
    8.64 -problems. The "safe mode" boot option might be useful if you're having
    8.65 -problems getting Xen to work with your hardware, as it disables various
    8.66 -features such as SMP, and enables some debugging.
    8.67 -
    8.68 -If you are going for a command line IP config, hit "e" at
    8.69 -the grub menu, then edit the "ip=" parameters to reflect your setup
    8.70 -e.g. "ip=<ipaddr>::<gateway>:<netmask>::eth0:off". It shouldn't be
    8.71 -necessary to set either the nfs server or hostname
    8.72 -parameters. Alternatively, once Xenlinux has booted you can login and
    8.73 -setup networking with 'dhclient' or 'ifconfig' and 'route' in the
    8.74 -normal way. 
    8.75 -
    8.76 -To make things easier for yourself, it's worth trying to arrange for an
    8.77 -IP address which is the first in a sequential range of free IP
    8.78 -addresses.  It's useful to give each VM instance its own public IP
    8.79 -address (though it is possible to do NAT or use private addresses), 
    8.80 -and the configuration files on the CD allocate IP addresses
    8.81 -sequentially for subsequent domains unless told otherwise.
    8.82 -
    8.83 -After selecting the kernel to boot, stand back and watch Xen boot,
    8.84 -closely followed by "domain 0" running the Xenlinux kernel. The boot
    8.85 -messages can also sent to the serial line by specifying the baud rate
    8.86 -on the Xen cmdline (e.g., 'com1=9600,8n1'); this can be very useful
    8.87 -for debugging should anything important scroll off the screen. Xen's
    8.88 -startup messages will look quite familiar as much of the hardware
    8.89 -initialisation (SMP boot, apic setup) and device drivers are derived
    8.90 -from Linux.
    8.91 -
    8.92 -If everything is well, you should see the linux rc scripts start a
    8.93 -bunch of standard services including sshd.  Login on the console or
    8.94 -via ssh::
    8.95 - username: user         root
    8.96 - password: xendemo      xendemo
    8.97 -
    8.98 -Once logged in, it should look just like any regular linux box. All
    8.99 -the usual tools and commands should work as per usual.  However,
   8.100 -because of the poor random access performance of CD drives, the
   8.101 -machine will feel very slugish, and you may run out of memory if you
   8.102 -make significant modifications to the ramfs filesystem -- for the full
   8.103 -experience, install a Xen and Xenlinux image on you hard drive :-)
   8.104 -
   8.105 -You can configure networking, either with 'dhclient' or manually via
   8.106 -'ifconfig' and 'route', remembering to edit /etc/resolv.conf if you
   8.107 -want DNS to work.
   8.108 -
   8.109 -You can start an X server with 'startx'. It defaults to a conservative
   8.110 -1024x768, but you can edit the script for higher resoloutions.  The CD
   8.111 -contains a load of standard software. You should be able to start
   8.112 -Apache, PostgreSQL, Mozilla etc in the normal way, but because
   8.113 -everything is running off CD the performance will be very sluggish and
   8.114 -you may run out of memory for the 'tmpfs' file system.  You may wish
   8.115 -to go ahead and install Xen/Xenlinux on your hard drive, either
   8.116 -dropping Xen and the Xenlinux kernel down onto a pre-existing Linux
   8.117 -distribution, or using the file systems from the CD (which are based
   8.118 -on RH9). See the installation instructions later in this document.
   8.119 -
   8.120 -If your video card requires 'agpgart' then it unfortunately won't yet
   8.121 -work with Xen, and you'll only be able to configure a VGA X
   8.122 -server. We're working on a fix for this for the next release.
   8.123 -
   8.124 -If you want to browse the Xen / Xenlinux source, it's all located
   8.125 -under /usr/local/src/xeno-1.3, complete with BitKeeper
   8.126 -repository. We've also included source code and configuration
   8.127 -information for the various benchmarks we used in the SOSP paper.
   8.128 -
   8.129 -
   8.130 -Starting other domains
   8.131 -======================
   8.132 -
   8.133 -The first thing you need to do is to start the "xend" control daemon
   8.134 -with "xend start". You may wish to add an appropriate link to xend in
   8.135 -you /etc/rcX.d directory e.g. "ln -sf ../init.d/xend S97xend"
   8.136 -
   8.137 -If you're not intending to configure the new domain with an IP address
   8.138 -on your LAN, then you'll probably want to use NAT. The
   8.139 -'xen_nat_enable' installs a few useful iptables rules into domain0 to
   8.140 -enable NAT. [NB: We plan to support RSIP in future]
   8.141 -
   8.142 -Xen has a management interface that can be manipulated from domain0 to
   8.143 -create new domains, control their CPU, network and memory resource
   8.144 -allocations, allocate IP addresses, grant access to disk partitions,
   8.145 -and suspend/resume domains to files, etc.  The management interface is
   8.146 -implemented as a set of library functions (implemented in C) for which
   8.147 -there are Python language bindings. 
   8.148 -
   8.149 -We have developed a simple set of example python tools for
   8.150 -manipulating the interface, with the intention that more sophisticated
   8.151 -high-level management tools will be developed in due course. Within
   8.152 -the source repository the tools live in tools/examples/ but are
   8.153 -installed in /usr/local/bin/ on the CD.
   8.154 -
   8.155 -Starting a new domain is achieved using xc_dom_create.py which
   8.156 -allocates resources to a new domain, populates it with a kernel image
   8.157 -(and optionally a ramdisk) and then starts it.
   8.158 -
   8.159 -It parses a configuration file written in the Python language, the
   8.160 -default location of which is "/etc/xc/defaults", but this may be
   8.161 -overridden with the "-f" option. For the Demo CD, the defaults file
   8.162 -will cause domains to be created with ram-based root file systems, and
   8.163 -mount their /usr partition from the CD, just like domain0. (If you are
   8.164 -writing your own config file, the "example" script may be a better
   8.165 -starting point)
   8.166 -
   8.167 -Variables can be initialised and passed into configuration files. Some
   8.168 -of these may be compulsory, others optional.
   8.169 -
   8.170 -The 'defaults' file on the CD requires the 'ip' variable to be set to
   8.171 -tell Xen what IP address(es) should be routed to this domain.  Xen
   8.172 -will route packets to the domain if they bear one of these addresses
   8.173 -as a destination address, and will also ensure that packets sent from
   8.174 -the domain contain one of the addresses as a source address (to
   8.175 -prevent spoofing).  If multiple IP addresses are to be assigned to a
   8.176 -domain they can be listed in a comma separated list (with no
   8.177 -whitespace).
   8.178 -
   8.179 -The 'mem' variable can be used to change the default memory allocation
   8.180 -of 64MB. For example to start a domain with two IP addresses and
   8.181 -72MB:
   8.182 -
   8.183 -  xc_dom_create.py -Dip=128.23.45.34,169.254.1.1 -Dmem=72
   8.184 -
   8.185 -[multiple variables may also be set with a single '-D' flag by
   8.186 -separating them with ':'. Also, it's possible to use DNS hostnames
   8.187 -rather than IP addresses.]
   8.188 -
   8.189 -When invoked with the '-n' option xc_dom_create.py will do a dry run
   8.190 -and just print out what resources and configuration the domain will
   8.191 -have e.g.:
   8.192 -
   8.193 -  [root@xendemo]# xc_dom_create.py -D ip=commando-1.xeno,169.254.2.3 -Dmem=100
   8.194 -  Parsing config file 'defaults'
   8.195 -
   8.196 -  VM image           : "/boot/xenlinux.gz"
   8.197 -  VM ramdisk         : "/boot/initrd.gz"
   8.198 -  VM memory (MB)     : "100"
   8.199 -  VM IP address(es)  : "128.232.38.51:169.254.2.3"
   8.200 -  VM block device(s) : "phy:cdrom,hdd,r"
   8.201 -  VM cmdline         : "ip=128.232.38.51:169.254.1.0:128.232.32.1:255.255.240.0::eth0:off root=/dev/ram0 rw init=/linuxrc 4 LOCALIP=169.254.2.3"
   8.202 -
   8.203 -xc_dom_create.py will print the local TCP port to which you should
   8.204 -connect to perform console I/O. A suitable console client is provided
   8.205 -by the Python module xenctl.console_client: running this module from
   8.206 -the command line with <host> and <port> parameters will start a
   8.207 -terminal session. This module is also installed as /usr/bin/xencons,
   8.208 -from a copy in tools/misc/xencons.  An alternative to manually running
   8.209 -a terminal client is to specify '-c' to xc_dom_create.py, or add
   8.210 -'auto_console=True' to the defaults file. This will cause
   8.211 -xc_dom_create.py to automatically become the console terminal after
   8.212 -starting the domain.
   8.213 -
   8.214 -The 169.254.x.x network is special in that it is the 'link local'
   8.215 -subnet, and is isolated from the external network and hence can only
   8.216 -be used for communication between virtual machines. By convention, we
   8.217 -usually give each domain a link local address. The startup scripts on
   8.218 -the CD have been modified to accept a LINKLOCAL= parameter on the
   8.219 -kernel command line and initialise an IP alias accordingly (see
   8.220 -/etc/sysinit/network-scripts/ifcfg-eth0).
   8.221 -
   8.222 -Linux only allows one IP address to be specified on the kernel command
   8.223 -line, so if you specify multiple IP addresses you'll need to configure
   8.224 -the new Linux VM with the other addresses manually (using ifconfig)
   8.225 -having logged in.
   8.226 -
   8.227 -If you inspect the 'defaults' config script you'll see that the new
   8.228 -domain was started with a '4' on the kernel command line to tell
   8.229 -'init' to go to runlevel 4 rather than the default of 3 used by
   8.230 -domain0. This is done simply to suppress a bunch of harmless error
   8.231 -messages that would otherwise occur when the new (unprivileged) domain
   8.232 -tried to access physical hardware resources to try setting the
   8.233 -hwclock, system font, run gpm etc.
   8.234 -
   8.235 -After it's booted, you should be able to ssh into your new domain from
   8.236 -domain0 using the link local 19.254.x.x address you assigned. If you
   8.237 -assigned a further IP address you should be able to ssh in using that
   8.238 -address too. If you ran the xen_enable_nat script, a bunch of port
   8.239 -redirects have been installed to enable you to ssh in to other domains
   8.240 -remotely even if you didn't assign an externally routeable address.
   8.241 -To access the new virtual machine remotely, use:
   8.242 -
   8.243 - ssh -p2201 root@IP.address.Of.Domain0  # use 2202 for domain 2 etc.
   8.244 -
   8.245 -You can manipulate running domains using the xc_dom_control.py tool.
   8.246 -Invoking it without arguments prints some usage information.
   8.247 -
   8.248 -To see what domains are running, run 'xc_dom_control.py list'.  Using the
   8.249 -tool you can change scheduling parameters, pause a domain, send it a
   8.250 -shutdown request, or blow it away with the 'destroy' command. You can
   8.251 -even suspend it to disk (but you probably won't have enough memory to
   8.252 -do the latter if you're running off the demo CD).
   8.253 -
   8.254 -To find usage information for xc_dom_control.py, run the script with
   8.255 -no arguments.
   8.256 -
   8.257 -
   8.258 -Troubleshooting Problems
   8.259 -========================
   8.260 -
   8.261 -If you have problems booting Xen, there are a number of boot parameters 
   8.262 -that may be able to help diagnose problems:
   8.263 -
   8.264 - ignorebiostables Disable parsing of BIOS-supplied tables. This may
   8.265 -                  help with some chipsets that aren't fully supported
   8.266 -                  by Xen. If you specify this option then ACPI tables are
   8.267 -                  also ignored, and SMP support is disabled.
   8.268 -
   8.269 - noreboot         Don't reboot the machine automatically on errors.
   8.270 -                  This is useful to catch debug output if you aren't
   8.271 -                  catching console messages via the serial line.
   8.272 -
   8.273 - nosmp		  Disable SMP support.
   8.274 -                  This option is implied by 'ignorebiostables'.
   8.275 -
   8.276 - noacpi   	  Disable ACPI tables, which confuse Xen on some chipsets.
   8.277 -                  This option is implied by 'ignorebiostables'.
   8.278 -
   8.279 - watchdog	  Enable NMI watchdog which can report certain failures.
   8.280 -
   8.281 - noht		  Disable Hyperthreading.
   8.282 -
   8.283 - badpage=<page number>[,<page number>]*
   8.284 -                  Specify a list of pages not to be allocated for use 
   8.285 -                  because they contain bad bytes. For example, if your
   8.286 -                  memory tester says that byte 0x12345678 is bad, you would
   8.287 -                  place 'badpage=0x12345' on Xen's command line (i.e., the
   8.288 -                  last three digits of the byte address are not included!).
   8.289 -
   8.290 - com1=<baud>,DPS[,<io_base>,<irq>]
   8.291 - com2=<baud>,DPS[,<io_base>,<irq>]
   8.292 -                  Xen supports up to two 16550-compatible serial ports.
   8.293 -                  For example: 'com1=9600,8n1,0x408,5' maps COM1 to a
   8.294 -                  9600-baud port, 8 data bits, no parity, 1 stop bit,
   8.295 -                  I/O port base 0x408, IRQ 5.
   8.296 -                  If the I/O base and IRQ are standard (com1:0x3f8,4;
   8.297 -                  com2:0x2f8,3) then they need not be specified.
   8.298 -
   8.299 - console=<specifier list>
   8.300 -                  Specify the destination for Xen console I/O.
   8.301 -                  This is a comma-separated list of, for example:
   8.302 -                   vga:  use VGA console and allow keyboard input
   8.303 -                   com1: use serial port com1
   8.304 -                   com2H: use serial port com2. Transmitted chars will
   8.305 -                          have the MSB set. Received chars must have
   8.306 -                          MSB set.
   8.307 -                   com2L: use serial port com2. Transmitted chars will
   8.308 -                          have the MSB cleared. Received chars must
   8.309 -                          have MSB cleared.
   8.310 -                  The latter two examples allow a single port to be
   8.311 -                  shared by two subsystems (eg. console and
   8.312 -                  debugger). Sharing is controlled by MSB of each
   8.313 -                  transmitted/received character.
   8.314 - [NB. Default for this option is 'com1,vga']
   8.315 -
   8.316 - conswitch=<switch-char><auto-switch-char>
   8.317 -                  Specify how to switch serial-console input between
   8.318 -                  Xen and DOM0. The required sequence is CTRL-<switch_char>
   8.319 -                  pressed three times. Specifying '`' disables switching.
   8.320 -                  The <auto-switch-char> specifies whether Xen should
   8.321 -                  auto-switch input to DOM0 when it boots -- if it is 'x'
   8.322 -                  then auto-switching is disabled. Any other value, or
   8.323 -                  omitting the character, enables auto-switching.
   8.324 - [NB. Default for this option is 'a']
   8.325 -
   8.326 - nmi=<nmi-error-behaviour>
   8.327 -                  Specify what to do with an NMI parity or I/O error.
   8.328 -                  'nmi=fatal':  Xen prints a diagnostic and then hangs.
   8.329 -                  'nmi=dom0':   Inform DOM0 of the NMI.
   8.330 -                  'nmi=ignore': Ignore the NMI.
   8.331 - [NB. Default is 'dom0' ('fatal' for debug builds).]
   8.332 -
   8.333 - dom0_mem=xxx 	  Set the initial amount of memory for domain0.
   8.334 -
   8.335 - pdb=xxx          Enable the pervasive debugger.  See docs/pdb.txt
   8.336 -                  xxx defines how the gdb stub will communicate:
   8.337 -                     com1    use com1
   8.338 -                     com1H   use com1 (with high bit set)
   8.339 -                     com2    use on com2
   8.340 -                     com2H   use com2 (with high bit set)
   8.341 -
   8.342 -It's probably a good idea to join the Xen developer's mailing list on
   8.343 -Sourceforge:    http://lists.sourceforge.net/lists/listinfo/xen-devel   
   8.344 -
   8.345 -
   8.346 -About The Xen Demo CD
   8.347 -=====================
   8.348 -
   8.349 -The purpose of the Demo CD is to distribute a snapshot of Xen's
   8.350 -source, and simultaneously provide a convenient means for enabling
   8.351 -people to get experience playing with Xen without needing to install
   8.352 -it on their hard drive. If you decide to install Xen/Xenlinux you can
   8.353 -do so simply by following the installation instructions below -- which
   8.354 -essentially involves copying the contents of the CD on to a suitably
   8.355 -formated disk partition, and then installing or updating the Grub
   8.356 -bootloader.
   8.357 -
   8.358 -This is a bootable CD that loads Xen, and then a Linux 2.4.22 OS image
   8.359 -ported to run on Xen. The CD contains a copy of a file system based on
   8.360 -the RedHat 9 distribution that is able to run directly off the CD
   8.361 -("live ISO"), using a "tmpfs" RAM-based file system for root (/etc
   8.362 -/var etc). Changes you make to the tmpfs will obviously not be
   8.363 -persistent across reboots!
   8.364 -
   8.365 -Because of the use of a RAM-based file system for root, you'll need
   8.366 -plenty of memory to run this CD -- something like 96MB per VM. This is
   8.367 -not a restriction of Xen : once you've installed Xen, Xenlinux and
   8.368 -the file system images on your hard drive you'll find you can boot VMs
   8.369 -in just a few MBs.
   8.370 -
   8.371 -The CD contains a snapshot of the Xen and Xenlinux code base that we
   8.372 -believe to be pretty stable, but lacks some of the features that are
   8.373 -currently still work in progress e.g. OS suspend/resume to disk, and
   8.374 -various memory management enhancements to provide fast inter-OS
   8.375 -communication and sharing of memory pages between OSs. We'll release
   8.376 -newer snapshots as required, making use of a BitKeeper repository
   8.377 -hosted on http://xen.bkbits.net (follow instructions from the project
   8.378 -home page).  We're obviously grateful to receive any bug fixes or
   8.379 -other code you can contribute. We suggest you join the
   8.380 -xen-devel@lists.sourceforge.net mailing list.
   8.381 -
   8.382 -
   8.383 -Installing from the CD
   8.384 -======================
   8.385 -
   8.386 -If you're installing Xen/Xenlinux onto an existing linux file system
   8.387 -distribution, just copy the Xen VMM (/boot/image.gz) and Xenlinux
   8.388 -kernels (/boot/xenlinux.gz), then modify the Grub config
   8.389 -(/boot/grub/menu.lst or /boot/grub/grub.conf) on the target system.
   8.390 -It should work on pretty much any distribution.
   8.391 -
   8.392 -Xen is a "multiboot" standard boot image. Despite being a 'standard',
   8.393 -few boot loaders actually support it. The only two we know of are
   8.394 -Grub, and our modified version of linux kexec (for booting off a
   8.395 -XenoBoot CD -- PlanetLab have adopted the same boot CD approach).
   8.396 -
   8.397 -If you need to install grub on your system, you can do so either by
   8.398 -building the Grub source tree
   8.399 -/usr/local/src/grub-0.93-iso9660-splashimage or by copying over all
   8.400 -the files in /boot/grub and then running /sbin/grub and following the
   8.401 -usual grub documentation. You'll then need to edit the Grub
   8.402 -config file.
   8.403 -
   8.404 -A typical Grub menu option might look like:
   8.405 -
   8.406 -title Xen / Xenlinux 2.4.26
   8.407 -        kernel /boot/xen.gz dom0_mem=131072 com1=115200 noht watchdog
   8.408 -        module /boot/vmlinuz-2.4.26-xen0 root=/dev/sda4 ro
   8.409 -
   8.410 -The first line specifies which Xen image to use, and what command line
   8.411 -arguments to pass to Xen. In this case we set the maximum amount of
   8.412 -memory to allocate to domain0, and enable serial I/O on COM1 at 115200
   8.413 -baud.  We could also disable smp support (nosmp) or disable
   8.414 -hyper-threading support (noht). 
   8.415 -
   8.416 -The second line specifies which xenlinux image to use, and the
   8.417 -standard linux command line arguments to pass to the kernel. In this
   8.418 -case, we're configuring the root partition and stating that it should
   8.419 -initially be mounted read-only (normal practice).
   8.420 -
   8.421 -If we were booting with an initial ram disk (initrd), then this would
   8.422 -require a second "module" line.
   8.423 -
   8.424 -Installing the Xen tools and source
   8.425 -===================================
   8.426 -
   8.427 -The tools and source live in the /usr/local/src/xen-2.0 directory on
   8.428 -the CD (and may also be downloaded from the project downloads
   8.429 -page). You'll need to copy them to some mutable storage before using
   8.430 -them.
   8.431 -
   8.432 -If you have the BitKeeper BK tools installed you can check the
   8.433 -repository is up to date by cd'ing into the xeno-2.0.bk directory and
   8.434 -typing 'bk pull' (assuming you have an Internet connection). 
   8.435 -
   8.436 -You can rebuild Xen, the tools and XenLinux by typing 'make
   8.437 -world'. You can install them to the standard directories with 'make
   8.438 -install', or into the ./install subtree with 'make dist'.
   8.439 -
   8.440 -
   8.441 -Modifying xc_mycreatelinuxdom1.py
   8.442 -=================================
   8.443 -
   8.444 -xc_mycreatelinuxdom1.py.py can be used to set the new kernel's command line,
   8.445 -and hence determine what it uses as a root file system, etc. Although
   8.446 -the default is to boot in the same manner that domain0 did (using the
   8.447 -RAM-based file system for root and the CD for /usr) it's possible to
   8.448 -configure any of the following possibilities, for example:
   8.449 -
   8.450 - * initrd=/boot/initrd init=/linuxrc
   8.451 -     boot using an initial ram disk, executing /linuxrc (as per this CD)     
   8.452 -
   8.453 - * root=/dev/hda3 ro
   8.454 -     boot using a standard hard disk partition as root
   8.455 -     !!! remember to grant access in createlinuxdom.py.
   8.456 -
   8.457 - * root=/dev/xvda1 ro
   8.458 -     boot using a pre-configured 'virtual block device' that will be
   8.459 -     attached to a virtual disk that previously has had a file system
   8.460 -     installed on it.
   8.461 -
   8.462 - * root=/dev/nfs nfsroot=/path/on/server ip=<blah_including server_IP>
   8.463 -     Boot using an NFS mounted root file system. This could be from a
   8.464 -     remote NFS server, or from an NFS server running in another
   8.465 -     domain. The latter is rather a useful option.
   8.466 -
   8.467 -A typical setup might be to allocate a standard disk partition for
   8.468 -each domain and populate it with files. To save space, having a shared
   8.469 -read-only usr partition might make sense.
   8.470 -
   8.471 -Block devices should only be shared between domains in a read-only
   8.472 -fashion otherwise the linux kernels will obviously get very confused
   8.473 -as the file system structure may change underneath them (having the
   8.474 -same partition mounted rw twice is a sure fire way to cause
   8.475 -irreparable damage)!  If you want read-write sharing, export the
   8.476 -directory to other domains via NFS from domain0.
   8.477 -
   8.478 -
   8.479 -
   8.480 -
   8.481 -Installing the file systems from the CD
   8.482 -=======================================
   8.483 -
   8.484 -If you haven't got an existing Linux installation onto which you can
   8.485 -just drop down the Xen and Xenlinux images, then the file systems on
   8.486 -the CD provide a quick way of doing an install. However, you're
   8.487 -probably better off in the long run doing a proper Redhat, Fedora,
   8.488 -Debian etc install rather than just doing the hack described below:
   8.489 -
   8.490 -Choose one or two partitions, depending on whether you want a separate
   8.491 -/usr or not. Make file systems on it/them e.g.: 
   8.492 -  mkfs -t ext3 /dev/hda3
   8.493 -  [or mkfs -t ext2 /dev/hda3 && tune2fs -j /dev/hda3 if using an old
   8.494 -version of mkfs]
   8.495 -
   8.496 -Next, mount the file system(s) e.g.:
   8.497 -  mkdir /mnt/root && mount /dev/hda3 /mnt/root
   8.498 -  [mkdir /mnt/usr && mount /dev/hda4 /mnt/usr]
   8.499 -  
   8.500 -To install the root file system, simply untar /usr/XenDemoCD/root.tar.gz:
   8.501 -  cd /mnt/root && tar -zxpf /usr/XenDemoCD/root.tar.gz
   8.502 -
   8.503 -You'll need to edit /mnt/root/etc/fstab to reflect your file system
   8.504 -configuration. Changing the password file (etc/shadow) is probably a
   8.505 -good idea too.
   8.506 -
   8.507 -To install the usr file system, copy the file system from CD on /usr,
   8.508 -though leaving out the "XenDemoCD" and "boot" directories:
   8.509 -  cd /usr && cp -a X11R6 etc java libexec root src bin dict kerberos local sbin tmp doc include lib man share /mnt/usr
   8.510 -
   8.511 -If you intend to boot off these file systems (i.e. use them for
   8.512 -domain 0), then you probably want to copy the /usr/boot directory on
   8.513 -the cd over the top of the current symlink to /boot on your root
   8.514 -filesystem (after deleting the current symlink) i.e.:
   8.515 -  cd /mnt/root ; rm boot ; cp -a /usr/boot .
   8.516 -
   8.517 -The XenDemoCD directory is only useful if you want to build your own
   8.518 -version of the XenDemoCD (see below).
   8.519 -
   8.520 -
   8.521 -Debugging
   8.522 -=========
   8.523 -
   8.524 -Xen has a set of debugging features that can be useful to try and
   8.525 -figure out what's going on. Hit 'h' on the serial line (if you
   8.526 -specified a baud rate on the Xen command line) or ScrollLock-h on the
   8.527 -keyboard to get a list of supported commands.
   8.528 -
   8.529 -If you have a crash you'll likely get a crash dump containing an EIP
   8.530 -(PC) which, along with an 'objdump -d image', can be useful in
   8.531 -figuring out what's happened.  Debug a Xenlinux image just as you
   8.532 -would any other Linux kernel.
   8.533 -
   8.534 -We supply a handy debug terminal program which you can find in
   8.535 -/usr/local/src/xen-1.0/xeno-1.0.bk/tools/misc/miniterm/
   8.536 -This should be built and executed on another machine that is connected
   8.537 -via a null modem cable. Documentation is included.
   8.538 -Alternatively, if the Xen machine is connected to a serial-port server
   8.539 -then we supply a dumb TCP terminal client:
   8.540 - 'tools/xenctl/lib/console_client.py <server host> <server port>'
   8.541 -
   8.542 -
   8.543 -Installing Xen / Xenlinux on a RedHat distribution
   8.544 -===================================================
   8.545 -
   8.546 -When using Xen / Xenlinux on a standard Linux distribution there are
   8.547 -a couple of things to watch out for:
   8.548 -
   8.549 -The first Linux VM that is started when Xen boots start (Domain 0) is
   8.550 -given direct access to the graphics card, so it may use it as a
   8.551 -console. Other domains don't have ttyN consoles, so attempts to run a
   8.552 -'mingetty' against them will fail, generating periodic warning
   8.553 -messages from 'init' about services respawning too fast. They should
   8.554 -work for domain0 just fine.  
   8.555 -IMPORTANT: To prevent warning messages when running RH9 you'll need to
   8.556 -remove ttyN from /etc/inittab for domains>0.  Due to a bug in the RH9
   8.557 -/etc/rc.sysinit script #'ing the lines out of /etc/inittab won't work
   8.558 -as it ignores the '#' and tries to access them anyway.
   8.559 -
   8.560 -Every Xenlinux instance owns a bidirectional 'virtual console'.
   8.561 -The device node to which this console is attached can be configured
   8.562 -by specifying 'xencons=' on the OS command line:
   8.563 - 'xencons=off'  --> disable virtual console
   8.564 - 'xencons=tty'  --> attach console to /dev/tty1 (tty0 at boot-time)
   8.565 - 'xencons=ttyS' --> attach console to /dev/ttyS0
   8.566 -The default is to attach to /dev/tty1, and also to create dummy
   8.567 -devices for /dev/tty2-63 to avoid warnings from many standard distro
   8.568 -startup scripts. The exception is domain 0, which by default attaches
   8.569 -to /dev/ttyS0.
   8.570 -
   8.571 -Note that, because domains>0 don't have any privileged access at all,
   8.572 -certain commands in the default boot sequence will fail e.g. attempts
   8.573 -to update the hwclock, change the console font, update the keytable
   8.574 -map, start apmd (power management), or gpm (mouse cursor).  Either
   8.575 -ignore the errors, or remove them from the startup scripts.  Deleting
   8.576 -the following links are a good start: S24pcmcia S09isdn S17keytable
   8.577 -S26apmd S85gpm
   8.578 -
   8.579 -If you want to use a single root file system that works cleanly for
   8.580 -domain0 and domains>0, one trick is to use different 'init' run
   8.581 -levels. For example, on the Xen Demo CD we use run level 3 for domain
   8.582 -0, and run level 4 for domains>0. This enables different startup
   8.583 -scripts to be run in depending on the run level number passed on the
   8.584 -kernel command line.
   8.585 -
   8.586 -Xenlinux kernels can be built to use runtime loadable modules just
   8.587 -like normal linux kernels. Modules should be installed under
   8.588 -/lib/modules in the normal way.
   8.589 -
   8.590 -If there's some kernel feature that hasn't been built into our default
   8.591 -kernel, there's a pretty good change that if its a non-hardware
   8.592 -related option you'll just be able to enable it and rebuild.  If its
   8.593 -not on the xconfig menu, hack the arch/xen/config.in to put the menu
   8.594 -back in.
   8.595 -
   8.596 -If you're going to use the link local 169.254.1.x addresses to
   8.597 -communicate between VMs, there are a couple of other issues to watch
   8.598 -out for. RH9 appears to have a bug where by default it configures the
   8.599 -loopback interface with a 169.254 address, which stops it working
   8.600 -properly on eth0 for communicating with other domains.
   8.601 -
   8.602 -This utterly daft RH9 behaviour can be stopped by appending
   8.603 -"NOZEROCONF=yes" to /etc/sysconfig/networking-scripts/ifcfg-lo
   8.604 -
   8.605 -If you're going to use NFS root files systems mounted either from an
   8.606 -external server or from domain0 there are a couple of other gotchas.
   8.607 -The default /etc/sysconfig/iptables rules block NFS, so part way
   8.608 -through the boot sequence things will suddenly go dead.
   8.609 -
   8.610 -If you're planning on having a separate NFS /usr partition, the RH9
   8.611 -boot scripts don't make life easy, as they attempt to mount NFS file
   8.612 -systems way to late in the boot process. The easiest way I found to do
   8.613 -this was to have a '/linuxrc' script run ahead of /sbin/init that
   8.614 -mounts /usr:
   8.615 - #!/bin/bash
   8.616 - /sbin/ipconfig lo 127.0.0.1
   8.617 - /sbin/portmap
   8.618 - /bin/mount /usr
   8.619 - exec /sbin/init "$@" <>/dev/console 2>&1
   8.620 -
   8.621 -The one slight complication with the above is that /sbib/portmap is
   8.622 -dynamically linked against /usr/lib/libwrap.so.0 Since this is in
   8.623 -/usr, it won't work. I solved this by copying the file (and link)
   8.624 -below the /usr mount point, and just let the file be 'covered' when
   8.625 -the mount happens.
   8.626 -
   8.627 -In some installations, where a shared read-only /usr is being used, it
   8.628 -may be desirable to move other large directories over into the
   8.629 -read-only /usr. For example, on the XenDemoCD we replace /bin /lib and
   8.630 -/sbin with links into /usr/root/bin /usr/root/lib and /usr/root/sbin
   8.631 -respectively. This creates other problems for running the /linuxrc
   8.632 -script, requiring bash, portmap, mount, ifconfig, and a handful of
   8.633 -other shared libraries to be copied below the mount point. I guess I
   8.634 -should have written a little statically linked C program...
   8.635 -
   8.636 -
   8.637 -
   8.638 -Description of how the XenDemoCD boots
   8.639 -======================================
   8.640 -
   8.641 -1. Grub is used to load Xen, a Xenlinux kernel, and an initrd (initial
   8.642 -ram disk). [The source of the version of Grub used is in /usr/local/src]
   8.643 -
   8.644 -2. the init=/linuxrc command line causes linux to execute /linuxrc in
   8.645 -the initrd. 
   8.646 -
   8.647 -3. the /linuxrc file attempts to mount the CD by trying the likely
   8.648 -locations : /dev/hd[abcd].  
   8.649 -
   8.650 -4. it then creates a 'tmpfs' file system and untars the
   8.651 -'XenDemoCD/root.tar.gz' file into the tmpfs. This contains hopefully
   8.652 -all the files that need to be mutable (this would be so much easier
   8.653 -if Linux supported 'stacked' or union file systems...)
   8.654 -
   8.655 -5. Next, /linuxrc uses the pivot_root call to change the root file
   8.656 -system to the tmpfs, with the CD mounted as /usr.
   8.657 -
   8.658 -6. It then invokes /sbin/init in the tmpfs and the boot proceeds
   8.659 -normally.
   8.660 -
   8.661 -
   8.662 -Building your own version of the XenDemoCD
   8.663 -==========================================
   8.664 -
   8.665 -The 'live ISO' version of RedHat is based heavily on Peter Anvin's
   8.666 -SuperRescue CD version 2.1.2 and J. McDaniel's Plan-B:
   8.667 -
   8.668 - http://www.kernel.org/pub/dist/superrescue/v2/
   8.669 - http://projectplanb.org/
   8.670 -
   8.671 -Since Xen uses a "multiboot" image format, it was necessary to change
   8.672 -the bootloader from isolinux to Grub0.93 with Leonid Lisovskiy's
   8.673 -<lly@pisem.net> grub.0.93-iso9660.patch
   8.674 -
   8.675 -The Xen Demo CD contains all of the build scripts that were used to
   8.676 -create it, so it is possible to 'unpack' the current iso, modifiy it,
   8.677 -then build a new iso. The procedure for doing so is as follows:
   8.678 -
   8.679 -First, mount either the CD, or the iso image of the CD:
   8.680 - 
   8.681 -  mount /dev/cdrom /mnt/cdrom 
   8.682 -or:
   8.683 -  mount -o loop xendemo-1.0.iso  /mnt/cdrom
   8.684 -
   8.685 -cd to the directory you want to 'unpack' the iso into then run the
   8.686 -unpack script:
   8.687 -
   8.688 -  cd /local/xendemocd
   8.689 -  /mnt/cdrom/XenDemoCD/unpack-iso.sh
   8.690 -
   8.691 -The result is a 'build' directory containing the file system tree
   8.692 -under the 'root' directory. e.g. /local/xendemocd/build/root
   8.693 -
   8.694 -To add or remove rpms, its possible to use 'rpm' with the --root
   8.695 -option to set the path. For more complex changes, it easiest to boot a
   8.696 -machine using using the tree via NFS root. Before doing this, you'll
   8.697 -need to edit fstab to comment out the seperate mount of /usr.
   8.698 -
   8.699 -One thing to watch out for: as part of the CD build process, the
   8.700 -contents of the 'rootpatch' tree gets copied over the existing 'root'
   8.701 -tree replacing various files. The intention of the rootpatch tree is
   8.702 -to contain the files that have been modified from the original RH
   8.703 -distribution (e.g. various /etc files). This was done to make it
   8.704 -easier to upgrade to newer RH versions in the future. The downside of
   8.705 -this is that if you edit an existing file in the root tree you should
   8.706 -check that you don't also need to propagate the change to the
   8.707 -rootpatch tree to avoid it being overwritten.
   8.708 -
   8.709 -Once you've made the changes and want to build a new iso, here's the
   8.710 -procedure:
   8.711 -
   8.712 -cd /local/xendemocd/build  
   8.713 -echo '<put_your_name_here>' > Builder
   8.714 -./make.sh put_your_version_id_here >../buildlog 2>&1            
   8.715 -
   8.716 -This process can take 30 mins even on a fast machine, but you should
   8.717 -eventually end up with an iso image in the build directory.
   8.718 -
   8.719 -Notes:
   8.720 -
   8.721 -  root      - the root of the file system heirarchy as presented to the
   8.722 -              running system
   8.723 -
   8.724 -  rootpatch - contains files that have been modified from the standard
   8.725 -              RH, and copied over the root tree as part of the build
   8.726 -              procedure.
   8.727 -
   8.728 -  irtree    - the file system tree that will go into the initrd (initial
   8.729 -              ram disk)
   8.730 -
   8.731 -  work      - a working directory used in the build process
   8.732 -
   8.733 -  usr       - this should really be in 'work' as its created as part of the
   8.734 -              build process. It contains the 'immutable' files that will
   8.735 -              be served from the CD rather than the tmpfs containing the
   8.736 -              contents of root.tar.gz. Some files that are normally in /etc 
   8.737 -              or /var that are large and actually unlikely to need changing 
   8.738 -              have been moved into /usr/root and replaced with links.
   8.739 -
   8.740 -
   8.741 -Ian Pratt
   8.742 -9 Sep 2003
     9.1 --- a/TODO	Fri Aug 06 12:20:20 2004 +0000
     9.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.3 @@ -1,50 +0,0 @@
     9.4 -
     9.5 -
     9.6 -Known limitations and work in progress
     9.7 -======================================
     9.8 -
     9.9 -The current Xen Virtual Firewall Router (VFR) implementation in the
    9.10 -snapshot tree is very rudimentary, and in particular, lacks the RSIP
    9.11 -IP port-space sharing across domains that provides a better
    9.12 -alternative to NAT.  There's a complete new implementation under
    9.13 -development which also supports much better logging and auditing
    9.14 -support. For now, if you want NAT, see the xen_nat_enable scripts and
    9.15 -get domain0 to do it for you.
    9.16 -
    9.17 -There are also a number of memory management enhancements that didn't
    9.18 -make this release: We have plans for a "universal buffer cache" that
    9.19 -enables otherwise unused system memory to be used by domains in a
    9.20 -read-only fashion. We also have plans for inter-domain shared-memory
    9.21 -to enable high-performance bulk transport for cases where the usual
    9.22 -internal networking performance isn't good enough (e.g. communication
    9.23 -with a internal file server on another domain).
    9.24 -
    9.25 -We have the equivalent of balloon driver functionality to control
    9.26 -domain's memory usage, enabling a domain to give back unused pages to
    9.27 -Xen. This needs properly documenting, and perhaps a way of domain0
    9.28 -signalling to a domain that it requires it to reduce its memory
    9.29 -footprint, rather than just the domain volunteering (see section on
    9.30 -the improved control interface).
    9.31 -
    9.32 -The current disk scheduler is rather simplistic (batch round robin),
    9.33 -and could be replaced by e.g. Cello if we have QoS isolation
    9.34 -problems. For most things it seems to work OK, but there's currently
    9.35 -no service differentiation or weighting.
    9.36 -
    9.37 -Currently, although Xen runs on SMP and SMT (hyperthreaded) machines,
    9.38 -the scheduling is far from smart -- domains are currently statically
    9.39 -assigned to a CPU when they are created (in a round robin fashion).
    9.40 -The scheduler needs to be modified such that before going idle a
    9.41 -logical CPU looks for work on other run queues (particularly on the
    9.42 -same physical CPU). 
    9.43 -
    9.44 -Xen currently only supports uniprocessor guest OSes. We have designed
    9.45 -the Xen interface with MP guests in mind, and plan to build an MP
    9.46 -Linux guest in due course. Basically, an MP guest would consist of
    9.47 -multiple scheduling domains (one per CPU) sharing a single memory
    9.48 -protection domain. The only extra complexity for the Xen VM system is
    9.49 -ensuring that when a page transitions from holding a page table or
    9.50 -page directory to a write-able page, we must ensure that no other CPU
    9.51 -still has the page in its TLB to ensure memory system integrity.  One
    9.52 -other issue for supporting MP guests is that we'll need some sort of
    9.53 -CPU gang scheduler, which will require some research.
    10.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.2 +++ b/buildconfigs/Rules.mk	Thu Feb 10 13:17:10 2005 +0000
    10.3 @@ -0,0 +1,83 @@
    10.4 +
    10.5 +# We expect these two to already be set if people 
    10.6 +# are using the top-level Makefile
    10.7 +DISTDIR	?= $(CURDIR)/dist
    10.8 +DESTDIR	?= $(DISTDIR)/install
    10.9 +
   10.10 +.PHONY:	mkpatches mrproper
   10.11 +
   10.12 +# Setup pristine search path
   10.13 +PRISTINE_SRC_PATH	?= .:..
   10.14 +vpath pristine-% $(PRISTINE_SRC_PATH)
   10.15 +
   10.16 +# Expand Linux series to Linux version
   10.17 +LINUX_SERIES	?= 2.6
   10.18 +LINUX_VER	?= $(patsubst linux-%-xen-sparse,%,$(wildcard linux-$(LINUX_SERIES)*-xen-sparse))
   10.19 +
   10.20 +# Setup Linux search path
   10.21 +LINUX_SRC_PATH	?= .:..
   10.22 +vpath linux-%.tar.bz2 $(LINUX_SRC_PATH)
   10.23 +
   10.24 +# download a pristine Linux kernel tarball if there isn't one in LINUX_SRC_PATH
   10.25 +linux-%.tar.bz2: override _LINUX_VDIR = $(word 1,$(subst ., ,$*)).$(word 2,$(subst ., ,$*))
   10.26 +linux-%.tar.bz2:
   10.27 +	@echo "Cannot find $@ in path $(LINUX_SRC_PATH)"
   10.28 +	wget http://www.kernel.org/pub/linux/kernel/v$(_LINUX_VDIR)/$@ -O./$@
   10.29 +
   10.30 +# Expand NetBSD release to NetBSD version
   10.31 +NETBSD_RELEASE  ?= 2.0
   10.32 +NETBSD_VER      ?= $(patsubst netbsd-%-xen-sparse,%,$(wildcard netbsd-$(NETBSD_RELEASE)*-xen-sparse))
   10.33 +NETBSD_CVSSNAP  ?= 20041103
   10.34 +
   10.35 +# Setup NetBSD search path
   10.36 +NETBSD_SRC_PATH	?= .:..
   10.37 +vpath netbsd-%.tar.bz2 $(NETBSD_SRC_PATH)
   10.38 +
   10.39 +# download a pristine NetBSD tarball if there isn't one in NETBSD_SRC_PATH
   10.40 +netbsd-%-xen-kernel-$(NETBSD_CVSSNAP).tar.bz2:
   10.41 +	@echo "Cannot find $@ in path $(NETBSD_SRC_PATH)"
   10.42 +	wget http://www.cl.cam.ac.uk/Research/SRG/netos/xen/downloads/$@ -O./$@
   10.43 +
   10.44 +netbsd-%.tar.bz2: netbsd-%-xen-kernel-$(NETBSD_CVSSNAP).tar.bz2
   10.45 +	ln -fs $< $@
   10.46 +
   10.47 +pristine-%: %.tar.bz2
   10.48 +	rm -rf tmp-$(@F) $@
   10.49 +	mkdir -p tmp-$(@F)
   10.50 +	tar -C tmp-$(@F) -jxf $<
   10.51 +	mv tmp-$(@F)/* $@
   10.52 +	touch $@ # update timestamp to avoid rebuild
   10.53 +	@rm -rf tmp-$(@F)
   10.54 +	[ -d patches/$* ] && \
   10.55 +	  for i in patches/$*/*.patch ; do ( cd $@ ; patch -p1 <../$$i ) ; done || \
   10.56 +	  true
   10.57 +
   10.58 +%-build:
   10.59 +	$(MAKE) -f buildconfigs/mk.$* build
   10.60 +
   10.61 +%-delete:
   10.62 +	$(MAKE) -f buildconfigs/mk.$* delete
   10.63 +
   10.64 +%-clean:
   10.65 +	$(MAKE) -f buildconfigs/mk.$* clean
   10.66 +
   10.67 +%-xen.patch: pristine-%
   10.68 +	rm -rf tmp-$@
   10.69 +	cp -al $< tmp-$@
   10.70 +	( cd $*-xen-sparse && ./mkbuildtree ../tmp-$@ )	
   10.71 +	diff -Nurp $< tmp-$@ > $@ || true
   10.72 +	rm -rf tmp-$@
   10.73 +
   10.74 +%-mrproper: %-mrproper-extra
   10.75 +	rm -rf pristine-$* $*.tar.bz2
   10.76 +	rm -rf $*-xen.patch
   10.77 +
   10.78 +netbsd-%-mrproper-extra:
   10.79 +	rm -rf netbsd-$*-tools netbsd-$*-tools.tar.bz2
   10.80 +	rm -f netbsd-$*-xen-kernel-$(NETBSD_CVSSNAP).tar.bz2
   10.81 +
   10.82 +%-mrproper-extra:
   10.83 +	@: # do nothing
   10.84 +
   10.85 +# never delete any intermediate files.
   10.86 +.SECONDARY:
    11.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    11.2 +++ b/buildconfigs/mk.linux-2.4-xen0	Thu Feb 10 13:17:10 2005 +0000
    11.3 @@ -0,0 +1,51 @@
    11.4 +
    11.5 +LINUX_SERIES = 2.4
    11.6 +
    11.7 +EXTRAVERSION = xen0
    11.8 +
    11.9 +FULLVERSION  = $(LINUX_VER)-$(EXTRAVERSION)
   11.10 +
   11.11 +LINUX_DIR    = linux-$(FULLVERSION)
   11.12 +
   11.13 +include buildconfigs/Rules.mk
   11.14 +
   11.15 +.PHONY: build clean delete
   11.16 +
   11.17 +# The real action starts here!
   11.18 +build: $(LINUX_DIR)/include/linux/autoconf.h
   11.19 +	if grep "^CONFIG_MODULES=" $(LINUX_DIR)/.config ; then \
   11.20 +	    $(MAKE) -C $(LINUX_DIR) ARCH=xen modules ; \
   11.21 +	    $(MAKE) -C $(LINUX_DIR) ARCH=xen INSTALL_MOD_PATH=$(DESTDIR) modules_install ; \
   11.22 +	fi
   11.23 +	$(MAKE) -C $(LINUX_DIR) ARCH=xen INSTALL_PATH=$(DESTDIR) install
   11.24 +
   11.25 +patches/tmp/ebtables.diff:
   11.26 +	mkdir -p patches/tmp
   11.27 +	wget http://www.cl.cam.ac.uk/netos/xen/downloads/ebtables-brnf-5_vs_2.4.27.diff.gz -O- | gunzip -c > $@
   11.28 +
   11.29 +$(LINUX_DIR)/include/linux/autoconf.h: patches/tmp/ebtables.diff
   11.30 +$(LINUX_DIR)/include/linux/autoconf.h: pristine-linux-$(LINUX_VER)
   11.31 +	rm -rf $(LINUX_DIR)
   11.32 +	cp -al $< $(LINUX_DIR)
   11.33 +	# Apply arch-xen patches
   11.34 +	( cd linux-$(LINUX_VER)-xen-sparse ; \
   11.35 +          ./mkbuildtree ../$(LINUX_DIR) )
   11.36 +	# Patch kernel Makefile to set EXTRAVERSION
   11.37 +	( cd $(LINUX_DIR) ; \
   11.38 +	  sed -e 's/^EXTRAVERSION.*/&-$(EXTRAVERSION)/' Makefile >Mk.tmp ; \
   11.39 +	  rm -f Makefile ; mv Mk.tmp Makefile )
   11.40 +	# add ebtables patch
   11.41 +	( cd $(LINUX_DIR) ; patch -p1 -F3 < ../patches/tmp/ebtables.diff )
   11.42 +	# Re-use config from install dir if one exits else use default config
   11.43 +	[ -r $(DESTDIR)/boot/config-$(FULLVERSION) ] && \
   11.44 +	  cp $(DESTDIR)/boot/config-$(FULLVERSION) $(LINUX_DIR)/.config \
   11.45 +	  || cp $(LINUX_DIR)/arch/xen/defconfig-$(EXTRAVERSION) \
   11.46 +		$(LINUX_DIR)/.config
   11.47 +	make -C $(LINUX_DIR) ARCH=xen oldconfig
   11.48 +	make -C $(LINUX_DIR) ARCH=xen dep
   11.49 +
   11.50 +clean:
   11.51 +	$(MAKE) -C $(LINUX_DIR) ARCH=xen clean
   11.52 +
   11.53 +delete: 
   11.54 +	rm -rf tmp-linux-$(LINUX_VER) $(LINUX_DIR) 
    12.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    12.2 +++ b/buildconfigs/mk.linux-2.4-xenU	Thu Feb 10 13:17:10 2005 +0000
    12.3 @@ -0,0 +1,44 @@
    12.4 +
    12.5 +LINUX_SERIES = 2.4
    12.6 +
    12.7 +EXTRAVERSION = xenU
    12.8 +
    12.9 +FULLVERSION  = $(LINUX_VER)-$(EXTRAVERSION)
   12.10 +
   12.11 +LINUX_DIR    = linux-$(FULLVERSION)
   12.12 +
   12.13 +include buildconfigs/Rules.mk
   12.14 +
   12.15 +.PHONY: build clean delete
   12.16 +
   12.17 +# The real action starts here!
   12.18 +build: $(LINUX_DIR)/include/linux/autoconf.h
   12.19 +	if grep "^CONFIG_MODULES=" $(LINUX_DIR)/.config ; then \
   12.20 +	    $(MAKE) -C $(LINUX_DIR) ARCH=xen modules ; \
   12.21 +	    $(MAKE) -C $(LINUX_DIR) ARCH=xen INSTALL_MOD_PATH=$(DESTDIR) modules_install ; \
   12.22 +	fi
   12.23 +	$(MAKE) -C $(LINUX_DIR) ARCH=xen INSTALL_PATH=$(DESTDIR) install
   12.24 +
   12.25 +$(LINUX_DIR)/include/linux/autoconf.h: pristine-linux-$(LINUX_VER)
   12.26 +	rm -rf $(LINUX_DIR)
   12.27 +	cp -al $< $(LINUX_DIR)
   12.28 +	# Apply arch-xen patches
   12.29 +	( cd linux-$(LINUX_VER)-xen-sparse ; \
   12.30 +          ./mkbuildtree ../$(LINUX_DIR) )
   12.31 +	# Patch kernel Makefile to set EXTRAVERSION
   12.32 +	( cd $(LINUX_DIR) ; \
   12.33 +	  sed -e 's/^EXTRAVERSION.*/&-$(EXTRAVERSION)/' Makefile >Mk.tmp ; \
   12.34 +	  rm -f Makefile ; mv Mk.tmp Makefile )
   12.35 +	# Re-use config from install dir if one exits else use default config
   12.36 +	[ -r $(DESTDIR)/boot/config-$(FULLVERSION) ] && \
   12.37 +	  cp $(DESTDIR)/boot/config-$(FULLVERSION) $(LINUX_DIR)/.config \
   12.38 +	  || cp $(LINUX_DIR)/arch/xen/defconfig-$(EXTRAVERSION) \
   12.39 +		$(LINUX_DIR)/.config
   12.40 +	make -C $(LINUX_DIR) ARCH=xen oldconfig
   12.41 +	make -C $(LINUX_DIR) ARCH=xen dep
   12.42 +
   12.43 +clean:
   12.44 +	$(MAKE) -C $(LINUX_DIR) ARCH=xen clean
   12.45 +
   12.46 +delete: 
   12.47 +	rm -rf tmp-linux-$(LINUX_VER) $(LINUX_DIR) 
    13.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    13.2 +++ b/buildconfigs/mk.linux-2.6-xen0	Thu Feb 10 13:17:10 2005 +0000
    13.3 @@ -0,0 +1,43 @@
    13.4 +
    13.5 +LINUX_SERIES = 2.6
    13.6 +
    13.7 +EXTRAVERSION = xen0
    13.8 +
    13.9 +FULLVERSION  = $(LINUX_VER)-$(EXTRAVERSION)
   13.10 +
   13.11 +LINUX_DIR    = linux-$(FULLVERSION)
   13.12 +
   13.13 +include buildconfigs/Rules.mk
   13.14 +
   13.15 +.PHONY: build clean delete
   13.16 +
   13.17 +# The real action starts here!
   13.18 +build: $(LINUX_DIR)/include/linux/autoconf.h
   13.19 +	if grep "^CONFIG_MODULES=" $(LINUX_DIR)/.config ; then \
   13.20 +	    $(MAKE) -C $(LINUX_DIR) ARCH=xen modules ; \
   13.21 +	    $(MAKE) -C $(LINUX_DIR) ARCH=xen INSTALL_MOD_PATH=$(DESTDIR) modules_install ; \
   13.22 +	fi
   13.23 +	$(MAKE) -C $(LINUX_DIR) ARCH=xen INSTALL_PATH=$(DESTDIR) install
   13.24 +
   13.25 +$(LINUX_DIR)/include/linux/autoconf.h: pristine-linux-$(LINUX_VER)
   13.26 +	rm -rf $(LINUX_DIR)
   13.27 +	cp -al $< $(LINUX_DIR)
   13.28 +	# Apply arch-xen patches
   13.29 +	( cd linux-$(LINUX_VER)-xen-sparse ; \
   13.30 +          ./mkbuildtree ../$(LINUX_DIR) )
   13.31 +	# Patch kernel Makefile to set EXTRAVERSION
   13.32 +	( cd $(LINUX_DIR) ; \
   13.33 +	  sed -e 's/^EXTRAVERSION.*/&-$(EXTRAVERSION)/' Makefile >Mk.tmp ; \
   13.34 +	  rm -f Makefile ; mv Mk.tmp Makefile )
   13.35 +	# Re-use config from install dir if one exits else use default config
   13.36 +	[ -r $(DESTDIR)/boot/config-$(FULLVERSION) ] && \
   13.37 +	  cp $(DESTDIR)/boot/config-$(FULLVERSION) $(LINUX_DIR)/.config \
   13.38 +	  || cp $(LINUX_DIR)/arch/xen/configs/$(EXTRAVERSION)_defconfig \
   13.39 +		$(LINUX_DIR)/.config
   13.40 +	$(MAKE) -C $(LINUX_DIR) ARCH=xen oldconfig
   13.41 +
   13.42 +clean:
   13.43 +	$(MAKE) -C $(LINUX_DIR) ARCH=xen clean
   13.44 +
   13.45 +delete: 
   13.46 +	rm -rf tmp-linux-$(LINUX_VER) $(LINUX_DIR) 
    14.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    14.2 +++ b/buildconfigs/mk.linux-2.6-xenU	Thu Feb 10 13:17:10 2005 +0000
    14.3 @@ -0,0 +1,43 @@
    14.4 +
    14.5 +LINUX_SERIES = 2.6
    14.6 +
    14.7 +EXTRAVERSION = xenU
    14.8 +
    14.9 +FULLVERSION  = $(LINUX_VER)-$(EXTRAVERSION)
   14.10 +
   14.11 +LINUX_DIR    = linux-$(FULLVERSION)
   14.12 +
   14.13 +include buildconfigs/Rules.mk
   14.14 +
   14.15 +.PHONY: build clean delete
   14.16 +
   14.17 +# The real action starts here!
   14.18 +build: $(LINUX_DIR)/include/linux/autoconf.h
   14.19 +	if grep "^CONFIG_MODULES=" $(LINUX_DIR)/.config ; then \
   14.20 +	    $(MAKE) -C $(LINUX_DIR) ARCH=xen modules ; \
   14.21 +	    $(MAKE) -C $(LINUX_DIR) ARCH=xen INSTALL_MOD_PATH=$(DESTDIR) modules_install ; \
   14.22 +	fi
   14.23 +	$(MAKE) -C $(LINUX_DIR) ARCH=xen INSTALL_PATH=$(DESTDIR) install
   14.24 +
   14.25 +$(LINUX_DIR)/include/linux/autoconf.h: pristine-linux-$(LINUX_VER)
   14.26 +	rm -rf $(LINUX_DIR)
   14.27 +	cp -al $< $(LINUX_DIR)
   14.28 +	# Apply arch-xen patches
   14.29 +	( cd linux-$(LINUX_VER)-xen-sparse ; \
   14.30 +          ./mkbuildtree ../$(LINUX_DIR) )
   14.31 +	# Patch kernel Makefile to set EXTRAVERSION
   14.32 +	( cd $(LINUX_DIR) ; \
   14.33 +	  sed -e 's/^EXTRAVERSION.*/&-$(EXTRAVERSION)/' Makefile >Mk.tmp ; \
   14.34 +	  rm -f Makefile ; mv Mk.tmp Makefile )
   14.35 +	# Re-use config from install dir if one exits else use default config
   14.36 +	[ -r $(DESTDIR)/boot/config-$(FULLVERSION) ] && \
   14.37 +	  cp $(DESTDIR)/boot/config-$(FULLVERSION) $(LINUX_DIR)/.config \
   14.38 +	  || cp $(LINUX_DIR)/arch/xen/configs/$(EXTRAVERSION)_defconfig \
   14.39 +		$(LINUX_DIR)/.config
   14.40 +	$(MAKE) -C $(LINUX_DIR) ARCH=xen oldconfig
   14.41 +
   14.42 +clean:
   14.43 +	$(MAKE) -C $(LINUX_DIR) ARCH=xen clean
   14.44 +
   14.45 +delete: 
   14.46 +	rm -rf tmp-linux-$(LINUX_VER) $(LINUX_DIR) 
    15.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    15.2 +++ b/buildconfigs/mk.netbsd-2.0-xenU	Thu Feb 10 13:17:10 2005 +0000
    15.3 @@ -0,0 +1,43 @@
    15.4 +
    15.5 +NETBSD_RELEASE   ?= 2.0
    15.6 +NETBSD_CVSSNAP   ?= 20041103
    15.7 +
    15.8 +EXTRAVERSION = xenU
    15.9 +
   15.10 +FULLVERSION  = $(NETBSD_VER)-$(EXTRAVERSION)
   15.11 +
   15.12 +NETBSD_DIR   = netbsd-$(FULLVERSION)
   15.13 +
   15.14 +.PHONY: build clean mrproper mkpatch
   15.15 +
   15.16 +include buildconfigs/Rules.mk
   15.17 +
   15.18 +build: netbsd-$(EXTRAVERSION)
   15.19 +
   15.20 +netbsd-%-tools.tar.bz2:
   15.21 +	@echo "Cannot find netbsd-$(NETBSD_VER)-tools.tar.gz in path $(NETBSD_SRC_PATH)"
   15.22 +	wget http://www.cl.cam.ac.uk/Research/SRG/netos/xen/downloads/netbsd-$*-tools.tar.bz2 -O./$@
   15.23 +
   15.24 +netbsd-%-tools: netbsd-%-tools.tar.bz2
   15.25 +	tar -jxf $<
   15.26 +	touch $@ # update timestamp to avoid rebuild
   15.27 +
   15.28 +$(NETBSD_DIR)/.valid: pristine-netbsd-$(NETBSD_VER)
   15.29 +	$(RM) -rf $(NETBSD_DIR)
   15.30 +	cp -al $< $(NETBSD_DIR)
   15.31 +	# Apply arch-xen patches
   15.32 +	( cd netbsd-$(NETBSD_VER)-xen-sparse ; \
   15.33 +          ./mkbuildtree ../$(NETBSD_DIR) )
   15.34 +	@touch $(NETBSD_DIR)/.valid
   15.35 +
   15.36 +# build the specified netbsd tree
   15.37 +netbsd-xen%: $(NETBSD_DIR)/.valid netbsd-$(NETBSD_RELEASE)-tools
   15.38 +	$(MAKE) -C netbsd-$(FULLVERSION) config
   15.39 +	$(MAKE) -C netbsd-$(FULLVERSION) netbsd
   15.40 +	$(MAKE) -C netbsd-$(FULLVERSION) INSTALL_PATH=$(DESTDIR) INSTALL_NAME=boot/netbsd-$(NETBSD_VER)-xen$* install
   15.41 +
   15.42 +clean:
   15.43 +	$(MAKE) -C netbsd-$(FULLVERSION) clean
   15.44 +
   15.45 +delete:
   15.46 +	rm -rf tmp-netbsd-$(NETBSD_VER) $(NETBSD_DIR)
    16.1 --- a/docs/HOWTOs/Console-HOWTO	Fri Aug 06 12:20:20 2004 +0000
    16.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    16.3 @@ -1,85 +0,0 @@
    16.4 -    New console I/O infrastructure in Xen 1.3
    16.5 -    =========================================
    16.6 -
    16.7 -    Keir Fraser, University of Cambridge, 3rd June 2004
    16.8 -
    16.9 - I thought I'd write a quick note about using the new console I/O
   16.10 - infrastructure in Xen 1.3. Significant new features compared with 1.2,
   16.11 - and with older revisions of 1.3, include:
   16.12 -  - bi-directional console access
   16.13 -  - log in to a Xenolinux guest OS via its virtual console
   16.14 -  - a new terminal client (replaces the use of telnet in character mode)
   16.15 -  - proper handling of terminal emulation
   16.16 -
   16.17 -Accessing the virtual console from within the guest OS
   16.18 -------------------------------------------------------
   16.19 - Every Xenolinux instance owns a bidirectional 'virtual console'.
   16.20 - The device node to which this console is attached can be configured
   16.21 - by specifying 'xencons=' on the OS command line:
   16.22 -  'xencons=off'  --> disable virtual console
   16.23 -  'xencons=tty'  --> attach console to /dev/tty1 (tty0 at boot-time)
   16.24 -  'xencons=ttyS' --> attach console to /dev/ttyS0
   16.25 - The default is to attach to /dev/tty1, and also to create dummy
   16.26 - devices for /dev/tty2-63 to avoid warnings from many standard distro
   16.27 - startup scripts. The exception is domain 0, which by default attaches
   16.28 - to /dev/ttyS0.
   16.29 -
   16.30 -Domain 0 virtual console
   16.31 -------------------------
   16.32 - The virtual console for domain 0 is shared with Xen's console. For
   16.33 - example, if you specify 'console=com1' as a boot parameter to Xen,
   16.34 - then domain 0 will have bi-directional access to the primary serial
   16.35 - line. Boot-time messages can be directed to the virtual console by
   16.36 - specifying 'console=ttyS0' as a boot parameter to Xenolinux.
   16.37 -
   16.38 -Connecting to the virtual console
   16.39 ----------------------------------
   16.40 - Domain 0 console may be accessed using the supplied 'miniterm' program
   16.41 - if raw serial access is desired. If the Xen machine is connected to a
   16.42 - serial-port server, then the supplied 'xencons' program may be used to
   16.43 - connect to the appropriate TCP port on the server:
   16.44 -  # xencons <server host> <server port>
   16.45 -
   16.46 -Logging in via virtual console
   16.47 -------------------------------
   16.48 - It is possible to log in to a guest OS via its virtual console if a
   16.49 - 'getty' is running. In most domains the virtual console is named tty1
   16.50 - so standard startup scripts and /etc/inittab should work
   16.51 - fine. Furthermore, tty2-63 are created as dummy console devices to
   16.52 - suppress warnings from standard startup scripts. If the OS has
   16.53 - attached the virtual console to /dev/ttyS0 then you will need to
   16.54 - start a 'mingetty' on that device node.
   16.55 -
   16.56 -Virtual console for other domains
   16.57 ----------------------------------
   16.58 - Every guest OS has a virtual console that is accessible via
   16.59 - 'console=tty0' at boot time (or 'console=xencons0' for domain 0), and
   16.60 - mingetty running on /dev/tty1 (or /dev/xen/cons for domain 0).
   16.61 - However, domains other than domain 0 do not have access to the
   16.62 - physical serial line. Instead, their console data is sent to and from
   16.63 - a control daemon running in domain 0. When properly installed, this
   16.64 - daemon can be started from the init scripts (e.g., rc.local):
   16.65 -  # /usr/sbin/xend start
   16.66 -
   16.67 - Alternatively, Redhat- and LSB-compatible Linux installations can use
   16.68 - the provided init.d script. To integrate startup and shutdown of xend
   16.69 - in such a system, you will need to run a few configuration commands:
   16.70 -  # chkconfig --add xend
   16.71 -  # chkconfig --level 35 xend on
   16.72 -  # chkconfig --level 01246 xend off
   16.73 - This will avoid the need to run xend manually from rc.local, for example.
   16.74 -
   16.75 - Note that, when a domain is created using xc_dom_create.py, xend MUST
   16.76 - be running. If everything is set up correctly then xc_dom_create will
   16.77 - print the local TCP port to which you should connect to perform
   16.78 - console I/O. A suitable console client is provided by the Python
   16.79 - module xenctl.console_client: running this module from the command
   16.80 - line with <host> and <port> parameters will start a terminal
   16.81 - session. This module is also installed as /usr/bin/xencons, from a
   16.82 - copy in tools/misc/xencons. For example:
   16.83 -  # xencons localhost 9600
   16.84 -
   16.85 - An alternative to manually running a terminal client is to specify
   16.86 - '-c' to xc_dom_create.py, or add 'auto_console=True' to the defaults
   16.87 - file. This will cause xc_dom_create.py to automatically become the
   16.88 - console terminal after starting the domain.
    17.1 --- a/docs/HOWTOs/Sched-HOWTO	Fri Aug 06 12:20:20 2004 +0000
    17.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    17.3 @@ -1,135 +0,0 @@
    17.4 -Xen Scheduler HOWTO
    17.5 -===================
    17.6 -
    17.7 -by Mark Williamson
    17.8 -(c) 2004 Intel Research Cambridge
    17.9 -
   17.10 -
   17.11 -Introduction
   17.12 -------------
   17.13 -
   17.14 -Xen offers a choice of CPU schedulers.  All available schedulers are
   17.15 -included in Xen at compile time and the administrator may select a
   17.16 -particular scheduler using a boot-time parameter to Xen.  It is
   17.17 -expected that administrators will choose the scheduler most
   17.18 -appropriate to their application and configure the machine to boot
   17.19 -with that scheduler.
   17.20 -
   17.21 -Note: the default scheduler is the Borrowed Virtual Time (BVT)
   17.22 -scheduler which was also used in previous releases of Xen.  No
   17.23 -configuration changes are required to keep using this scheduler.
   17.24 -
   17.25 -This file provides a brief description of the CPU schedulers available
   17.26 -in Xen, what they are useful for and the parameters that are used to
   17.27 -configure them.  This information is necessarily fairly technical at
   17.28 -the moment.  The recommended way to fully understand the scheduling
   17.29 -algorithms is to read the relevant research papers.
   17.30 -
   17.31 -The interface to the schedulers is basically "raw" at the moment,
   17.32 -without sanity checking - administrators should be careful when
   17.33 -setting the parameters since it is possible for a mistake to hang
   17.34 -domains, or the entire system (in particular, double check parameters
   17.35 -for sanity and make sure that DOM0 will get enough CPU time to remain
   17.36 -usable).  Note that xc_dom_control.py takes time values in
   17.37 -nanoseconds.
   17.38 -
   17.39 -Future tools will implement friendlier control interfaces.
   17.40 -
   17.41 -
   17.42 -Borrowed Virtual Time (BVT)
   17.43 ----------------------------
   17.44 -
   17.45 -All releases of Xen have featured the BVT scheduler, which is used to
   17.46 -provide proportional fair shares of the CPU based on weights assigned
   17.47 -to domains.  BVT is "work conserving" - the CPU will never be left
   17.48 -idle if there are runnable tasks.
   17.49 -
   17.50 -BVT uses "virtual time" to make decisions on which domain should be
   17.51 -scheduled on the processor.  Each time a scheduling decision is
   17.52 -required, BVT evaluates the "Effective Virtual Time" of all domains
   17.53 -and then schedules the domain with the least EVT.  Domains are allowed
   17.54 -to "borrow" virtual time by "time warping", which reduces their EVT by
   17.55 -a certain amount, so that they may be scheduled sooner.  In order to
   17.56 -maintain long term fairness, there are limits on when a domain can
   17.57 -time warp and for how long.  [ For more details read the SOSP'99 paper
   17.58 -by Duda and Cheriton ]
   17.59 -
   17.60 -In the Xen implementation, domains time warp when they unblock, so
   17.61 -that domain wakeup latencies are reduced.
   17.62 -
   17.63 -The BVT algorithm uses the following per-domain parameters (set using
   17.64 -xc_dom_control.py cpu_bvtset):
   17.65 -
   17.66 -* mcuadv - the MCU (Minimum Charging Unit) advance determines the
   17.67 -           proportional share of the CPU that a domain receives.  It
   17.68 -           is set inversely proportionally to a domain's sharing weight.
   17.69 -* warp   - the amount of "virtual time" the domain is allowed to warp
   17.70 -           backwards
   17.71 -* warpl  - the warp limit is the maximum time a domain can run warped for
   17.72 -* warpu  - the unwarp requirement is the minimum time a domain must
   17.73 -           run unwarped for before it can warp again
   17.74 -
   17.75 -BVT also has the following global parameter (set using
   17.76 -xc_dom_control.py cpu_bvtslice):
   17.77 -
   17.78 -* ctx_allow - the context switch allowance is similar to the "quantum"
   17.79 -              in traditional schedulers.  It is the minimum time that
   17.80 -              a scheduled domain will be allowed to run before be
   17.81 -              pre-empted.  This prevents thrashing of the CPU.
   17.82 -
   17.83 -BVT can now be selected by passing the 'sched=bvt' argument to Xen at
   17.84 -boot-time and is the default scheduler if no 'sched' argument is
   17.85 -supplied.
   17.86 -
   17.87 -Atropos
   17.88 --------
   17.89 -
   17.90 -Atropos is a scheduler originally developed for the Nemesis multimedia
   17.91 -operating system.  Atropos can be used to reserve absolute shares of
   17.92 -the CPU.  It also includes some features to improve the efficiency of
   17.93 -domains that block for I/O and to allow spare CPU time to be shared
   17.94 -out.
   17.95 -
   17.96 -The Atropos algorithm has the following parameters for each domain
   17.97 -(set using xc_dom_control.py cpu_atropos_set):
   17.98 -
   17.99 - * slice    - The length of time per period that a domain is guaranteed.
  17.100 - * period   - The period over which a domain is guaranteed to receive
  17.101 -              its slice of CPU time.
  17.102 - * latency  - The latency hint is used to control how soon after
  17.103 -              waking up a domain should be scheduled.
  17.104 - * xtratime - This is a true (1) / false (0) flag that specifies whether
  17.105 -             a domain should be allowed a share of the system slack time.
  17.106 -
  17.107 -Every domain has an associated period and slice.  The domain should
  17.108 -receive 'slice' nanoseconds every 'period' nanoseconds.  This allows
  17.109 -the administrator to configure both the absolute share of the CPU a
  17.110 -domain receives and the frequency with which it is scheduled.  When
  17.111 -domains unblock, their period is reduced to the value of the latency
  17.112 -hint (the slice is scaled accordingly so that they still get the same
  17.113 -proportion of the CPU).  For each subsequent period, the slice and
  17.114 -period times are doubled until they reach their original values.
  17.115 -
  17.116 -Atropos is selected by adding 'sched=atropos' to Xen's boot-time
  17.117 -arguments.
  17.118 -
  17.119 -Note: don't overcommit the CPU when using Atropos (i.e. don't reserve
  17.120 -more CPU than is available - the utilisation should be kept to
  17.121 -slightly less than 100% in order to ensure predictable behaviour).
  17.122 -
  17.123 -Round-Robin
  17.124 ------------
  17.125 -
  17.126 -The Round-Robin scheduler is provided as a simple example of Xen's
  17.127 -internal scheduler API.  For production systems, one of the other
  17.128 -schedulers should be used, since they are more flexible and more
  17.129 -efficient.
  17.130 -
  17.131 -The Round-robin scheduler has one global parameter (set using
  17.132 -xc_dom_control.py cpu_rrobin_slice):
  17.133 -
  17.134 - * rr_slice - The time for which each domain runs before the next
  17.135 -              scheduling decision is made.
  17.136 -
  17.137 -The Round-Robin scheduler can be selected by adding 'sched=rrobin' to
  17.138 -Xen's boot-time arguments.
    18.1 --- a/docs/HOWTOs/VBD-HOWTO	Fri Aug 06 12:20:20 2004 +0000
    18.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    18.3 @@ -1,437 +0,0 @@
    18.4 -Virtual Block Devices / Virtual Disks in Xen - HOWTO
    18.5 -====================================================
    18.6 -
    18.7 -HOWTO for Xen 1.2
    18.8 -
    18.9 -Mark A. Williamson (mark.a.williamson@intel.com)
   18.10 -(C) Intel Research Cambridge 2004
   18.11 -
   18.12 -Introduction
   18.13 -------------
   18.14 -
   18.15 -This document describes the new Virtual Block Device (VBD) and Virtual Disk
   18.16 -features available in Xen release 1.2.  First, a brief introduction to some
   18.17 -basic disk concepts on a Xen system:
   18.18 -
   18.19 -Virtual Block Devices (VBDs):
   18.20 -	VBDs are the disk abstraction provided by Xen.  All XenoLinux disk accesses
   18.21 -	go through the VBD driver.  Using the VBD functionality, it is possible
   18.22 -	to selectively grant domains access to portions of the physical disks
   18.23 -	in the system.
   18.24 -
   18.25 -	A virtual block device can also consist of multiple extents from the
   18.26 -	physical disks in the system, allowing them to be accessed as a single
   18.27 -	uniform device from the domain with access to that VBD.  The
   18.28 -	functionality is somewhat similar to that underpinning LVM, since
   18.29 -	you can combine multiple regions from physical devices into a single
   18.30 -	logical device, from the point of view of a guest virtual machine.
   18.31 -
   18.32 -	Everyone who boots Xen / XenoLinux from a hard drive uses VBDs
   18.33 -	but for some uses they can almost be ignored.
   18.34 -
   18.35 -Virtual Disks (VDs):
   18.36 -	VDs are an abstraction built on top of the functionality provided by
   18.37 -	VBDs.  The VD management code maintains a "free pool" of disk space on
   18.38 -	the system that has been reserved for use with VDs.  The tools can
   18.39 -	automatically allocate collections of extents from this free pool to
   18.40 -	create "virtual disks" on demand.
   18.41 -
   18.42 -	VDs can then be used just like normal disks by domains.  VDs appear
   18.43 -	just like any other disk to guest domains, since they use the same VBD
   18.44 -	abstraction, as provided by Xen.
   18.45 -
   18.46 -	Using VDs is optional, since it's always possible to dedicate
   18.47 -	partitions, or entire disks to your virtual machines.  VDs are handy
   18.48 -	when you have a dynamically changing set of virtual machines and you
   18.49 -	don't want to have to keep repartitioning in order to provide them with
   18.50 -	disk space.
   18.51 -
   18.52 -	Virtual Disks are rather like "logical volumes" in LVM.
   18.53 -
   18.54 -If that didn't all make sense, it doesn't matter too much ;-)  Using the
   18.55 -functionality is fairly straightforward and some examples will clarify things.
   18.56 -The text below expands a bit on the concepts involved, finishing up with a
   18.57 -walk-through of some simple virtual disk management tasks.
   18.58 -
   18.59 -
   18.60 -Virtual Block Devices
   18.61 ----------------------
   18.62 -
   18.63 -Before covering VD management, it's worth discussing some aspects of the VBD
   18.64 -functionality that will be useful to know.
   18.65 -
   18.66 -A VBD is made up of a number of extents from physical disk devices.  The
   18.67 -extents for a VBD don't have to be contiguous, or even on the same device.  Xen
   18.68 -performs address translation so that they appear as a single contiguous
   18.69 -device to a domain.
   18.70 -
   18.71 -When the VBD layer is used to give access to entire drives or entire
   18.72 -partitions, the VBDs simply consist of a single extent that corresponds to the
   18.73 -drive or partition used.  Lists of extents are usually only used when virtual
   18.74 -disks (VDs) are being used.
   18.75 -
   18.76 -Xen 1.2 and its associated XenoLinux release support automatic registration /
   18.77 -removal of VBDs.  It has always been possible to add a VBD to a running
   18.78 -XenoLinux domain but it was then necessary to run the "xen_vbd_refresh" tool in
   18.79 -order for the new device to be detected.  Nowadays, when a VBD is added, the
   18.80 -domain it's added to automatically registers the disk, with no special action
   18.81 -by the user being required.
   18.82 -
   18.83 -Note that it is possible to use the VBD functionality to allow multiple domains
   18.84 -write access to the same areas of disk.  This is almost always a bad thing!
   18.85 -The provided example scripts for creating domains do their best to check that
   18.86 -disk areas are not shared unsafely and will catch many cases of this.  Setting
   18.87 -the vbd_expert variable in config files for xc_dom_create.py controls how
   18.88 -unsafe it allows VBD mappings to be - 0 (read only sharing allowed) should be
   18.89 -right for most people ;-).  Level 1 attempts to allow at most one writer to any
   18.90 -area of disk.  Level 2 allows multiple writers (i.e. anything!).
   18.91 -
   18.92 -
   18.93 -Virtual Disk Management
   18.94 ------------------------
   18.95 -
   18.96 -The VD management code runs entirely in user space.  The code is written in
   18.97 -Python and can therefore be accessed from custom scripts, as well as from the
   18.98 -convenience scripts provided.  The underlying VD database is a SQLite database
   18.99 -in /var/db/xen_vdisks.sqlite.
  18.100 -
  18.101 -Most virtual disk management can be performed using the xc_vd_tool.py script
  18.102 -provided in the tools/examples/ directory of the source tree.  It supports the
  18.103 -following operations:
  18.104 -
  18.105 -initialise -	     "Formats" a partition or disk device for use storing
  18.106 -		     virtual disks.  This does not actually write data to the
  18.107 -		     specified device.  Rather, it adds the device to the VD
  18.108 -		     free-space pool, for later allocation.
  18.109 -
  18.110 -		     You should only add devices that correspond directly to
  18.111 -		     physical disks / partitions - trying to use a VBD that you
  18.112 -		     have created yourself as part of the free space pool has
  18.113 -		     undefined (possibly nasty) results.
  18.114 -
  18.115 -create -	     Creates a virtual disk of specified size by allocating space
  18.116 -		     from the free space pool.  The virtual disk is identified
  18.117 -		     in future by the unique ID returned by this script.
  18.118 -
  18.119 -		     The disk can be given an expiry time, if desired.  For
  18.120 -		     most users, the best idea is to specify a time of 0 (which
  18.121 -		     has the special meaning "never expire") and then
  18.122 -		     explicitly delete the VD when finished with it -
  18.123 -		     otherwise, VDs will disappear if allowed to expire.
  18.124 -
  18.125 -delete -	     Explicitly delete a VD.  Makes it disappear immediately!
  18.126 -
  18.127 -setexpiry -	     Allows the expiry time of a (not yet expired) virtual disk
  18.128 -		     to be modified.  Be aware the VD will disappear when the
  18.129 -		     time has expired.
  18.130 -
  18.131 -enlarge -            Increase the allocation of space to a virtual disk.
  18.132 -		     Currently this will not be immediately visible to running
  18.133 -		     domain(s) using it.  You can make it visible by destroying
  18.134 -		     the corresponding VBDs and then using xc_dom_control.py to
  18.135 -		     add them to the domain again.  Note: doing this to
  18.136 -		     filesystems that are in use may well cause errors in the
  18.137 -		     guest Linux, or even a crash although it will probably be
  18.138 -		     OK if you stop the domain before updating the VBD and
  18.139 -		     restart afterwards.
  18.140 -
  18.141 -import -	     Allocate a virtual disk and populate it with the contents of
  18.142 -		     some disk file.  This can be used to import root file system
  18.143 -		     images or to restore backups of virtual disks, for instance.
  18.144 -
  18.145 -export -	     Write the contents of a virtual disk out to a disk file.
  18.146 -		     Useful for creating disk images for use elsewhere, such as
  18.147 -		     standard root file systems and backups.
  18.148 -
  18.149 -list -		     List the non-expired virtual disks currently available in the
  18.150 -		     system.
  18.151 -
  18.152 -undelete -	     Attempts to recover an expired (or deleted) virtual disk.
  18.153 -
  18.154 -freespace -	     Get the free space (in megabytes) available for allocating
  18.155 -		     new virtual disk extents.
  18.156 -
  18.157 -The functionality provided by these scripts is also available directly from
  18.158 -Python functions in the xenctl.utils module - you can use this functionality in
  18.159 -your own scripts.
  18.160 -
  18.161 -Populating VDs:
  18.162 -
  18.163 -Once you've created a VD, you might want to populate it from DOM0 (for
  18.164 -instance, to put a root file system onto it for a guest domain).  This can be
  18.165 -done by creating a VBD for dom0 to access the VD through - this is discussed
  18.166 -below.
  18.167 -
  18.168 -More detail on how virtual disks work:
  18.169 -
  18.170 -When you "format" a device for virtual disks, the device is logically split up
  18.171 -into extents.  These extents are recorded in the Virtual Disk Management
  18.172 -database in /var/db/xen_vdisks.sqlite.
  18.173 -
  18.174 -When you use xc_vd_tool.py to add create a virtual disk, some of the extents in
  18.175 -the free space pool are reallocated for that virtual disk and a record for that
  18.176 -VD is added to the database.  When VDs are mapped into domains as VBDs, the
  18.177 -system looks up the allocated extents for the virtual disk in order to set up
  18.178 -the underlying VBD.
  18.179 -
  18.180 -Free space is identified by the fact that it belongs to an "expired" disk.
  18.181 -When "initialising" with xc_vd_tool.py adds a real device to the free pool, it
  18.182 -actually divides the device into extents and adds them to an already-expired
  18.183 -virtual disk.  The allocated device is not written to during this operation -
  18.184 -its availability is simply recorded into the virtual disks database.
  18.185 -
  18.186 -If you set an expiry time on a VD, its extents will be liable to be reallocated
  18.187 -to new VDs as soon as that expiry time runs out.  Therefore, be careful when
  18.188 -setting expiry times!  Many users will find it simplest to set all VDs to not
  18.189 -expire automatically, then explicitly delete them later on.
  18.190 -
  18.191 -Deleted / expired virtual disks may sometimes be undeleted - currently this
  18.192 -only works when none of the virtual disk's extents have been reallocated to
  18.193 -other virtual disks, since that's the only situation where the disk is likely
  18.194 -to be fully intact.  You should try undeletion as soon as you realise you've
  18.195 -mistakenly deleted (or allowed to expire) a virtual disk.  At some point in the
  18.196 -future, an "unsafe" undelete which can recover what remains of partially
  18.197 -reallocated virtual disks may also be implemented.
  18.198 -
  18.199 -Security note:
  18.200 -
  18.201 -The disk space for VDs is not zeroed when it is initially added to the free
  18.202 -space pool OR when a VD expires OR when a VD is created.  Therefore, if this is
  18.203 -not done manually it is possible for a domain to read a VD to determine what
  18.204 -was written by previous owners of its constituent extents.  If this is a
  18.205 -problem, users should manually clean VDs in some way either on allocation, or
  18.206 -just before deallocation (automated support for this may be added at a later
  18.207 -date).
  18.208 -
  18.209 -
  18.210 -Side note: The xvd* devices
  18.211 ----------------------------
  18.212 -
  18.213 -The examples in this document make frequent use of the xvd* device nodes for
  18.214 -representing virtual block devices.  It is not a requirement to use these with
  18.215 -Xen, since VBDs can be mapped to any IDE or SCSI device node in the system.
  18.216 -Changing the the references to xvd* nodes in the examples below to refer to
  18.217 -some unused hd* or sd* node would also be valid.
  18.218 -
  18.219 -They can be useful when accessing VBDs from dom0, since binding VBDs to xvd*
  18.220 -devices under will avoid clashes with real IDE or SCSI drives.
  18.221 -
  18.222 -There is a shell script provided in tools/misc/xen-mkdevnodes to create these
  18.223 -nodes.  Specify on the command line the directory that the nodes should be
  18.224 -placed under (e.g. /dev):
  18.225 -
  18.226 -> cd {root of Xen source tree}/tools/misc/
  18.227 -> ./xen-mkdevnodes /dev
  18.228 -
  18.229 -
  18.230 -Dynamically Registering VBDs
  18.231 -----------------------------
  18.232 -
  18.233 -The domain control tool (xc_dom_control.py) includes the ability to add and
  18.234 -remove VBDs to / from running domains.  As usual, the command format is:
  18.235 -
  18.236 -xc_dom_control.py [operation] [arguments]
  18.237 -
  18.238 -The operations (and their arguments) are as follows:
  18.239 -
  18.240 -vbd_add dom uname dev mode - Creates a VBD corresponding to either a physical
  18.241 -		             device or a virtual disk and adds it as a
  18.242 -		             specified device under the target domain, with
  18.243 -		             either read or write access.
  18.244 -
  18.245 -vbd_remove dom dev	   - Removes the VBD associated with a specified device
  18.246 -			     node from the target domain.
  18.247 -
  18.248 -These scripts are most useful when populating VDs.  VDs can't be populated
  18.249 -directly, since they don't correspond to real devices.  Using:
  18.250 -
  18.251 -  xc_dom_control.py vbd_add 0 vd:your_vd_id /dev/whatever w
  18.252 -
  18.253 -You can make a virtual disk available to DOM0.  Sensible devices to map VDs to
  18.254 -in DOM0 are the /dev/xvd* nodes, since that makes it obvious that they are Xen
  18.255 -virtual devices that don't correspond to real physical devices.
  18.256 -
  18.257 -You can then format, mount and populate the VD through the nominated device
  18.258 -node.  When you've finished, use:
  18.259 -
  18.260 -  xc_dom_control.py vbd_remove 0 /dev/whatever
  18.261 -
  18.262 -To revoke DOM0's access to it.  It's then ready for use in a guest domain.
  18.263 -
  18.264 -
  18.265 -
  18.266 -You can also use this functionality to grant access to a physical device to a
  18.267 -guest domain - you might use this to temporarily share a partition, or to add
  18.268 -access to a partition that wasn't granted at boot time.
  18.269 -
  18.270 -When playing with VBDs, remember that in general, it is only safe for two
  18.271 -domains to have access to a file system if they both have read-only access.  You
  18.272 -shouldn't be trying to share anything which is writable, even if only by one
  18.273 -domain, unless you're really sure you know what you're doing!
  18.274 -
  18.275 -
  18.276 -Granting access to real disks and partitions
  18.277 ---------------------------------------------
  18.278 -
  18.279 -During the boot process, Xen automatically creates a VBD for each physical disk
  18.280 -and gives Dom0 read / write access to it.  This makes it look like Dom0 has
  18.281 -normal access to the disks, just as if Xen wasn't being used - in reality, even
  18.282 -Dom0 talks to disks through Xen VBDs.
  18.283 -
  18.284 -To give another domain access to a partition or whole disk then you need to
  18.285 -create a corresponding VBD for that partition, for use by that domain.  As for
  18.286 -virtual disks, you can grant access to a running domain, or specify that the
  18.287 -domain should have access when it is first booted.
  18.288 -
  18.289 -To grant access to a physical partition or disk whilst a domain is running, use
  18.290 -the xc_dom_control.py script - the usage is very similar to the case of adding
  18.291 -access virtual disks to a running domain (described above).  Specify the device
  18.292 -as "phy:device", where device is the name of the device as seen from domain 0,
  18.293 -or from normal Linux without Xen.  For instance:
  18.294 -
  18.295 -> xc_dom_control.py vbd_add 2 phy:hdc /dev/whatever r
  18.296 -
  18.297 -Will grant domain 2 read-only access to the device /dev/hdc (as seen from Dom0
  18.298 -/ normal Linux running on the same machine - i.e. the master drive on the
  18.299 -secondary IDE chain), as /dev/whatever in the target domain.
  18.300 -
  18.301 -Note that you can use this within domain 0 to map disks / partitions to other
  18.302 -device nodes within domain 0.  For instance, you could map /dev/hda to also be
  18.303 -accessible through /dev/xvda.  This is not generally recommended, since if you
  18.304 -(for instance) mount both device nodes read / write you could cause corruption
  18.305 -to the underlying filesystem.  It's also quite confusing ;-)
  18.306 -
  18.307 -To grant a domain access to a partition or disk when it boots, the appropriate
  18.308 -VBD needs to be created before the domain is started.  This can be done very
  18.309 -easily using the tools provided.  To specify this to the xc_dom_create.py tool
  18.310 -(either in a startup script or on the command line) use triples of the format:
  18.311 -
  18.312 -  phy:dev,target_dev,perms
  18.313 -
  18.314 -Where dev is the device name as seen from Dom0, target_dev is the device you
  18.315 -want it to appear as in the target domain and perms is 'w' if you want to give
  18.316 -write privileges, or 'r' otherwise.
  18.317 -
  18.318 -These may either be specified on the command line or in an initialisation
  18.319 -script.  For instance, to grant the same access rights as described by the
  18.320 -command example above, you would use the triple:
  18.321 -
  18.322 -  phy:hdc,/dev/whatever,r
  18.323 -
  18.324 -If you are using a config file, then you should add this triple into the
  18.325 -vbd_list variable, for instance using the line:
  18.326 -
  18.327 -  vbd_list = [ ('phy:dev', 'hdc', 'r') ]
  18.328 -
  18.329 -(Note that you need to use quotes here, since config files are really small
  18.330 -Python scripts.)
  18.331 -
  18.332 -To specify the mapping on the command line, you'd use the -d switch and supply
  18.333 -the triple as the argument, e.g.:
  18.334 -
  18.335 -> xc_dom_create.py [other arguments] -d phy:hdc,/dev/whatever,r
  18.336 -
  18.337 -(You don't need to explicitly quote things in this case.)
  18.338 -
  18.339 -
  18.340 -Walk-through: Booting a domain from a VD
  18.341 -----------------------------------------
  18.342 -
  18.343 -As an example, here is a sequence of commands you might use to create a virtual
  18.344 -disk, populate it with a root file system and boot a domain from it.  These
  18.345 -steps assume that you've installed the example scripts somewhere on your PATH -
  18.346 -if you haven't done that, you'll need to specify a fully qualified pathname in
  18.347 -the examples below.  It is also assumed that you know how to use the
  18.348 -xc_dom_create.py tool (apart from configuring virtual disks!)
  18.349 -
  18.350 -[ This example is intended only for users of virtual disks (VDs).  You don't
  18.351 -need to follow this example if you'll be booting a domain from a dedicated
  18.352 -partition, since you can create that partition and populate it, directly from
  18.353 -Dom0, as normal. ]
  18.354 -
  18.355 -First, if you haven't done so already, you'll initialise the free space pool by
  18.356 -adding a real partition to it.  The details are stored in the database, so
  18.357 -you'll only need to do it once.  You can also use this command to add further
  18.358 -partitions to the existing free space pool.
  18.359 -
  18.360 -> xc_vd_tool.py format /dev/<real partition>
  18.361 -
  18.362 -Now you'll want to allocate the space for your virtual disk.  Do so using the
  18.363 -following, specifying the size in megabytes.
  18.364 -
  18.365 -> xc_vd_tool.py create <size in megabytes>
  18.366 -
  18.367 -At this point, the program will tell you the virtual disk ID.  Note it down, as
  18.368 -it is how you will identify the virtual device in future.
  18.369 -
  18.370 -If you don't want the VD to be bootable (i.e. you're booting a domain from some
  18.371 -other medium and just want it to be able to access this VD), you can simply add
  18.372 -it to the vbd_list used by xc_dom_create.py, either by putting it in a config
  18.373 -file or by specifying it on the command line.  Formatting / populating of the
  18.374 -VD could then done from that domain once it's started.
  18.375 -
  18.376 -If you want to boot off your new VD as well then you need to populate it with a
  18.377 -standard Linux root filesystem.  You'll need to temporarily add the VD to DOM0
  18.378 -in order to do this.  To give DOM0 r/w access to the VD, use the following
  18.379 -command line, substituting the ID you got earlier.
  18.380 -
  18.381 -> xc_dom_control.py vbd_add 0 vd:<id> /dev/xvda w
  18.382 -
  18.383 -This attaches the VD to the device /dev/xvda in domain zero, with read / write
  18.384 -privileges - you can use other devices nodes if you choose too.
  18.385 -
  18.386 -Now make a filesystem on this device, mount it and populate it with a root
  18.387 -filesystem.  These steps are exactly the same as under normal Linux.  When
  18.388 -you've finished, unmount the filesystem again.
  18.389 -
  18.390 -You should now remove the VD from DOM0.  This will prevent you accidentally
  18.391 -changing it in DOM0, whilst the guest domain is using it (which could cause
  18.392 -filesystem corruption, and confuse Linux).
  18.393 -
  18.394 -> xc_dom_control.py vbd_remove 0 /dev/xvda
  18.395 -
  18.396 -It should now be possible to boot a guest domain from the VD.  To do this, you
  18.397 -should specify the the VD's details in some way so that xc_dom_create.py will
  18.398 -be able to set up the corresponding VBD for the domain to access.  If you're
  18.399 -using a config file, you should include:
  18.400 -
  18.401 -  ('vd:<id>', '/dev/whatever', 'w')
  18.402 -
  18.403 -In the vbd_list, substituting the appropriate virtual disk ID, device node and
  18.404 -read / write setting.
  18.405 -
  18.406 -To specify access on the command line, as you start the domain, you would use
  18.407 -the -d switch (note that you don't need to use quote marks here):
  18.408 -
  18.409 -> xc_dom_create.py [other arguments] -d vd:<id>,/dev/whatever,w
  18.410 -
  18.411 -To tell Linux which device to boot from, you should either include:
  18.412 -
  18.413 -  root=/dev/whatever
  18.414 -
  18.415 -in your cmdline_root in the config file, or specify it on the command line,
  18.416 -using the -R option:
  18.417 -
  18.418 -> xc_dom_create.py [other arguments] -R root=/dev/whatever
  18.419 -
  18.420 -That should be it: sit back watch your domain boot off its virtual disk!
  18.421 -
  18.422 -
  18.423 -Getting help
  18.424 -------------
  18.425 -
  18.426 -The main source of help using Xen is the developer's e-mail list:
  18.427 -<xen-devel@lists.sourceforge.net>.  The developers will help with problems,
  18.428 -listen to feature requests and do bug fixes.  It is, however, helpful if you
  18.429 -can look through the mailing list archives and HOWTOs provided to make sure
  18.430 -your question is not answered there.  If you post to the list, please provide
  18.431 -as much information as possible about your setup and your problem.
  18.432 -
  18.433 -There is also a general Xen FAQ, kindly started by Jan van Rensburg, which (at
  18.434 -time of writing) is located at: <http://xen.epiuse.com/xen-faq.txt>.
  18.435 -
  18.436 -Contributing
  18.437 -------------
  18.438 -
  18.439 -Patches and extra documentation are also welcomed ;-) and should also be posted
  18.440 -to the xen-devel e-mail list.
    19.1 --- a/docs/HOWTOs/Xen-HOWTO	Fri Aug 06 12:20:20 2004 +0000
    19.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    19.3 @@ -1,416 +0,0 @@
    19.4 -###########################################
    19.5 -Xen HOWTO
    19.6 -
    19.7 -University of Cambridge Computer Laboratory
    19.8 -
    19.9 -http://www.cl.cam.ac.uk/netos/xen
   19.10 -#############################
   19.11 -
   19.12 -
   19.13 -Get Xen Source Code
   19.14 -=============================
   19.15 -
   19.16 -The public master BK repository for the 1.2 release lives at:
   19.17 -'bk://xen.bkbits.net/xeno-1.2.bk'
   19.18 -The current unstable release (1.3) is available at:
   19.19 -'bk://xen.bkbits.net/xeno-unstable.bk'
   19.20 -
   19.21 -To fetch a local copy, first download the BitKeeper tools at:
   19.22 -http://www.bitmover.com/download with username 'bitkeeper' and
   19.23 -password 'get bitkeeper'.
   19.24 -
   19.25 -Then install the tools and then run:
   19.26 -# bk clone bk://xen.bkbits.net/xeno-1.2.bk
   19.27 -
   19.28 -Under your current directory, a new directory named 'xeno-1.2.bk' has
   19.29 -been created, which contains all the necessary source codes for the
   19.30 -Xen hypervisor and Linux guest OSes.
   19.31 -
   19.32 -To get newest changes to the repository, run
   19.33 -# cd xeno-1.2.bk
   19.34 -# bk pull
   19.35 -
   19.36 -
   19.37 -Configuring Xen
   19.38 -=============================
   19.39 -
   19.40 -Xen's build configuration is managed via a set of environment
   19.41 -variables. These should be set before invoking make 
   19.42 -(e.g., 'export debug=y; make', 'debug=y make').
   19.43 -
   19.44 -The options that can be configured are as follows (all options default
   19.45 -to 'n' or off):
   19.46 -
   19.47 - debug=y    -- Enable debug assertions and console output.
   19.48 -               (Primarily useful for tracing bugs in Xen).
   19.49 -
   19.50 - debugger=y -- Enable the in-Xen pervasive debugger (PDB).
   19.51 -               This can be used to debug Xen, guest OSes, and
   19.52 -               applications. For more information see the 
   19.53 -               XenDebugger-HOWTO.
   19.54 -
   19.55 - perfc=y    -- Enable performance-counters for significant events
   19.56 -               within Xen. The counts can be reset or displayed
   19.57 -               on Xen's console via console control keys.
   19.58 -
   19.59 - trace=y    -- Enable per-cpu trace buffers which log a range of
   19.60 -               events within Xen for collection by control
   19.61 -               software.
   19.62 -
   19.63 -
   19.64 -Build Xen
   19.65 -=============================
   19.66 -
   19.67 -Hint: To see how to build Xen and all the control tools, inspect the
   19.68 -tools/misc/xen-clone script in the BK repository. This script can be
   19.69 -used to clone the repository and perform a full build.
   19.70 -
   19.71 -To build Xen manually:
   19.72 -
   19.73 -# cd xeno-1.2.bk/xen
   19.74 -# make clean
   19.75 -# make
   19.76 -
   19.77 -This will (should) produce a file called 'xen' in the current
   19.78 -directory.  This is the ELF 32-bit LSB executable file of Xen.  You
   19.79 -can also find a gzip version, named 'xen.gz'.
   19.80 -
   19.81 -To install the built files on your server under /usr, type 'make
   19.82 -install' at the root of the BK repository. You will need to be root to
   19.83 -do this!
   19.84 -
   19.85 -Hint: There is also a 'make dist' rule which copies built files to an
   19.86 -install directory just outside the BK repo; if this suits your setup,
   19.87 -go for it.
   19.88 -
   19.89 -
   19.90 -Build Linux as a Xen guest OS
   19.91 -==============================
   19.92 -
   19.93 -This is a little more involved since the repository only contains a
   19.94 -"sparse" tree -- this is essentially an 'overlay' on a standard linux
   19.95 -kernel source tree. It contains only those files currently 'in play'
   19.96 -which are either modified versions of files in the vanilla linux tree,
   19.97 -or brand new files specific to the Xen port.
   19.98 -
   19.99 -So, first you need a vanilla linux-2.4.26 tree, which is located at:
  19.100 -http://www.kernel.org/pub/linux/kernel/v2.4
  19.101 -
  19.102 -Then:
  19.103 -  # mv linux-2.4.26.tar.gz /xeno-1.2.bk
  19.104 -  # cd /xeno-1.2.bk
  19.105 -  # tar -zxvf linux-2.4.26.tar.gz
  19.106 -
  19.107 -You'll find a new directory 'linux-2.4.26' which contains all
  19.108 -the vanilla Linux 2.4.26 kernel source codes.
  19.109 -
  19.110 -Hint: You should choose the vanilla linux kernel tree that has the
  19.111 -same version as the "sparse" tree.
  19.112 -
  19.113 -Next, you need to 'overlay' this sparse tree on the full vanilla Linux
  19.114 -kernel tree:
  19.115 -
  19.116 -  # cd /xeno-1.2.bk/xenolinux-2.4.26-sparse
  19.117 -  # ./mkbuildtree ../linux-2.4.26
  19.118 -
  19.119 -Finally, rename the buildtree since it is now a 'xenolinux' buildtree. 
  19.120 -
  19.121 -  # cd /xeno-1.2.bk
  19.122 -  # mv linux-2.4.26 xenolinux-2.4.26
  19.123 -
  19.124 -Now that the buildtree is there, you can build the xenolinux kernel.
  19.125 -The default configuration should work fine for most people (use 'make
  19.126 -oldconfig') but you can customise using one of the other config tools
  19.127 -if you want.
  19.128 -
  19.129 -  # cd /xeno-1.2.bk/xenolinux-2.4.26
  19.130 -  # ARCH=xen make oldconfig   { or menuconfig, or xconfig, or config }  
  19.131 -  # ARCH=xen make dep
  19.132 -  # ARCH=xen make bzImage
  19.133 -
  19.134 -Assuming the build works, you'll end up with
  19.135 -/xeno-1.2.bk/xenolinux-2.4.26/arch/xen/boot/xenolinux.gz. This is the
  19.136 -gzip version of XenoLinux kernel image.
  19.137 -
  19.138 -
  19.139 -Build the Domain Control Tools
  19.140 -==============================
  19.141 -
  19.142 -Under '/xeno-1.2.bk/tools', there are three sub-directories:
  19.143 -'balloon', 'xc' and 'misc', each containing
  19.144 -a group of tools. You can enter any of the four sub-directories
  19.145 -and type 'make' to compile the corresponding group of tools.
  19.146 -Or you can type 'make' under '/xeno-1.2.bk/tools' to compile
  19.147 -all the tools.
  19.148 -
  19.149 -In order to compile the control-interface library in 'xc' you must
  19.150 -have zlib and development headers installed. Also you will need at
  19.151 -least Python v2.2. 
  19.152 -
  19.153 -'make install' in the tools directory will place executables and
  19.154 -libraries in /usr/bin and /usr/lib. You will need to be root to do this!
  19.155 -
  19.156 -As noted earlier, 'make dist' installs files to a local 'install'
  19.157 -directory just outside the BK repository. These files will then need
  19.158 -to be installed manually onto the server.
  19.159 -
  19.160 -The Example Scripts
  19.161 -===================
  19.162 -
  19.163 -The scripts in tools/examples/ are generally useful for
  19.164 -administering a Xen-based system.  You can install them by running
  19.165 -'make install' in that directory.
  19.166 -
  19.167 -The python scripts (*.py) are the main tools for controlling
  19.168 -Xen domains.
  19.169 -
  19.170 -'defaults' and 'democd' are example configuration files for starting
  19.171 -new domains.
  19.172 -
  19.173 -'xendomains' is a Sys-V style init script for starting and stopping
  19.174 -Xen domains when the system boots / shuts down.
  19.175 -
  19.176 -These will be discussed below in more detail.
  19.177 -
  19.178 -
  19.179 -Installation
  19.180 -==============================
  19.181 -
  19.182 -First:
  19.183 -# cp /xen-1.2.bk/xen/xen.gz /boot/xen.gz
  19.184 -# cp /xen-1.2.bk/xenolinux-2.4.26/arch/xen/boot/xenolinux.gz /boot/xenolinux.gz
  19.185 -
  19.186 -Second, you must have 'GNU Grub' installed. Then you need to edit
  19.187 -the Grub configuration file '/boot/grub/menu.lst'.
  19.188 -
  19.189 -A typical Grub menu option might look like:
  19.190 -
  19.191 -title Xen 1.2 / XenoLinux 2.4.26
  19.192 -        kernel /boot/xen.gz dom0_mem=131072 com1=115200,8n1 noht
  19.193 -        module /boot/xenolinux.gz root=/dev/sda4 ro console=tty0
  19.194 -
  19.195 -The first line specifies which Xen image to use, and what command line
  19.196 -arguments to pass to Xen. In this case we set the maximum amount of
  19.197 -memory to allocate to domain0, and enable serial I/O at 115200 baud.
  19.198 -We could also disable smp support (nosmp) or disable hyper-threading
  19.199 -support (noht). If you have multiple network interface you can use
  19.200 -ifname=ethXX to select which one to use. If your network card is
  19.201 -unsupported, use ifname=dummy
  19.202 -
  19.203 -The second line specifies which XenoLinux image to use, and the
  19.204 -standard linux command line arguments to pass to the kernel. In this
  19.205 -case, we're configuring the root partition and stating that it should
  19.206 -(initially) be mounted read-only (normal practice). 
  19.207 -
  19.208 -The following is a list of command line arguments to pass to Xen:
  19.209 -
  19.210 - ignorebiostables Disable parsing of BIOS-supplied tables. This may
  19.211 -                  help with some chipsets that aren't fully supported
  19.212 -                  by Xen. If you specify this option then ACPI tables are
  19.213 -                  also ignored, and SMP support is disabled.
  19.214 -
  19.215 - noreboot         Don't reboot the machine automatically on errors.
  19.216 -                  This is useful to catch debug output if you aren't
  19.217 -                  catching console messages via the serial line.
  19.218 -
  19.219 - nosmp            Disable SMP support.
  19.220 -                  This option is implied by 'ignorebiostables'.
  19.221 -
  19.222 - noacpi           Disable ACPI tables, which confuse Xen on some chipsets.
  19.223 -                  This option is implied by 'ignorebiostables'.
  19.224 -
  19.225 - watchdog         Enable NMI watchdog which can report certain failures.
  19.226 -
  19.227 - noht             Disable Hyperthreading.
  19.228 -
  19.229 - badpage=<page number>[,<page number>]*
  19.230 -                  Specify a list of pages not to be allocated for use 
  19.231 -                  because they contain bad bytes. For example, if your
  19.232 -                  memory tester says that byte 0x12345678 is bad, you would
  19.233 -                  place 'badpage=0x12345' on Xen's command line (i.e., the
  19.234 -                  last three digits of the byte address are not included!).
  19.235 -
  19.236 - com1=<baud>,DPS[,<io_base>,<irq>]
  19.237 - com2=<baud>,DPS[,<io_base>,<irq>]
  19.238 -                  Xen supports up to two 16550-compatible serial ports.
  19.239 -                  For example: 'com1=9600,8n1,0x408,5' maps COM1 to a
  19.240 -                  9600-baud port, 8 data bits, no parity, 1 stop bit,
  19.241 -                  I/O port base 0x408, IRQ 5.
  19.242 -                  If the I/O base and IRQ are standard (com1:0x3f8,4;
  19.243 -                  com2:0x2f8,3) then they need not be specified.
  19.244 -
  19.245 - console=<specifier list>
  19.246 -                  Specify the destination for Xen console I/O.
  19.247 -                  This is a comma-separated list of, for example:
  19.248 -                   vga:  use VGA console and allow keyboard input
  19.249 -                   com1: use serial port com1
  19.250 -                   com2H: use serial port com2. Transmitted chars will
  19.251 -                          have the MSB set. Received chars must have
  19.252 -                          MSB set.
  19.253 -                   com2L: use serial port com2. Transmitted chars will
  19.254 -                          have the MSB cleared. Received chars must
  19.255 -                          have MSB cleared.
  19.256 -                  The latter two examples allow a single port to be
  19.257 -                  shared by two subsystems (eg. console and
  19.258 -                  debugger). Sharing is controlled by MSB of each
  19.259 -                  transmitted/received character.
  19.260 - [NB. Default for this option is 'com1,vga']
  19.261 -
  19.262 - conswitch=<switch-char><auto-switch-char>
  19.263 -                  Specify how to switch serial-console input between
  19.264 -                  Xen and DOM0. The required sequence is CTRL-<switch_char>
  19.265 -                  pressed three times. Specifying '`' disables switching.
  19.266 -                  The <auto-switch-char> specifies whether Xen should
  19.267 -                  auto-switch input to DOM0 when it boots -- if it is 'x'
  19.268 -                  then auto-switching is disabled. Any other value, or
  19.269 -                  omitting the character, enables auto-switching.
  19.270 - [NB. Default for this option is 'a']
  19.271 -
  19.272 - nmi=<nmi-error-behaviour>
  19.273 -                  Specify what to do with an NMI parity or I/O error.
  19.274 -                  'nmi=fatal':  Xen prints a diagnostic and then hangs.
  19.275 -                  'nmi=dom0':   Inform DOM0 of the NMI.
  19.276 -                  'nmi=ignore': Ignore the NMI.
  19.277 - [NB. Default is 'dom0' ('fatal' for debug builds).]
  19.278 -
  19.279 - dom0_mem=xxx     Set the maximum amount of memory for domain0.
  19.280 -
  19.281 - tbuf_size=xxx    Set the size of the per-cpu trace buffers, in pages
  19.282 -                  (default 1).  Note that the trace buffers are only
  19.283 -                  enabled in debug builds.  Most users can ignore
  19.284 -                  this feature completely.
  19.285 -
  19.286 - sched=xxx        Select the CPU scheduler Xen should use.  The current
  19.287 -                  possibilities are 'bvt', 'atropos' and 'rrobin'.  The
  19.288 -                  default is 'bvt'.  For more information see
  19.289 -                  Sched-HOWTO.txt.
  19.290 -
  19.291 -Boot into Domain 0
  19.292 -==============================
  19.293 -
  19.294 -Reboot your computer; After selecting the kernel to boot, stand back
  19.295 -and watch Xen boot, closely followed by "domain 0" running the
  19.296 -XenoLinux kernel.  Depending on which root partition you have assigned
  19.297 -to XenoLinux kernel in Grub configuration file, you can use the
  19.298 -corresponding username / password to log in.
  19.299 -
  19.300 -Once logged in, it should look just like any regular linux box. All
  19.301 -the usual tools and commands should work as per usual.
  19.302 -
  19.303 -
  19.304 -Start New Domains
  19.305 -==============================
  19.306 -
  19.307 -You must be 'root' to start new domains.
  19.308 -
  19.309 -Make sure you have successfully configured at least one
  19.310 -physical network interface. Then:
  19.311 -
  19.312 -# xen_nat_enable
  19.313 -
  19.314 -The xc_dom_create.py program is useful for starting Xen domains.
  19.315 -You can specify configuration files using the -f switch on the command
  19.316 -line.  The default configuration is in /etc/xc/defaults.  You can
  19.317 -create custom versions of this to suit your local configuration.
  19.318 -
  19.319 -You can override the settings in a configuration file using command
  19.320 -line arguments to xc_dom_create.py.  However, you may find it simplest
  19.321 -to create a separate configuration file for each domain you start.
  19.322 -
  19.323 -xc_dom_create.py will print the local TCP port to which you should
  19.324 -connect to perform console I/O. A suitable console client is provided
  19.325 -by the Python module xenctl.console_client: running this module from
  19.326 -the command line with <host> and <port> parameters will start a
  19.327 -terminal session. This module is also installed as /usr/bin/xencons,
  19.328 -from a copy in tools/misc/xencons.  An alternative to manually running
  19.329 -a terminal client is to specify '-c' to xc_dom_create.py, or add
  19.330 -'auto_console=True' to the defaults file. This will cause
  19.331 -xc_dom_create.py to automatically become the console terminal after
  19.332 -starting the domain.
  19.333 -
  19.334 -Boot-time output will be directed to this console by default, because
  19.335 -the console name is tty0. It is also possible to log in via the
  19.336 -virtual console --- once again, your normal startup scripts will work
  19.337 -as normal (e.g., by running mingetty on tty1-7).  The device node to
  19.338 -which the virtual console is attached can be configured by specifying
  19.339 -'xencons=' on the OS command line: 
  19.340 - 'xencons=off' --> disable virtual console
  19.341 - 'xencons=tty' --> attach console to /dev/tty1 (tty0 at boot-time)
  19.342 - 'xencons=ttyS' --> attach console to /dev/ttyS0
  19.343 -
  19.344 -
  19.345 -Manage Running Domains
  19.346 -==============================
  19.347 -
  19.348 -You can see a list of existing domains with:
  19.349 -# xc_dom_control.py list
  19.350 -
  19.351 -In order to stop a domain, you use:
  19.352 -# xc_dom_control.py stop <domain_id>
  19.353 -
  19.354 -To shutdown a domain cleanly use:
  19.355 -# xc_dom_control.py shutdown <domain_id>
  19.356 -
  19.357 -To destroy a domain immediately:
  19.358 -# xc_dom_control.py destroy <domain_id>
  19.359 -
  19.360 -There are other more advanced options, including pinning domains to
  19.361 -specific CPUs and saving / resuming domains to / from disk files.  To
  19.362 -get more information, run the tool without any arguments:
  19.363 -# xc_dom_control.py
  19.364 -
  19.365 -There is more information available in the Xen README files, the
  19.366 -VBD-HOWTO and the contributed FAQ / HOWTO documents on the web.
  19.367 -
  19.368 -
  19.369 -Other Control Tasks using Python
  19.370 -================================
  19.371 -
  19.372 -A Python module 'Xc' is installed as part of the tools-install
  19.373 -process. This can be imported, and an 'xc object' instantiated, to
  19.374 -provide access to privileged command operations:
  19.375 -
  19.376 -# import Xc
  19.377 -# xc = Xc.new()
  19.378 -# dir(xc)
  19.379 -# help(xc.domain_create)
  19.380 -
  19.381 -In this way you can see that the class 'xc' contains useful
  19.382 -documentation for you to consult.
  19.383 -
  19.384 -A further package of useful routines (xenctl) is also installed:
  19.385 -
  19.386 -# import xenctl.utils
  19.387 -# help(xenctl.utils)
  19.388 -
  19.389 -You can use these modules to write your own custom scripts or you can
  19.390 -customise the scripts supplied in the Xen distribution.
  19.391 -
  19.392 -
  19.393 -Automatically start / stop domains at boot / shutdown
  19.394 -=====================================================
  19.395 -
  19.396 -A Sys-V style init script for RedHat systems is provided in
  19.397 -tools/examples/xendomains.  When you run 'make install' in that
  19.398 -directory, it should be automatically copied to /etc/init.d/.  You can
  19.399 -then enable it using the chkconfig command, e.g.:
  19.400 -
  19.401 -# chkconfig --add xendomains
  19.402 -
  19.403 -By default, this will start the boot-time domains in runlevels 3, 4
  19.404 -and 5.  To specify a domain is to start at boot-time, place its
  19.405 -configuration file (or a link to it) under /etc/xc/auto/.
  19.406 -
  19.407 -The script will also stop ALL domains when the system is shut down,
  19.408 -even domains that it did not start originally.
  19.409 -
  19.410 -You can also use the "service" command (part of the RedHat standard
  19.411 -distribution) to run this script manually, e.g:
  19.412 -
  19.413 -# service xendomains start
  19.414 -
  19.415 -Starts all the domains with config files under /etc/xc/auto/.
  19.416 -
  19.417 -# service xendomains stop
  19.418 -
  19.419 -Shuts down ALL running Xen domains.
    20.1 --- a/docs/HOWTOs/XenDebugger-HOWTO	Fri Aug 06 12:20:20 2004 +0000
    20.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    20.3 @@ -1,304 +0,0 @@
    20.4 -Pervasive Debugging 
    20.5 -===================
    20.6 -
    20.7 -Alex Ho (alex.ho at cl.cam.ac.uk)
    20.8 -
    20.9 -Introduction
   20.10 -------------
   20.11 -
   20.12 -The pervasive debugging project is leveraging Xen to 
   20.13 -debug distributed systems.  We have added a gdb stub
   20.14 -to Xen to allow for remote debugging of both Xen and
   20.15 -guest operating systems.  More information about the
   20.16 -pervasive debugger is available at: http://www.cl.cam.ac.uk/netos/pdb
   20.17 -
   20.18 -
   20.19 -Implementation
   20.20 ---------------
   20.21 -
   20.22 -The gdb stub communicates with gdb running over a serial line.
   20.23 -The main entry point is pdb_handle_exception() which is invoked
   20.24 -from:    pdb_key_pressed()    ('D' on the console)
   20.25 -         do_int3_exception()  (interrupt 3: breakpoint exception)
   20.26 -         do_debug()           (interrupt 1: debug exception)
   20.27 -
   20.28 -This accepts characters from the serial port and passes gdb
   20.29 -commands to pdb_process_command() which implements the gdb stub
   20.30 -interface.  This file draws heavily from the kgdb project and
   20.31 -sample gdbstub provided with gdb.
   20.32 -
   20.33 -The stub can examine registers, single step and continue, and
   20.34 -read and write memory (in Xen, a domain, or a Linux process'
   20.35 -address space).  The debugger does not currently trace the 
   20.36 -current process, so all bets are off if context switch occurs
   20.37 -in the domain.
   20.38 -
   20.39 -
   20.40 -Setup
   20.41 ------
   20.42 -
   20.43 - +-------+ telnet +-----------+ serial +-------+ 
   20.44 - |  GDB  |--------|  nsplitd  |--------|  Xen  |
   20.45 - +-------+        +-----------+        +-------+ 
   20.46 -
   20.47 -To run pdb, Xen must be appropriately configured and 
   20.48 -a suitable serial interface attached to the target machine.
   20.49 -GDB and nsplitd can run on the same machine.
   20.50 -
   20.51 -Xen Configuration
   20.52 -
   20.53 -  Add the "pdb=xxx" option to your Xen boot command line
   20.54 -  where xxx is one of the following values:
   20.55 -     com1    gdb stub should communicate on com1
   20.56 -     com1H   gdb stub should communicate on com1 (with high bit set)
   20.57 -     com2    gdb stub should communicate on com2
   20.58 -     com2H   gdb stub should communicate on com2 (with high bit set)
   20.59 -
   20.60 -  Symbolic debugging infomration is quite helpful too:
   20.61 -  xeno.bk/xen/arch/i386/Rules.mk
   20.62 -    add -g to CFLAGS to compile Xen with symbols
   20.63 -  xeno.bk/xenolinux-2.4.24-sparse/arch/xen/Makefile
   20.64 -    add -g to CFLAGS to compile Linux with symbols
   20.65 -
   20.66 -  You may also want to consider dedicating a register to the
   20.67 -  frame pointer (disable the -fomit-frame-pointer compile flag).
   20.68 -
   20.69 -  When booting Xen and domain 0, look for the console text 
   20.70 -  "Initializing pervasive debugger (PDB)" just before DOM0 starts up.
   20.71 -
   20.72 -Serial Port Configuration
   20.73 -
   20.74 -  pdb expects to communicate with gdb using the serial port.  Since 
   20.75 -  this port is often shared with the machine's console output, pdb can
   20.76 -  discriminate its communication by setting the high bit of each byte.
   20.77 -
   20.78 -  A new tool has been added to the source tree which splits 
   20.79 -  the serial output from a remote machine into two streams: 
   20.80 -  one stream (without the high bit) is the console and 
   20.81 -  one stream (with the high bit stripped) is the pdb communication.
   20.82 -
   20.83 -  See:  xeno.bk/tools/misc/nsplitd
   20.84 -
   20.85 -  nsplitd configuration
   20.86 -  ---------------------
   20.87 -  hostname$ more /etc/xinetd.d/nsplit
   20.88 -  service nsplit1
   20.89 -  {
   20.90 -        socket_type             = stream
   20.91 -        protocol                = tcp
   20.92 -        wait                    = no
   20.93 -        user                    = wanda
   20.94 -        server                  = /usr/sbin/in.nsplitd
   20.95 -        server_args             = serial.cl.cam.ac.uk:wcons00
   20.96 -        disable                 = no
   20.97 -        only_from               = 128.232.0.0/17 127.0.0.1
   20.98 -  }
   20.99 -
  20.100 -  hostname$ egrep 'wcons00|nsplit1' /etc/services
  20.101 -  wcons00         9600/tcp        # Wanda remote console
  20.102 -  nsplit1         12010/tcp       # Nemesis console splitter ports.
  20.103 -
  20.104 -  Note: nsplitd was originally written for the Nemesis project
  20.105 -  at Cambridge.
  20.106 -
  20.107 -  After nsplitd accepts a connection on <port> (12010 in the above
  20.108 -  example), it starts listening on port <port + 1>.  Characters sent 
  20.109 -  to the <port + 1> will have the high bit set and vice versa for 
  20.110 -  characters received.
  20.111 -
  20.112 -  You can connect to the nsplitd using
  20.113 -  'tools/misc/xencons <host> <port>'
  20.114 -
  20.115 -GDB 6.0
  20.116 -  pdb has been tested with gdb 6.0.  It should also work with
  20.117 -  earlier versions.
  20.118 -
  20.119 -
  20.120 -Usage
  20.121 ------
  20.122 -
  20.123 -1. Boot Xen and Linux
  20.124 -2. Interrupt Xen by pressing 'D' at the console
  20.125 -   You should see the console message: 
  20.126 -   (XEN) pdb_handle_exception [0x88][0x101000:0xfc5e72ac]
  20.127 -   At this point Xen is frozen and the pdb stub is waiting for gdb commands 
  20.128 -   on the serial line.
  20.129 -3. Attach with gdb
  20.130 -   (gdb) file xeno.bk/xen/xen
  20.131 -   Reading symbols from xeno.bk/xen/xen...done.
  20.132 -   (gdb) target remote <hostname>:<port + 1>              /* contact nsplitd */
  20.133 -   Remote debugging using serial.srg:12131
  20.134 -   continue_cpu_idle_loop () at current.h:10
  20.135 -   warning: shared library handler failed to enable breakpoint
  20.136 -   (gdb) break __enter_scheduler
  20.137 -   Breakpoint 1 at 0xfc510a94: file schedule.c, line 330.
  20.138 -   (gdb) cont
  20.139 -   Continuing.
  20.140 -
  20.141 -   Program received signal SIGTRAP, Trace/breakpoint trap.
  20.142 -   __enter_scheduler () at schedule.c:330
  20.143 -   (gdb) step
  20.144 -   (gdb) step
  20.145 -   (gdb) print next            /* the variable prev has been optimized away! */
  20.146 -   $1 = (struct task_struct *) 0x0
  20.147 -   (gdb) delete
  20.148 -   Delete all breakpoints? (y or n) y
  20.149 -4. You can add additional symbols to gdb
  20.150 -   (gdb) add-sym xenolinux-2.4.24/vmlinux
  20.151 -   add symbol table from file "xenolinux-2.4.24/vmlinux" at
  20.152 -   (y or n) y
  20.153 -   Reading symbols from xenolinux-2.4.24/vmlinux...done.
  20.154 -   (gdb) x/s cpu_vendor_names[0]
  20.155 -   0xc01530d2 <cpdext+62898>:	 "Intel"
  20.156 -   (gdb) break free_uid
  20.157 -   Breakpoint 2 at 0xc0012250
  20.158 -   (gdb) cont
  20.159 -   Continuing.                                  /* run a command in domain 0 */
  20.160 -
  20.161 -   Program received signal SIGTRAP, Trace/breakpoint trap.
  20.162 -   free_uid (up=0xbffff738) at user.c:77
  20.163 -
  20.164 -   (gdb) print *up
  20.165 -   $2 = {__count = {counter = 0}, processes = {counter = 135190120}, files = {
  20.166 -       counter = 0}, next = 0x395, pprev = 0xbffff878, uid = 134701041}
  20.167 -   (gdb) finish
  20.168 -   Run till exit from #0  free_uid (up=0xbffff738) at user.c:77
  20.169 -
  20.170 -   Program received signal SIGTRAP, Trace/breakpoint trap.
  20.171 -   release_task (p=0xc2da0000) at exit.c:51
  20.172 -   (gdb) print *p
  20.173 -   $3 = {state = 4, flags = 4, sigpending = 0, addr_limit = {seg = 3221225472},
  20.174 -     exec_domain = 0xc016a040, need_resched = 0, ptrace = 0, lock_depth = -1, 
  20.175 -     counter = 1, nice = 0, policy = 0, mm = 0x0, processor = 0, 
  20.176 -     cpus_runnable = 1, cpus_allowed = 4294967295, run_list = {next = 0x0, 
  20.177 -       prev = 0x0}, sleep_time = 18995, next_task = 0xc017c000, 
  20.178 -     prev_task = 0xc2f94000, active_mm = 0x0, local_pages = {next = 0xc2da0054,
  20.179 -       prev = 0xc2da0054}, allocation_order = 0, nr_local_pages = 0, 
  20.180 -     ...
  20.181 -5. To resume Xen, enter the "continue" command to gdb.
  20.182 -   This sends the packet $c#63 along the serial channel.
  20.183 -
  20.184 -   (gdb) cont
  20.185 -   Continuing.
  20.186 -
  20.187 -Debugging Multiple Domains & Processes
  20.188 ---------------------------------------
  20.189 -
  20.190 -pdb supports debugging multiple domains & processes.  You can switch
  20.191 -between different domains and processes within domains and examine
  20.192 -variables in each.
  20.193 -
  20.194 -The pdb context identifies the current debug target.  It is stored
  20.195 -in the xen variable pdb_ctx and defaults to xen.
  20.196 -
  20.197 -   target    pdb_ctx.domain    pdb_ctx.process
  20.198 -   ------    --------------    ---------------
  20.199 -    xen           -1                 -1
  20.200 -  guest os      0,1,2,...            -1
  20.201 -   process      0,1,2,...          0,1,2,...
  20.202 -
  20.203 -Unfortunately, gdb doesn't understand debugging multiple process
  20.204 -simultaneously (we're working on it), so at present you are limited 
  20.205 -to just one set of symbols for symbolic debugging.  When debugging
  20.206 -processes, pdb currently supports just Linux 2.4.
  20.207 -
  20.208 -   define setup
  20.209 -      file xeno-clone/xeno.bk/xen/xen
  20.210 -      add-sym xeno-clone/xenolinux-2.4.25/vmlinux
  20.211 -      add-sym ~ach61/a.out
  20.212 -   end
  20.213 -
  20.214 -
  20.215 -1. Connect with gdb as before.  A couple of Linux-specific 
  20.216 -   symbols need to be defined.
  20.217 -
  20.218 -   (gdb) target remote <hostname>:<port + 1>              /* contact nsplitd */
  20.219 -   Remote debugging using serial.srg:12131
  20.220 -   continue_cpu_idle_loop () at current.h:10
  20.221 -   warning: shared library handler failed to enable breakpoint
  20.222 -   (gdb) set pdb_pidhash_addr = &pidhash
  20.223 -   (gdb) set pdb_init_task_union_addr = &init_task_union
  20.224 -
  20.225 -2. The pdb context defaults to Xen and we can read Xen's memory.
  20.226 -   An attempt to access domain 0 memory fails.
  20.227 -  
  20.228 -   (gdb) print pdb_ctx
  20.229 -   $1 = {valid = 0, domain = -1, process = -1, ptbr = 1052672}
  20.230 -   (gdb) print hexchars
  20.231 -   $2 = "0123456789abcdef"
  20.232 -   (gdb) print cpu_vendor_names
  20.233 -   Cannot access memory at address 0xc0191f80
  20.234 -
  20.235 -3. Now we change to domain 0.  In addition to changing pdb_ctx.domain,
  20.236 -   we need to change pdb_ctx.valid to signal pdb of the change.
  20.237 -   It is now possible to examine Xen and Linux memory.
  20.238 -
  20.239 -   (gdb) set pdb_ctx.domain=0
  20.240 -   (gdb) set pdb_ctx.valid=1
  20.241 -   (gdb) print hexchars
  20.242 -   $3 = "0123456789abcdef"
  20.243 -   (gdb) print cpu_vendor_names
  20.244 -   $4 = {0xc0158b46 "Intel", 0xc0158c37 "Cyrix", 0xc0158b55 "AMD", 
  20.245 -     0xc0158c3d "UMC", 0xc0158c41 "NexGen", 0xc0158c48 "Centaur", 
  20.246 -     0xc0158c50 "Rise", 0xc0158c55 "Transmeta"}
  20.247 -
  20.248 -4. Now change to a process within domain 0.  Again, we need to
  20.249 -   change pdb_ctx.valid in addition to pdb_ctx.process.
  20.250 -
  20.251 -   (gdb) set pdb_ctx.process=962
  20.252 -   (gdb) set pdb_ctx.valid =1
  20.253 -   (gdb) print pdb_ctx
  20.254 -   $1 = {valid = 0, domain = 0, process = 962, ptbr = 52998144}
  20.255 -   (gdb) print aho_a
  20.256 -   $2 = 20
  20.257 -
  20.258 -5. Now we can read the same variable from another process running
  20.259 -   the same executable in another domain.
  20.260 -
  20.261 -   (gdb) set pdb_ctx.domain=1
  20.262 -   (gdb) set pdb_ctx.process=1210
  20.263 -   (gdb) set pdb_ctx.valid=1
  20.264 -   (gdb) print pdb_ctx
  20.265 -   $3 = {valid = 0, domain = 1, process = 1210, ptbr = 70574080}
  20.266 -   (gdb) print aho_a
  20.267 -   $4 = 27
  20.268 -
  20.269 -
  20.270 -Some Helpful .gdbinit Commands
  20.271 -------------------------------
  20.272 -
  20.273 -define setup
  20.274 -  file    .../install/boot/xen-syms
  20.275 -  add-sym .../install/boot/vmlinux-syms-2.4.26-xen0
  20.276 -  add-sym /homes/aho/a.out
  20.277 -end
  20.278 -document setup
  20.279 -  load symbols for xen, xenolinux (dom 0), and "a.out"
  20.280 -end
  20.281 -
  20.282 -define setup-linux
  20.283 -  set pdb_pidhash_addr = &pidhash
  20.284 -  set pdb_init_task_union_addr = &init_task_union
  20.285 -
  20.286 -  set task_struct_mm_offset           = (void *)&(init_task_union.task.mm) - (void *)&(init_task_union.task)
  20.287 -  set task_struct_next_task_offset    = (void *)&(init_task_union.task.next_task) - (void *)&(init_task_union.task)
  20.288 -  set task_struct_pid_offset          = (void *)&(init_task_union.task.pid) - (void *)&(init_task_union.task)
  20.289 -  set task_struct_pidhash_next_offset = (void *)&(init_task_union.task.pidhash_next) - (void *)&(init_task_union.task)
  20.290 -  set task_struct_comm_offset         = (void *)&(init_task_union.task.comm) - (void *)&(init_task_union.task)
  20.291 -  set task_struct_comm_length         = sizeof (init_task_union.task.comm)
  20.292 -
  20.293 -  set mm_struct_pgd_offset            = sizeof (struct vm_area_struct *) * 2 + sizeof (rb_root_t)
  20.294 -end
  20.295 -document setup-linux
  20.296 -  define various xenolinux specific offsets and sizes in pdb
  20.297 -end
  20.298 -
  20.299 -
  20.300 -
  20.301 -
  20.302 -Changes
  20.303 --------
  20.304 -
  20.305 -04.07.15 aho .gdbinit
  20.306 -04.02.05 aho creation
  20.307 -04.03.31 aho add description on debugging multiple domains
    21.1 --- a/docs/Makefile	Fri Aug 06 12:20:20 2004 +0000
    21.2 +++ b/docs/Makefile	Thu Feb 10 13:17:10 2005 +0000
    21.3 @@ -1,46 +1,68 @@
    21.4 +#!/usr/bin/make -f
    21.5  
    21.6 -# Generic LaTeX makefile.
    21.7 -#
    21.8 -# Xfig and tgif diagrams should be in the fig/ subdirectory.
    21.9 -# DOCUMENTS should be a list of the target Postscript files.
   21.10 +INSTALL		= install
   21.11 +INSTALL_DIR	= $(INSTALL) -d -m0755
   21.12  
   21.13 -DOCUMENTS = interface.ps interface.pdf interface.html user.ps \
   21.14 -	    user.pdf user.html
   21.15 +PS2PDF		:= ps2pdf
   21.16 +DVIPS		:= dvips
   21.17 +LATEX		:= latex
   21.18 +FIG2DEV		:= fig2dev
   21.19 +TGIF		:= tgif
   21.20 +LATEX2HTML	:= latex2html
   21.21 +
   21.22 +pkgdocdir	:= /usr/share/doc/xen
   21.23 +
   21.24 +DOC_TEX		:= $(wildcard src/*.tex)
   21.25 +DOC_PS		:= $(patsubst src/%.tex,ps/%.ps,$(DOC_TEX))
   21.26 +DOC_PDF		:= $(patsubst src/%.tex,pdf/%.pdf,$(DOC_TEX))
   21.27 +DOC_HTML	:= $(patsubst src/%.tex,html/%/index.html,$(DOC_TEX))
   21.28  
   21.29  GFX  = $(patsubst %.obj, %.eps, $(wildcard figs/*.obj))
   21.30  GFX += $(patsubst %.fig, %.eps, $(wildcard figs/*.fig))
   21.31  
   21.32 -all: $(DOCUMENTS)
   21.33 +all: ps pdf html
   21.34 +	rm -f *.aux *.dvi *.bbl *.blg *.glo *.idx *.ilg *.log *.ind *.toc
   21.35  
   21.36 -pristine: clean
   21.37 -	rm -f $(DOCUMENTS)
   21.38 +ps: $(DOC_PS)
   21.39 +
   21.40 +pdf: $(DOC_PDF)
   21.41 +
   21.42 +html: $(DOC_HTML)
   21.43  
   21.44  clean:
   21.45 -	rm -f .word_count *.aux *.dvi *.bbl *.blg *.glo *.idx *~ 
   21.46 -	rm -f *.ilg *.log *.ind *.toc *.bak core
   21.47 -	rm -f figs/*.eps $(DOCUMENTS)
   21.48 -	rm -rf user/
   21.49 -	rm -rf interface/
   21.50 +	rm -rf .word_count *.aux *.dvi *.bbl *.blg *.glo *.idx *~ 
   21.51 +	rm -rf *.ilg *.log *.ind *.toc *.bak core
   21.52 +	rm -rf $(GFX) ps pdf html
   21.53  
   21.54 -install: $(DOCUMENTS)
   21.55 -	mkdir -p $(prefix)/usr/share/doc/xen
   21.56 -	cp -a $(DOCUMENTS) VBD-HOWTO.txt Xen-HOWTO.txt $(prefix)/usr/share/doc/xen
   21.57 +install: all
   21.58 +	rm -rf $(DESTDIR)$(pkgdocdir)
   21.59 +	$(INSTALL_DIR) $(DESTDIR)$(pkgdocdir)
   21.60 +	cp -dR ps $(DESTDIR)$(pkgdocdir)
   21.61 +	cp -dR pdf $(DESTDIR)$(pkgdocdir)
   21.62 +	cp -dR html $(DESTDIR)$(pkgdocdir)
   21.63  
   21.64 -%.pdf: %.ps
   21.65 -	ps2pdf $< $@
   21.66 +pdf/%.pdf: ps/%.ps
   21.67 +	$(INSTALL_DIR) $(@D)
   21.68 +	$(PS2PDF) $< $@.new
   21.69 +	mv $@.new $@
   21.70  
   21.71 -%.ps: %.dvi $(GFX)
   21.72 -	dvips -Ppdf -G0 -o $@ $<
   21.73 +ps/%.ps: %.dvi
   21.74 +	$(INSTALL_DIR) $(@D)
   21.75 +	$(DVIPS) -Ppdf -G0 -o $@.new $<
   21.76 +	mv $@.new $@
   21.77  
   21.78 -%.dvi: %.tex
   21.79 -	latex $* >/dev/null
   21.80 -	if [ -e $*.toc ] ; then latex $* >/dev/null ; fi
   21.81 +%.dvi: src/%.tex $(GFX)
   21.82 +	$(LATEX) $< >/dev/null
   21.83 +	if [ -e $*.toc ] ; then $(LATEX) $< >/dev/null ; fi
   21.84  
   21.85  %.eps: %.fig
   21.86 -	fig2dev -L eps $< $@
   21.87 +	$(FIG2DEV) -L eps $< $@
   21.88  
   21.89  %.eps: %.obj
   21.90 -	tgif -print -color -eps $<
   21.91 +	$(TGIF) -print -color -eps $<
   21.92  
   21.93 -%.html: %.tex
   21.94 -	latex2html --split 0 --nonavigation --noinfo --math $< 1>/dev/null 2>/dev/null
   21.95 +html/%/index.html: src/%.tex
   21.96 +	$(INSTALL_DIR) $(@D)
   21.97 +	$(LATEX2HTML) -split 0 -show_section_numbers -toc_depth 3 -nonavigation \
   21.98 +	-numbered_footnotes -local_icons -noinfo -math -dir $(@D) \
   21.99 +	$< 1>/dev/null 2>/dev/null
    22.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    22.2 +++ b/docs/check_pkgs	Thu Feb 10 13:17:10 2005 +0000
    22.3 @@ -0,0 +1,22 @@
    22.4 +
    22.5 +silent_which ()
    22.6 +{
    22.7 +        if ! `which $1 1>/dev/null 2>/dev/null`; then
    22.8 +                echo "*************************************************"
    22.9 +                echo "*************************************************"
   22.10 +                echo "* WARNING: Package '$1' is required"
   22.11 +                echo "*          to build Xen documentation"
   22.12 +                echo "*************************************************"
   22.13 +                echo "*************************************************"
   22.14 +        fi
   22.15 +        which $1 1>/dev/null 2>/dev/null
   22.16 +}
   22.17 +
   22.18 +silent_which latex      || exit 1
   22.19 +silent_which latex2html || exit 1
   22.20 +silent_which dvips      || exit 1
   22.21 +silent_which ps2pdf     || exit 1
   22.22 +silent_which fig2dev    || exit 1
   22.23 +silent_which tgif       || exit 1
   22.24 +
   22.25 +exit 0
    23.1 --- a/docs/eps/xenlogo.eps	Fri Aug 06 12:20:20 2004 +0000
    23.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    23.3 @@ -1,1479 +0,0 @@
    23.4 -%!PS-Adobe-3.0 EPSF-3.0
    23.5 -%%Creator: (ImageMagick)
    23.6 -%%Title: (/homes/kaf24/xenlogo.eps)
    23.7 -%%CreationDate: (Tue Oct 28 13:52:11 2003)
    23.8 -%%BoundingBox: 155 324 445 461
    23.9 -%%DocumentData: Clean7Bit
   23.10 -%%LanguageLevel: 1
   23.11 -%%Pages: 1
   23.12 -%%EndComments
   23.13 -
   23.14 -%%BeginDefaults
   23.15 -%%EndDefaults
   23.16 -
   23.17 -%%BeginProlog
   23.18 -%
   23.19 -% Display a color image.  The image is displayed in color on
   23.20 -% Postscript viewers or printers that support color, otherwise
   23.21 -% it is displayed as grayscale.
   23.22 -%
   23.23 -/DirectClassPacket
   23.24 -{
   23.25 -  %
   23.26 -  % Get a DirectClass packet.
   23.27 -  %
   23.28 -  % Parameters:
   23.29 -  %   red.
   23.30 -  %   green.
   23.31 -  %   blue.
   23.32 -  %   length: number of pixels minus one of this color (optional).
   23.33 -  %
   23.34 -  currentfile color_packet readhexstring pop pop
   23.35 -  compression 0 eq
   23.36 -  {
   23.37 -    /number_pixels 3 def
   23.38 -  }
   23.39 -  {
   23.40 -    currentfile byte readhexstring pop 0 get
   23.41 -    /number_pixels exch 1 add 3 mul def
   23.42 -  } ifelse
   23.43 -  0 3 number_pixels 1 sub
   23.44 -  {
   23.45 -    pixels exch color_packet putinterval
   23.46 -  } for
   23.47 -  pixels 0 number_pixels getinterval
   23.48 -} bind def
   23.49 -
   23.50 -/DirectClassImage
   23.51 -{
   23.52 -  %
   23.53 -  % Display a DirectClass image.
   23.54 -  %
   23.55 -  systemdict /colorimage known
   23.56 -  {
   23.57 -    columns rows 8
   23.58 -    [
   23.59 -      columns 0 0
   23.60 -      rows neg 0 rows
   23.61 -    ]
   23.62 -    { DirectClassPacket } false 3 colorimage
   23.63 -  }
   23.64 -  {
   23.65 -    %
   23.66 -    % No colorimage operator;  convert to grayscale.
   23.67 -    %
   23.68 -    columns rows 8
   23.69 -    [
   23.70 -      columns 0 0
   23.71 -      rows neg 0 rows
   23.72 -    ]
   23.73 -    { GrayDirectClassPacket } image
   23.74 -  } ifelse
   23.75 -} bind def
   23.76 -
   23.77 -/GrayDirectClassPacket
   23.78 -{
   23.79 -  %
   23.80 -  % Get a DirectClass packet;  convert to grayscale.
   23.81 -  %
   23.82 -  % Parameters:
   23.83 -  %   red
   23.84 -  %   green
   23.85 -  %   blue
   23.86 -  %   length: number of pixels minus one of this color (optional).
   23.87 -  %
   23.88 -  currentfile color_packet readhexstring pop pop
   23.89 -  color_packet 0 get 0.299 mul
   23.90 -  color_packet 1 get 0.587 mul add
   23.91 -  color_packet 2 get 0.114 mul add
   23.92 -  cvi
   23.93 -  /gray_packet exch def
   23.94 -  compression 0 eq
   23.95 -  {
   23.96 -    /number_pixels 1 def
   23.97 -  }
   23.98 -  {
   23.99 -    currentfile byte readhexstring pop 0 get
  23.100 -    /number_pixels exch 1 add def
  23.101 -  } ifelse
  23.102 -  0 1 number_pixels 1 sub
  23.103 -  {
  23.104 -    pixels exch gray_packet put
  23.105 -  } for
  23.106 -  pixels 0 number_pixels getinterval
  23.107 -} bind def
  23.108 -
  23.109 -/GrayPseudoClassPacket
  23.110 -{
  23.111 -  %
  23.112 -  % Get a PseudoClass packet;  convert to grayscale.
  23.113 -  %
  23.114 -  % Parameters:
  23.115 -  %   index: index into the colormap.
  23.116 -  %   length: number of pixels minus one of this color (optional).
  23.117 -  %
  23.118 -  currentfile byte readhexstring pop 0 get
  23.119 -  /offset exch 3 mul def
  23.120 -  /color_packet colormap offset 3 getinterval def
  23.121 -  color_packet 0 get 0.299 mul
  23.122 -  color_packet 1 get 0.587 mul add
  23.123 -  color_packet 2 get 0.114 mul add
  23.124 -  cvi
  23.125 -  /gray_packet exch def
  23.126 -  compression 0 eq
  23.127 -  {
  23.128 -    /number_pixels 1 def
  23.129 -  }
  23.130 -  {
  23.131 -    currentfile byte readhexstring pop 0 get
  23.132 -    /number_pixels exch 1 add def
  23.133 -  } ifelse
  23.134 -  0 1 number_pixels 1 sub
  23.135 -  {
  23.136 -    pixels exch gray_packet put
  23.137 -  } for
  23.138 -  pixels 0 number_pixels getinterval
  23.139 -} bind def
  23.140 -
  23.141 -/PseudoClassPacket
  23.142 -{
  23.143 -  %
  23.144 -  % Get a PseudoClass packet.
  23.145 -  %
  23.146 -  % Parameters:
  23.147 -  %   index: index into the colormap.
  23.148 -  %   length: number of pixels minus one of this color (optional).
  23.149 -  %
  23.150 -  currentfile byte readhexstring pop 0 get
  23.151 -  /offset exch 3 mul def
  23.152 -  /color_packet colormap offset 3 getinterval def
  23.153 -  compression 0 eq
  23.154 -  {
  23.155 -    /number_pixels 3 def
  23.156 -  }
  23.157 -  {
  23.158 -    currentfile byte readhexstring pop 0 get
  23.159 -    /number_pixels exch 1 add 3 mul def
  23.160 -  } ifelse
  23.161 -  0 3 number_pixels 1 sub
  23.162 -  {
  23.163 -    pixels exch color_packet putinterval
  23.164 -  } for
  23.165 -  pixels 0 number_pixels getinterval
  23.166 -} bind def
  23.167 -
  23.168 -/PseudoClassImage
  23.169 -{
  23.170 -  %
  23.171 -  % Display a PseudoClass image.
  23.172 -  %
  23.173 -  % Parameters:
  23.174 -  %   class: 0-PseudoClass or 1-Grayscale.
  23.175 -  %
  23.176 -  currentfile buffer readline pop
  23.177 -  token pop /class exch def pop
  23.178 -  class 0 gt
  23.179 -  {
  23.180 -    currentfile buffer readline pop
  23.181 -    token pop /depth exch def pop
  23.182 -    /grays columns 8 add depth sub depth mul 8 idiv string def
  23.183 -    columns rows depth
  23.184 -    [
  23.185 -      columns 0 0
  23.186 -      rows neg 0 rows
  23.187 -    ]
  23.188 -    { currentfile grays readhexstring pop } image
  23.189 -  }
  23.190 -  {
  23.191 -    %
  23.192 -    % Parameters:
  23.193 -    %   colors: number of colors in the colormap.
  23.194 -    %   colormap: red, green, blue color packets.
  23.195 -    %
  23.196 -    currentfile buffer readline pop
  23.197 -    token pop /colors exch def pop
  23.198 -    /colors colors 3 mul def
  23.199 -    /colormap colors string def
  23.200 -    currentfile colormap readhexstring pop pop
  23.201 -    systemdict /colorimage known
  23.202 -    {
  23.203 -      columns rows 8
  23.204 -      [
  23.205 -        columns 0 0
  23.206 -        rows neg 0 rows
  23.207 -      ]
  23.208 -      { PseudoClassPacket } false 3 colorimage
  23.209 -    }
  23.210 -    {
  23.211 -      %
  23.212 -      % No colorimage operator;  convert to grayscale.
  23.213 -      %
  23.214 -      columns rows 8
  23.215 -      [
  23.216 -        columns 0 0
  23.217 -        rows neg 0 rows
  23.218 -      ]
  23.219 -      { GrayPseudoClassPacket } image
  23.220 -    } ifelse
  23.221 -  } ifelse
  23.222 -} bind def
  23.223 -
  23.224 -/DisplayImage
  23.225 -{
  23.226 -  %
  23.227 -  % Display a DirectClass or PseudoClass image.
  23.228 -  %
  23.229 -  % Parameters:
  23.230 -  %   x & y translation.
  23.231 -  %   x & y scale.
  23.232 -  %   label pointsize.
  23.233 -  %   image label.
  23.234 -  %   image columns & rows.
  23.235 -  %   class: 0-DirectClass or 1-PseudoClass.
  23.236 -  %   compression: 0-none or 1-RunlengthEncoded.
  23.237 -  %   hex color packets.
  23.238 -  %
  23.239 -  gsave
  23.240 -  /buffer 512 string def
  23.241 -  /byte 1 string def
  23.242 -  /color_packet 3 string def
  23.243 -  /pixels 768 string def
  23.244 -
  23.245 -  currentfile buffer readline pop
  23.246 -  token pop /x exch def
  23.247 -  token pop /y exch def pop
  23.248 -  x y translate
  23.249 -  currentfile buffer readline pop
  23.250 -  token pop /x exch def
  23.251 -  token pop /y exch def pop
  23.252 -  currentfile buffer readline pop
  23.253 -  token pop /pointsize exch def pop
  23.254 -  /Times-Roman findfont pointsize scalefont setfont
  23.255 -  x y scale
  23.256 -  currentfile buffer readline pop
  23.257 -  token pop /columns exch def
  23.258 -  token pop /rows exch def pop
  23.259 -  currentfile buffer readline pop
  23.260 -  token pop /class exch def pop
  23.261 -  currentfile buffer readline pop
  23.262 -  token pop /compression exch def pop
  23.263 -  class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
  23.264 -  grestore
  23.265 -} bind def
  23.266 -%%EndProlog
  23.267 -%%Page:  1 1
  23.268 -%%PageBoundingBox: 155 324 445 461
  23.269 -userdict begin
  23.270 -DisplayImage
  23.271 -155 324
  23.272 -289.992 137.145
  23.273 -12.000000
  23.274 -302 143
  23.275 -1
  23.276 -1
  23.277 -1
  23.278 -8
  23.279 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.280 -fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8e6
  23.281 -d4cec2b6b6aa9e9e9e9e9e9e9e9eb6b6b6c8cee0e6ffffffffffffffffffffffffffffff
  23.282 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.283 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.284 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.285 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.286 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.287 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.288 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.289 -fffffffffffffff2e0c8b6a49e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
  23.290 -aabccee6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.291 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.292 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.293 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.294 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.295 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.296 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.297 -fffffffffffffffffffffffffffffffffff8e0c2aa9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
  23.298 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eb6ceecffffffffffffffffffffffffffff
  23.299 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.300 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.301 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.302 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.303 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.304 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.305 -fffffffffffffffffffffffffffffffffffffffffffffffffffffffff8dabc9e9e9e9e9e
  23.306 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
  23.307 -aac8ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.308 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.309 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.310 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.311 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.312 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.313 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.314 -ffffffffe0bc9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
  23.315 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eaac8f2ffffffffffffffffffffffffffffffff
  23.316 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.317 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.318 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.319 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.320 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.321 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.322 -fffffffffffffffffffffffffffffff8ceaa9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
  23.323 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eb6e0
  23.324 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.325 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.326 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.327 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.328 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.329 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.330 -fffffffffffffffffffffffffffffffffffffffffffffffffffffff2c29e9e9e9e9e9e9e
  23.331 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
  23.332 -9e9e9e9e9e9e9e9e9e9e9e9e9e9eaadaffffffffffffffffffffffffffffffffffffffff
  23.333 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.334 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.335 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.336 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.337 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.338 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.339 -fffffff2c29e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
  23.340 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eaadaffffffff
  23.341 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.342 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.343 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.344 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.345 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.346 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.347 -fffffffffffffffffffffffffffffff8c29e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
  23.348 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
  23.349 -9e9e9e9e9e9e9e9e9e9eaadaffffffffffffffffffffffffffffffffffffffffffffffff
  23.350 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.351 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.352 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.353 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.354 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.355 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffcea49e9e9e9e9e9e
  23.356 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
  23.357 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eb6e6ffffffffffffffff
  23.358 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.359 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.360 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.361 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.362 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.363 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.364 -ffffffffe6aa9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
  23.365 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
  23.366 -9e9e9e9e9e9ec2f8ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.367 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.368 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.369 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.370 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.371 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.372 -fffffffffffffffffffffffffffffffff8c29e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
  23.373 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
  23.374 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea4e0ffffffffffffffffffffffffff
  23.375 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.376 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.377 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.378 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.379 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.380 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6aa9e9e9e9e9e
  23.381 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea1acb6bac4c8c8d6d6d6d6d6d6
  23.382 -d6cfc8c8bdbaafa89e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
  23.383 -9ebcf8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.384 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.385 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.386 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.387 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.388 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.389 -ffffffffffffc89e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea8b6c4
  23.390 -cfd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c8bdafa19e9e9e9e9e9e9e9e9e
  23.391 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eaaecffffffffffffffffffffffffffffffffffff
  23.392 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.393 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.394 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.395 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.396 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.397 -fffffffffffffffffffffffffffffffffffff8b09e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
  23.398 -9e9e9e9e9e9e9ea1afc1d2d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.399 -d6d6d6d6d6cbbaa89e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ed4ffffff
  23.400 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.401 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.402 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.403 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.404 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.405 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeca49e9e9e
  23.406 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eafc1d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.407 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6cfbaa59e9e9e9e9e9e9e9e9e9e9e
  23.408 -9e9e9e9e9e9e9e9e9e9e9ec2f8ffffffffffffffffffffffffffffffffffffffffffffff
  23.409 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.410 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.411 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.412 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.413 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.414 -ffffffffffffffffda9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea1bacfd6d6d6
  23.415 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.416 -d6d6d6c8af9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eb0f8ffffffffffffffff
  23.417 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.418 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.419 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.420 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.421 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.422 -ffffffffffffffffffffffffffffffffffffffffffc89e9e9e9e9e9e9e9e9e9e9e9e9e9e
  23.423 -9e9e9e9e9e9ea5c1d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.424 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6cfb39e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
  23.425 -9e9e9e9e9ea4ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.426 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.427 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.428 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.429 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.430 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc29e
  23.431 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea5c1d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.432 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6cf
  23.433 -b39e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea4ecffffffffffffffffffffffffffff
  23.434 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.435 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.436 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.437 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.438 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.439 -ffffffffffffffffffffffc29e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea1bdd6d6d6d6
  23.440 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.441 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6cfaf9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea4
  23.442 -daffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.443 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.444 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.445 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.446 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.447 -ffffffffffffffffffffffffffffffffffffffffffffffffc29e9e9e9e9e9e9e9e9e9e9e
  23.448 -9e9e9e9e9e9e9eb3d2d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.449 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c8a59e9e9e
  23.450 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9edaffffffffffffffffffffffffffffffffffffffff
  23.451 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.452 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.453 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.454 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.455 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.456 -ffc29e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea5c8d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.457 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.458 -d6d6d6d6d6d6d6d6d6d6d2b69e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9edaffffffffff
  23.459 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.460 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.461 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.462 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.463 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.464 -ffffffffffffffffffffffffffffc29e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eb3d2d6d6
  23.465 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.466 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c8a59e9e9e9e9e9e9e9e
  23.467 -9e9e9e9e9e9e9e9ea4ecffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.468 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.469 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.470 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.471 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.472 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffc29e9e9e9e9e9e9e9e
  23.473 -9e9e9e9e9e9e9e9ea1c4d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.474 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.475 -d6d6d6d6d6d2af9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea4ecffffffffffffffffffffff
  23.476 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.477 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.478 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.479 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.480 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.481 -ffffffffda9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea8cbd6d6d6d6d6d6d6d6d6d6d6d6d6
  23.482 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.483 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6bd9e9e9e9e9e9e9e9e9e9e9e9e9e9e
  23.484 -9e9ea4f8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.485 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.486 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.487 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.488 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.489 -ffffffffffffffffffffffffffffffffffe09e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eafd2
  23.490 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.491 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.492 -c8a19e9e9e9e9e9e9e9e9e9e9e9e9e9e9eb0f8ffffffffffffffffffffffffffffffffff
  23.493 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.494 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.495 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.496 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.497 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeca49e9e9e9e
  23.498 -9e9e9e9e9e9e9e9e9e9e9eb3d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.499 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.500 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6cba89e9e9e9e9e9e9e9e9e9e9e9e9e9e9ec2ffffff
  23.501 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.502 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.503 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.504 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.505 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.506 -fffffffffffffff8b09e9e9e9e9e9e9e9e9e9e9e9e9e9e9ec1d6d6d6d6d6d6d6d6d6d6d6
  23.507 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.508 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d2a89e9e9e9e
  23.509 -9e9e9e9e9e9e9e9e9e9e9ed4ffffffffffffffffffffffffffffffffffffffffffffffff
  23.510 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.511 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.512 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.513 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.514 -ffffffffffffffffffffffffffffffffffffffffffc29e9e9e9e9e9e9e9e9e9e9e9e9e9e
  23.515 -9ec1d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.516 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.517 -d6d6d6d6d6d6d6d6d6d2a89e9e9e9e9e9e9e9e9e9e9e9e9e9e9eecffffffffffffffffff
  23.518 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.519 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.520 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.521 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.522 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffda9e
  23.523 -9e9e8027272727272727272727272b353535353535353535353535353535353535353535
  23.524 -353535353535add6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.525 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c85035353535353535322727272727272727272727
  23.526 -272727272d3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f5fefffffffffffffffffff
  23.527 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.528 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.529 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.530 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.531 -fffffffffffffffffffffff2a49e9e9e9e45000000000000000000000000000000000000
  23.532 -00000000000000000000000000000000000000001ac8d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.533 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6ad28000000000000
  23.534 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.535 -00003fefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.536 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.537 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.538 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.539 -ffffffffffffffffffffffffffffffffffffffffffffffffffb69e9e9e9e9e9e27000000
  23.540 -000000000000000000000000000000000000000000000000000000000000000000000050
  23.541 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.542 -d6d6d6d6d6930d0000000000000000000000000000000000000000000000000000000000
  23.543 -0000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffff
  23.544 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.545 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.546 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.547 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.548 -ffffd49e9e9e9e9e9e9e9413000000000000000000000000000000000000000000000000
  23.549 -000000000000000000000000000085d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.550 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d66b0000000000000000000000000000000000
  23.551 -0000000000000000000000000000000000000000000000000000000fbfffffffffffffff
  23.552 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.553 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.554 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.555 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.556 -fffffffffffffffffffffffffffffff8a49e9e9e9e9e9e9e9e8009000000000000000000
  23.557 -000000000000000000000000000000000000000000000000000000000dadd6d6d6d6d6d6
  23.558 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c83500000000
  23.559 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.560 -000000002fdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.561 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.562 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.563 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.564 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc29e9e9e9e9e9e
  23.565 -9e9e9e9e6200000000000000000000000000000000000000000000000000000000000000
  23.566 -0000000000000028c8d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.567 -d6d6d6d6d6d6d6ad1a000000000000000000000000000000000000000000000000000000
  23.568 -00000000000000000000000000000000006fffffffffffffffffffffffffffffffffffff
  23.569 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.570 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.571 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.572 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.573 -ffffffffffffe69e9e9e9e9e9e9e9e9e9e9e9e4500000000000000000000000000000000
  23.574 -0000000000000000000000000000000000000000000050d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.575 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6850d0000000000000000000000000000
  23.576 -00000000000000000000000000000000000000000000000000000000000fafffffffffff
  23.577 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.578 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.579 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.580 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.581 -ffffffffffffffffffffffffffffffffffffffffb69e9e9e9e9e9e9e9e9e9e9e9e9e2b00
  23.582 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.583 -0085d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d65d0000
  23.584 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.585 -0000000000002fcfffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.586 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.587 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.588 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.589 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09e9e
  23.590 -9e9e9e9e9e9e9e9e9e9e9ea8c81a00000000000000000000000000000000000000000000
  23.591 -0000000000000000000000000000000dadd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.592 -d6d6d6d6d6d6d6d6d6c83500000000000000000000000000000000000000000000000000
  23.593 -000000000000000000000000000000000000005fefffffffffffffffffffffffffffffff
  23.594 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.595 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.596 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.597 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.598 -ffffffffffffffffffffffaa9e9e9e9e9e9e9e9e9e9e9e9e9ecbd6ad0d00000000000000
  23.599 -00000000000000000000000000000000000000000000000000000000000028d6d6d6d6d6
  23.600 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6ad1a000000000000000000000000
  23.601 -00000000000000000000000000000000000000000000000000000000000000009fffffff
  23.602 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.603 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.604 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.605 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.606 -ffffffffffffffffffffffffffffffffffffffffffffffffda9e9e9e9e9e9e9e9e9e9e9e
  23.607 -9e9ebad6d6d6850000000000000000000000000000000000000000000000000000000000
  23.608 -0000000000000000005dd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d685
  23.609 -0d0000000000000000000000000000000000000000000000000000000000000000000000
  23.610 -00000000000000001fcfffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.611 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.612 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.613 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.614 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.615 -ffffaa9e9e9e9e9e9e9e9e9e9e9e9ea5d6d6d6d6d65d0000000000000000000000000000
  23.616 -00000000000000000000000000000000000000000000000093d6d6d6d6d6d6d6d6d6d6d6
  23.617 -d6d6d6d6d6d6d6d6d6d6d6d65d0000000000000000000000000000000000000000000000
  23.618 -00000000000000000000000000000000000000000049efffffffffffffffffffffffffff
  23.619 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.620 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.621 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.622 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.623 -ffffffffffffffffffffffffffffffe69e9e9e9e9e9e9e9e9e9e9e9e9ec8d6d6d6d6d6d6
  23.624 -350000000000000000000000000000000000000000000000000000000000000000000000
  23.625 -00000dbbd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c83500000000000000000000
  23.626 -000000000000000000000000000000000000000000000000000000000000000000004faa
  23.627 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.628 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.629 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.630 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.631 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb69e9e9e9e9e9e
  23.632 -9e9e9e9e9e9eacd6d6d6d6d6d6d6c81a0000000000000000000000000000000000000000
  23.633 -000000000000000000000000000000000028d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.634 -d6ad1a000000000000000000000000000000000000000000000000000000000000000000
  23.635 -0000000000000000000009769e9ee0ffffffffffffffffffffffffffffffffffffffffff
  23.636 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.637 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.638 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.639 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.640 -fffffffffffff29e9e9e9e9e9e9e9e9e9e9e9e9ecbd6d6d6d6d6d6d6d6ad0d0000000000
  23.641 -00000000000000000000000000000000000000000000000000000000000000005dd6d6d6
  23.642 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6850d0000000000000000000000000000000000000000
  23.643 -00000000000000000000000000000000000000000000001d949e9e9eb6ffffffffffffff
  23.644 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.645 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.646 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.647 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.648 -ffffffffffffffffffffffffffffffffffffffffc29e9e9e9e9e9e9e9e9e9e9e9eb3d6d6
  23.649 -d6d6d6d6d6d6d6d685000000000000000000000000000000000000000000000000000000
  23.650 -000000000000000000000093d6d6d6d6d6d6d6d6d6d6d6d6d6d6d65d0000000000000000
  23.651 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.652 -459e9e9e9e9e9ef2ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.653 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.654 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.655 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.656 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa49e
  23.657 -9e9e9e9e9e9e9e9e9e9e9ecfd6d6d6d6d6d6d6d6d6d6d65d000000000000000000000000
  23.658 -000000000000000000000000000000000000000000000000000dbbd6d6d6d6d6d6d6d6d6
  23.659 -d6d6d6c83500000000000000000000000000000000000000000000000000000000000000
  23.660 -000000000000000000000000096c9e9e9e9e9e9e9ec8ffffffffffffffffffffffffffff
  23.661 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.662 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.663 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.664 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.665 -ffffffffffffffffffffffda9e9e9e9e9e9e9e9e9e9e9e9eacd6d6d6d6d6d6d6d6d6d6d6
  23.666 -d6d635000000000000000000000000000000000000000000000000000000000000000000
  23.667 -0000000035d6d6d6d6d6d6d6d6d6d6d6ad1a000000000000000000000000000000000000
  23.668 -000000000000000000000000000000000000000000000000001d8a9e9e9e9e9e9e9e9eaa
  23.669 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.670 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.671 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.672 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.673 -ffffffffffffffffffffffffffffffffffffffffffffffffffbc9e9e9e9e9e9e9e9e9e9e
  23.674 -9e9ec8d6d6d6d6d6d6d6d6d6d6d6d6d6c81a000000000000000000000000000000000000
  23.675 -000000000000000000000000000000000000006bd6d6d6d6d6d6d6d6d6850d0000000000
  23.676 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.677 -00003b949e9e9e9e9e9e9e9e9e9ee0ffffffffffffffffffffffffffffffffffffffffff
  23.678 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.679 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.680 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.681 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.682 -fffff89e9e9e9e9e9e9e9e9e9e9e9ea5d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6ad0d000000
  23.683 -00000000000000000000000000000000000000000000000000000000000000000000a0d6
  23.684 -d6d6d6d6d6d65d0000000000000000000000000000000000000000000000000000000000
  23.685 -00000000000000000000000000000d7b9e9e9e9e9e9e9e9e9e9e9e9ec2ffffffffffffff
  23.686 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.687 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.688 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.689 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.690 -ffffffffffffffffffffffffffffffffda9e9e9e9e9e9e9e9e9e9e9e9ebdd6d6d6d6d6d6
  23.691 -d6d6d6d6d6d6d6d6d6d68500000000000000000000000000000000000000000000000000
  23.692 -0000000000000000000000000dc8d6d6d6d6c83500000000000000000000000000000000
  23.693 -0000000000000000000000000000000000000000000000000000001aadd6a59e9e9e9e9e
  23.694 -9e9e9e9e9e9ea4ffffffffffffffdfbf8f7f5f3f3f1f0000000000000000000000000000
  23.695 -001f3f3f5f7f8fbfcfffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.696 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.697 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.698 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc9e9e9e9e9e
  23.699 -9e9e9e9e9e9e9ed2d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d65000000000000000000000
  23.700 -00000000000000000000000000000000000000000000000000000035d6d6d6ad0d000000
  23.701 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.702 -0000000042c8d6d6bd9e9e9e9e9e9e9e9e9e9e9e9ee6ffcf9f5f3f000000000000000000
  23.703 -0000000000000000000000000000000000000000000000002f5f8fcfffffffffffffffff
  23.704 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.705 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf8f7f
  23.706 -3f3f0f000000000000000000003f3f7f9fdfffffffffffffffffffffffffffffffffffff
  23.707 -ffffffffffffffffa49e9e9e9e9e9e9e9e9e9e9eafd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.708 -d6d6d6d62800000000000000000000000000000000000000000000000000000000000000
  23.709 -0000000000006bd685000000000000000000000000000000000000000000000000000000
  23.710 -000000000000000000000000000000000078d6d6d6d6cf9e9e9e9e9e9e9e9e9e9e9e6c47
  23.711 -1f0000000000000000000000000000000000000000000000000000000000000000000000
  23.712 -0000000000000f4f9fdfffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.713 -ffbf3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3fefffffffffff
  23.714 -ffffffffffffffaf6f2f000000000000000000000000000000000000000000001f6fcfff
  23.715 -ffffffffffffffffffffffffffffffffffffffffffe69e9e9e9e9e9e9e9e9e9e9e9ec1d6
  23.716 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c80d00000000000000000000000000000000
  23.717 -000000000000000000000000000000000000000000350000000000000000000000000000
  23.718 -00000000000000000000000000000000000000000000000000000000000da0d6d6d6d6d6
  23.719 -d6a89e9e9e9e9e9e9e763b09000000000000000000000000000000000000000000000000
  23.720 -0000000000000000000000000000000000000000000000004f9fffffffffffffffffffff
  23.721 -ffffffffffffffffffffffffffffff6f0000000000000000000000000000000000000000
  23.722 -000000000000001fffffffffffffffffffff9f4f00000000000000000000000000000000
  23.723 -000000000000000000000000003fafffffffffffffffffffffffffffffffffffffffffce
  23.724 -9e9e9e9e9e9e9e9e9e9e9e9ed2d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6ad0000
  23.725 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.726 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.727 -00000000000035c8d6d6d6d6d6d6d6bd9e9e9e9e94621300000000000000000000000000
  23.728 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.729 -000000000f7fefffffffffffffffffffffffffffffffffffffffffffff3f000000000000
  23.730 -0000000000000000000000000000000000000000004fffffffffffffffdf6f0f00000000
  23.731 -00000000000000000000000000000000000000000000000000000000003fdfffffffffff
  23.732 -ffffffffffffffffffffffffffb69e9e9e9e9e9e9e9e9e9e9eafd6d6d6d6d6d6d6d6d6d6
  23.733 -d6d6d6d6d6d6d6d6d6d6d6d6850000000000000000000000000000000000000000000000
  23.734 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.735 -000000000000000000000000000000000000005dd6d6d6d6d6d6d6d6d6cf9e9e944f0900
  23.736 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.737 -00000000000000000000000000000000000000000f8fffffffffffffffffffffffffffff
  23.738 -ffffffffffffff000000000000000000000000000000000000000000000000000000008f
  23.739 -ffffffffffdf5f0000000000000000000000000000000000000000000000000000000000
  23.740 -00000000000000000f9fffffffffffffffffffffffffffffffffff9e9e9e9e9e9e9e9e9e
  23.741 -9e9e9ebdd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6500000000000000000
  23.742 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.743 -000000000000000000000000000000000000000000000000000000000000000d93d6d6d6
  23.744 -d6d6d6d6d6d6d6d69b4f0900000000000000000000000000000000000000000000000000
  23.745 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.746 -2fcfffffffffffffffffffffffffffffffffffffbf000000000000000000000000000000
  23.747 -00000000000000000000000000bfffffffef5f0000000000000000000000000000000000
  23.748 -0000000000000000000000000000000000000000000000009fffffffffffffffffffffff
  23.749 -ffffffffe69e9e9e9e9e9e9e9e9e9e9e9ecbd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.750 -d6d6d6d6d6d6280000000000000000000000000000000000000000000000000000000000
  23.751 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.752 -000000000000000028bbd6d6d6d6d6d6d6d6d6d6d6850d00000000000000000000000000
  23.753 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.754 -0000000000000000000000000000000f9fffffffffffffffffffffffffffffffffff8f00
  23.755 -000000000000000000000000000000000000000000000000000000ffffff8f0f00000000
  23.756 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.757 -0000009fffffffffffffffffffffffffffffd49e9e9e9e9e9e9e9e9e9e9ea1d6d6d6d6d6
  23.758 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c80d0000000000000000000000000000
  23.759 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.760 -00000000000000000000000000000000000000000050c8d6d6d6d6d6d6d6d6d6d6ad3500
  23.761 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.762 -000000000000000000000000000000000000000000000000000000000000006fffffffff
  23.763 -ffffffffffffffffffffffff5f0000000000000000000000000000000000000000000000
  23.764 -000000003fffef3f00000000000000000000000000000000000000000000000000000000
  23.765 -000000000000000000000000000000000000bfffffffffffffffffffffffffffc89e9e9e
  23.766 -9e9e9e9e9e9e9e9eafd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6ad
  23.767 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.768 -0000000000000000000000000000000000000000000000000000000000000000000d85d6
  23.769 -d6d6d6d6d6d6d6d6d6d66b00000000000000000000000000000000000000000000000000
  23.770 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.771 -000000000000000000005fffffffffffffffffffffffffffffff1f000000000000000000
  23.772 -0000000000000000000000000000000000006fbf0f000000000000000000000000000000
  23.773 -00000000000000000000000000000000000000000000000000000000000000001fffffff
  23.774 -ffffffffffffffffffffb69e9e9e9e9e9e9e9e9e9e9ebad6d6d6d6d6d6d6d6d6d6d6d6d6
  23.775 -d6d6d6d6d6d6d6d6d6d6d6d6d6d685000000000000000000000000000000000000000000
  23.776 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.777 -0000000000000000000028add6d6d6d6d6d6d6d6d6d6c835000000000000000000000000
  23.778 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.779 -000000000000000000000000000000000000000000000000005fffffffffffffffffffff
  23.780 -ffffffef000000000000000000000000000000000000000000000000000000003f000000
  23.781 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.782 -00000000000000000000009fffffffffffffffffffffffffa49e9e9e9e9e9e9e9e9e9e9e
  23.783 -c8d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d650000000000000
  23.784 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.785 -000000000000000000000000000000000000000000000042c8d6d6d6d6d6d6d6d6d6d6ad
  23.786 -0d0000000000000000000000000000000000000000000000000000000000000000000000
  23.787 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.788 -000000007fffffffffffffffffffffffffaf000000000000000000000000000000000000
  23.789 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.790 -000000000000000000000000000000000000000000000000002fffffffffffffffffffff
  23.791 -ffff9e9e9e9e9e9e9e9e9e9e9e9ed2d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.792 -d6d6d6d6d6d6d6d628000000000000000000000000000000000000000000000000000000
  23.793 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.794 -78d6d6d6d6d6d6d6d6d6d6d6850000000000000000000000000000000000000000000000
  23.795 -000000000000000000000000001f3f3f3f3f3f3f00000000000000000000000000000000
  23.796 -00000000000000000000000000000000000000bfffffffffffffffffffffff7f00000000
  23.797 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.798 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.799 -00000000dfffffffffffffffffffffe69e9e9e9e9e9e9e9e9e9e9e9ed6d6d6d6d6d6d6d6
  23.800 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c80d000000000000000000000000
  23.801 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.802 -0000000000000000000000000dadd6d6d6d6d6d6d6d6d6d6d68500000000000000000000
  23.803 -00000000000000000000000000000000000000000000000f5fafefffffffffffffffffcf
  23.804 -8f2f000000000000000000000000000000000000000000000000000000000000001fefff
  23.805 -ffffffffffffffffff3f0000000000000000000000000000000000000000000000000000
  23.806 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.807 -000000000000000000000000000000000000bfffffffffffffffffffffe69e9e9e9e9e9e
  23.808 -9e9e9e9e9eacd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.809 -d6ad00000000000000000000000000000000000000000000000000000000000000000000
  23.810 -0000000000000000000000000000000000000000000000000035c8d6d6d6d6d6d6d6d6d6
  23.811 -d6d68500000000000000000000000000000000000000000000000000000000000000001f
  23.812 -9fffffffffffffffffffffffffffffffbf3f000000000000000000000000000000000000
  23.813 -0000000000000000000000007fffffffffffffffffffff0f000000000000000000000000
  23.814 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.815 -00000000000000000000000000000000000000000000000000000000000000009fffffff
  23.816 -ffffffffffffffce9e9e9e9e9e9e9e9e9e9e9eacd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.817 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d68500000000000000000000000000000000000000
  23.818 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.819 -00006bd6d6d6d6d6d6d6d6d6d6d6d6930000000000000000000000000000000000000000
  23.820 -00000000000000000000000f8fffffffffffffffffffffffffffffffffffffff8f000000
  23.821 -00000000000000000000000000000000000000000000000000000fefffffffffffffffff
  23.822 -cf0000000000000000000000000000000000000000000000000000000000000000000000
  23.823 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.824 -000000000000000000008fffffffffffffffffffffce9e9e9e9e9e9e9e9e9e9e9ebad6d6
  23.825 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d65000000000
  23.826 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.827 -00000000000000000000000000000d93d6d6d6d6d6d6d6d6d6d6d6d6ad0d000000000000
  23.828 -0000000000000000000000000000000000000000000000002fdfffffffffffffffffffff
  23.829 -ffffffffffffffffffffff9f000000000000000000000000000000000000000000000000
  23.830 -00000000008fffffffffffffffff9f000000000000000000000000000000000000000000
  23.831 -00000000000000000000000000000000000000003f3f3f3f3f0f00000000000000000000
  23.832 -000000000000000000000000000000000000000000000000bfffffffffffffffffffffce
  23.833 -9e9e9e9e9e9e9e9e9e9e9ebad6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.834 -d6d6d6d6d6d6d6d6d6d62800000000000000000000000000000000000000000000000000
  23.835 -00000000000000000000000000000000000000000000000000000028bbd6d6d6d6d6d6d6
  23.836 -d6d6d6d6d6c81a0000000000000000000000000000000000000000000000000000000000
  23.837 -005fefffffffffffffffffffffffffffffffffffffffffffffff3f000000000000000000
  23.838 -000000000000000000000000000000000000002fffffffffffffffff5f00000000000000
  23.839 -0000000000000000000000000000000000000000000000000000000000001f6fcfffffff
  23.840 -ffffffffaf2f000000000000000000000000000000000000000000000000000000000000
  23.841 -0000bfffffffffffffffffffffbc9e9e9e9e9e9e9e9e9e9e9ebad6d6d6d6d6d6d6d6d6d6
  23.842 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c80d00000000000000000000
  23.843 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.844 -0000000050d6d6d6d6d6d6d6d6d6d6d6d6d6d64200000000000000000000000000000000
  23.845 -00000000000000000000000000005fffffffffffffffffffffffffffffffffffffffffff
  23.846 -ffffffffaf0000000000000000000000000000000000000000000000000000000000efff
  23.847 -ffffffffffff2f0000000000000000000000000000000000000000000000000000000000
  23.848 -0000000000000f9fffffffffffffffffffffffef2f000000000000000000000000000000
  23.849 -00000000000000000000000000000000cfffffffffffffffffffffb69e9e9e9e9e9e9e9e
  23.850 -9e9e9ec8d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.851 -d6d6d6ad0000000000000000000000000000000000000000000000000000000000000000
  23.852 -000000000000000000000000000000000d85d6d6d6d6d6d6d6d6d6d6d6d6d6d693000000
  23.853 -0000000000000000000000000000000000000000000000000000002fefffffffffffffff
  23.854 -ffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000
  23.855 -000000000000000000000000bfffffffffffffff00000000000000000000000000000000
  23.856 -000000000000000000000000000000000000004fefffffffffffffffffffffffffffaf00
  23.857 -000000000000000000000000000000000000000000000000000000000000ffffffffffff
  23.858 -ffffffffffb69e9e9e9e9e9e9e9e9e9e9ec8d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.859 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6780000000000000000000000000000000000
  23.860 -000000000000000000000000000000000000000000000000000000000028add6d6d6d6d6
  23.861 -d6d6d6d6d6d6d6d6d6d61a00000000000000000000000000000000000000000000000000
  23.862 -000000000fcfffffffffffffffffffffffffffffffffffffffffffffffffffffff1f0000
  23.863 -00000000000000000000000000000000000000000000000000007fffffffffffffbf0000
  23.864 -00000000000000000000000000000000000000000000000000000000000000008fffffff
  23.865 -ffffffffffffffffffffffffff0000000000000000000000000000000000000000000000
  23.866 -000000000000001fffffffffffffffffffffffb69e9e9e9e9e9e9e9e9e9e9ec8d6d6d6d6
  23.867 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6ad1a000000
  23.868 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.869 -00000000000042c8d6d6d6d6d6d6d6d6d6d6d6d6d6d6d66b000000000000000000000000
  23.870 -0000000000000000000000000000000000007fffffffffffffffffffffffffffffffffff
  23.871 -ffffffffffffffffffffff1f000000000000000000000000000000000000000000000000
  23.872 -000000007fffffffffffff7f000000000000000000000000000000000000000000000000
  23.873 -0000000000000000009fffffffffffffffffffffffffffffffffff000000000000000000
  23.874 -0000000000000000000000000000000000000000003fffffffffffffffffffffffb69e9e
  23.875 -9e9e9e9e9e9e9e9e9ec8d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.876 -d6d6d6d6d6d6d6d685000000000000000000000000000000000000000000000000000000
  23.877 -0000000000000000000000000000000000000078d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.878 -d60d00000000000000000000000000000000000000000000000000000000001fffffffff
  23.879 -ffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000
  23.880 -0000000000000000000000000000000000004fffffffffffff4f00000000000000000000
  23.881 -000000000000000000000000000000000000000000006fffffffffffffffffffffffffff
  23.882 -ffffffffff0000000000000000000000000000000000000000000000000000000000007f
  23.883 -ffffffffffffffffffffffb69e9e9e9e9e9e9e9e9e9e9ec8d6d6d6d6d6d6d6d6d6d6d6d6
  23.884 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c8500000000000000000000000000000
  23.885 -000000000000000000000000000000000000000000000000000000000000001aadd6d6d6
  23.886 -d6d6d6d6d6d6d6d6d6d6d6d6d6d685000000000000000000000000000000000000000000
  23.887 -0000000000000000009fffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.888 -ffffbf00000000000000000000000000000000000000000000000000000000003fffffff
  23.889 -ffffff0f000000000000000000000000000000000000000000000000000000000000003f
  23.890 -ffffffffffffffffffffffffffffffffffffcf0000000000000000000000000000000000
  23.891 -00000000000000000000000000afffffffffffffffffffffffb69e9e9e9e9e9e9e9e9e9e
  23.892 -9ec8d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6ad2800
  23.893 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.894 -00000000000000001ac8d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d62800000000000000
  23.895 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.896 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.897 -000000000000000000007fffffffffffdf00000000000000000000000000000000000000
  23.898 -0000000000000000000000000fdfffffffffffffffffffffffffffffffffffffaf000000
  23.899 -000000000000000000000000000000000000000000000000000000cfffffffffffffffff
  23.900 -ffffffb69e9e9e9e9e9e9e9e9e9e9ec8d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.901 -d6d6d6d6d6d6d6d6d6d6930d000000000000000000000000000000000000000000000000
  23.902 -0000000000000000000000000000000000000000000000a0d6d6d6d6d6d6d6d6d6d6d6d6
  23.903 -d6d6d6d6d6bb000000000000000000000000000000000000000000000000000000000000
  23.904 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.905 -0000000000000000000000000000000000000000000000007fffffffffffaf0000000000
  23.906 -00000000000000000000000000000000000000000000000000007fffffffffffffffffff
  23.907 -ffffffffffffffffffff7f00000000000000000000000000000000000000000000000000
  23.908 -0000000000ffffffffffffffffffffffffbc9e9e9e9e9e9e9e9e9e9e9ebad6d6d6d6d6d6
  23.909 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d65d000000000000000000000000
  23.910 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.911 -000dc8d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d68500000000000000000000000000000000
  23.912 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.913 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.914 -0000afffffffffff6f000000000000000000000000000000000000000000000000000000
  23.915 -0000000fefffffffffffffffffffffffffffffffffffffff3f0000000000000000000000
  23.916 -0000000000000000000000000000000000003fffffffffffffffffffffffffce9e9e9e9e
  23.917 -9e9e9e9e9e9e9ebad6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c8
  23.918 -280000000000000000000000000000000000000000000000000000000000000000000000
  23.919 -0000000000000000000000000000000028d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6500000
  23.920 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.921 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.922 -00000000000000000000000000000000cfffffffffff3f00000000000000000000000000
  23.923 -00000000000000000000000000000000007fffffffffffffffffffffffffffffffffffff
  23.924 -ffff0f00000000000000000000000000000000000000000000000000000000007fffffff
  23.925 -ffffffffffffffffffce9e9e9e9e9e9e9e9e9e9e9ebad6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.926 -d6d6d6d6d6d6d6d6d6d6d6d6a00d00000000000000000000000000000000000000000000
  23.927 -000000000000000000000000000000000000000000000000000000000000005dd6d6d6d6
  23.928 -d6d6d6d6d6d6d6d6d6d6d635000000000000000000000000000000000000000000000000
  23.929 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.930 -000000000000000000000000000000000000000000000000000000000000ffffffffffff
  23.931 -00000000000000000000000000000000000000000000000000000000000000dfffffffff
  23.932 -ffffffffffffffffffffffffffffffdf0000000000000000000000000000000000000000
  23.933 -00000000000000000000afffffffffffffffffffffffffce9e9e9e9e9e9e9e9e9e9e9eac
  23.934 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d66b00000000000000000000
  23.935 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.936 -0000000000000000000093d6d6d6d6d6d6d6d6d6d6d6d6d6d60000000000000000000000
  23.937 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.938 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.939 -000000000000003fffffffffffbf00000000000000000000000000000000000000000000
  23.940 -00000000000000004fffffffffffffffffffffffffffffffffffffffffaf000000000000
  23.941 -000000000000000000000000000000000000000000000000dfffffffffffffffffffffff
  23.942 -ffe69e9e9e9e9e9e9e9e9e9e9eacd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.943 -d6c835000000000000000000000000000000000000000000000000000000000000000000
  23.944 -0000000000000000000000000000000000000000000000000dbbd6d6d6d6d6d6d6d6d6d6
  23.945 -d6d6d6000000000000000000000000000000000000000000000000000000000000000000
  23.946 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.947 -0000000000000000000000000000000000000000006fffffffffff8f0000000000000000
  23.948 -000000000000000000000000000000000000000000009fffffffffffffffffffffffffff
  23.949 -ffffffffffffff7f00000000000000000000000000000000000000000000000000000000
  23.950 -000fffffffffffffffffffffffffffe69e9e9e9e9e9e9e9e9e9e9e9ed6d6d6d6d6d6d6d6
  23.951 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6ad1a0000000000000000000000000000000000000000
  23.952 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.953 -00000028c8d6d6d6d6d6d6d6d6d6d6d6d600000000000000000000000000000000000000
  23.954 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.955 -0000000000000000000000000000000000000000000000000000000000000000000000af
  23.956 -ffffffffff5f000000000000000000000000000000000000000000000000000000000000
  23.957 -efffffffffffffffffffffffffffffffffffffffff3f0000000000000000000000000000
  23.958 -0000000000000000000000000000004fffffffffffffffffffffffffffff9e9e9e9e9e9e
  23.959 -9e9e9e9e9e9ed2d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6780000000000000000
  23.960 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.961 -00000000000000000000000000000000000050d6d6d6d6d6d6d6d6d6d6d6d60000000000
  23.962 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.963 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.964 -00000000000000000000000000dfffffffffff1f00000000000000000000000000000000
  23.965 -000000000000000000000000002fffffffffffffffffffffffffffffffffffffffffff0f
  23.966 -00000000000000000000000000000000000000000000000000000000007fffffffffffff
  23.967 -ffffffffffffffffa49e9e9e9e9e9e9e9e9e9e9ec8d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  23.968 -d6d6d6c85000000000000000000000000000000000000000000000000000000000000000
  23.969 -00000000000000000000000000000000000000000000000000000000000000000085d6d6
  23.970 -d6d6d6d6d6d6d6d6d6000000000000000000000000000000000000000000000000000000
  23.971 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.972 -00000000000000000000000000000000000000000000000000001fffffffffffef000000
  23.973 -0000000000000000000000000000000000000000000000000000006fffffffffffffffff
  23.974 -ffffffffffffffffffffffffdf0000000000000000000000000000000000000000000000
  23.975 -00000000000000bfffffffffffffffffffffffffffffb69e9e9e9e9e9e9e9e9e9e9ebad6
  23.976 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6ad28000000000000000000000000000000000000
  23.977 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.978 -00000000000000000000000dadd6d6d6d6d6d6d6d6d6d600000000000000000000000000
  23.979 -0000000000000000000000000000000027737f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f
  23.980 -7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f
  23.981 -7f7f7f7f9fffffffffffaf00000000000000000000000000000000000000000000000000
  23.982 -00000000009fffffffffffffffffffffffffffffffffffffffff9f000000000000000000
  23.983 -000000000000000000000000000000000000000000efffffffffffffffffffffffffffff
  23.984 -c89e9e9e9e9e9e9e9e9e9e9eafd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6850d0000000000
  23.985 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.986 -000000000000000000000000000000000000000000000000000028c8d6d6d6d6d6d6d6d6
  23.987 -d60d000000000000000000000000000000000000000000000000000000003becffffffff
  23.988 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.989 -ffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000
  23.990 -00000000000000000000000000000000000000cfffffffffffffffffffffffffffffffff
  23.991 -ffffffff6f00000000000000000000000000000000000000000000000000000000002fff
  23.992 -ffffffffffffffffffffffffffffd49e9e9e9e9e9e9e9e9e9e9ea1d6d6d6d6d6d6d6d6d6
  23.993 -d6d6d6d6d6d65d0000000000000000000000000000000000000000000000000000000000
  23.994 -000000000000000000000000000000000000000000000000000000000000000000000000
  23.995 -000000000050d6d6d6d6d6d6d6d6d6350000000000000000000000000000000000000000
  23.996 -00000000000000001dffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.997 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  23.998 -ffff3f00000000000000000000000000000000000000000000000000000000000fffffff
  23.999 -ffffffffffffffffffffffffffffffffffff3f0000000000000000000000000000000000
 23.1000 -0000000000000000000000005fffffffffffffffffffffffffffffffe69e9e9e9e9e9e9e
 23.1001 -9e9e9e9e9ecbd6d6d6d6d6d6d6d6d6d6d6d6bb2800000000000000000000000000000000
 23.1002 -000000000000000000000000000000000000000000000000000000000000000000000000
 23.1003 -000000000000000000000000000000000000000078d6d6d6d6d6d6d6d66b000000000000
 23.1004 -0000000000000000000000000000000000000000000000dfffffffffffffffffffffffff
 23.1005 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1006 -ffffffffffffffffffffffffffffffff0f00000000000000000000000000000000000000
 23.1007 -000000000000000000003fffffffffffffffffffffffffffffffffffffffffff00000000
 23.1008 -00000000000000000000000000000000000000000000000000008fffffffffffffffffff
 23.1009 -ffffffffffffff9e9e9e9e9e9e9e9e9e9e9e9ebdd6d6d6d6d6d6d6d6d6d6d6a00d000000
 23.1010 -000000000000000000000000000000000000000000000000000000000000000000000000
 23.1011 -0000000000000000000000000000000000000000000000000000000000000000000000ad
 23.1012 -d6d6d6d6d6d6d6a000000000000000000000000000000000000000000000000000000000
 23.1013 -006fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1014 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcf000000000000
 23.1015 -0000000000000000000000000000000000000000000000007fffffffffffffffffffffff
 23.1016 -ffffffffffffffffffbf0000000000000000000000000000000000000000000000000000
 23.1017 -00000000cfffffffffffffffffffffffffffffffffb69e9e9e9e9e9e9e9e9e9e9eafd6d6
 23.1018 -d6d6d6d6d6d6d6d66b000000000000000000000000000000000000000000000000000000
 23.1019 -000000000000000000000000000000000000000000000000000000000000000000000000
 23.1020 -000000000000000000000000001ac8d6d6d6d6d6d6d60d00000000000000000000000000
 23.1021 -0000000000000000000000000000000fdfffffffffffffffffffffffffffffffffffffff
 23.1022 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1023 -ffffffffffffff9f00000000000000000000000000000000000000000000000000000000
 23.1024 -0000bfffffffffffffffffffffffffffffffffffffffff8f000000000000000000000000
 23.1025 -000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffce
 23.1026 -9e9e9e9e9e9e9e9e9e9e9e9ed2d6d6d6d6d6d6d6c8350000000000000000000000000000
 23.1027 -000000000000000000000000000000000000000000000000000000000000000000000000
 23.1028 -0000000000000000000000000000000000000000000000000000000042d6d6d6d6d6d6d6
 23.1029 -6b00000000000000000000000000000000000000000000000000000000003fffffffffff
 23.1030 -ffffffffffffffffffffffffffffffffffffffcf3f3f3f3f5f7f7f7fafbfbfbfffffffff
 23.1031 -ffffffffffffffffffffffffffffffffffffffffff5f0000000000000000000000000000
 23.1032 -00000000000000000000000000000000efffffffffffffffffffffffffffffffffffffff
 23.1033 -ff5f00000000000000000000000000000000000000000000000000000000003fffffffff
 23.1034 -ffffffffffffffffffffffffffe69e9e9e9e9e9e9e9e9e9e9e9ec1d6d6d6d6d6d6ad0d00
 23.1035 -000000000000000000000000000000000000000000000000000000000000000000000000
 23.1036 -000000000000000000000000000000000000000000000000000000000000000000000000
 23.1037 -000000000000006bd6d6d6d6d6d6bb000000000000000000000000000000000000000000
 23.1038 -0000000000000000005fffffffffffffffffffffffffffffffffffffffffffffaf0f0000
 23.1039 -000000000000000000000000000f3f3f3f5f7f7f7fafbfbfbfffffffffffffffffffff2f
 23.1040 -00000000000000000000000000000000000000000000000000000000001fffffffffffff
 23.1041 -ffffffffffffffffffffffffffffff1f0000000000000000000000000000000000000000
 23.1042 -0000000000000000006fffffffffffffffffffffffffffffffffffffa49e9e9e9e9e9e9e
 23.1043 -9e9e9e9eafd6d6d6d6d67800000000000000000000000000000000000000000000000000
 23.1044 -000000000000000000000000000000000000005d35000000000000000000000000000000
 23.1045 -00000000000000000000000000000000000000000000a0d6d6d6d6d6d65d000000000000
 23.1046 -0000000000000000000000000000000000000000000000004fefffffffffffffffffffff
 23.1047 -ffffffffffffffffdf4f0000000000000000000000000000000000000000000000000000
 23.1048 -00000000003fffffffffffffff0000000000000000000000000000000000000000000000
 23.1049 -000000000000005fffffffffffffffffffffffffffffffffffffffffef00000000000000
 23.1050 -0000000000000000000000000000000000000000000000afffffffffffffffffffffffff
 23.1051 -ffffffffffffbc9e9e9e9e9e9e9e9e9e9e9e9ed2d6d6c842000000000000000000000000
 23.1052 -000000000000000000000000000000000000000000000000000000000000000085d6c80d
 23.1053 -000000000000000000000000000000000000000000000000000000000000000000000000
 23.1054 -0dc8d6d6d6d6d6c80d000000000000000000000000000000000000000000000000000000
 23.1055 -0000000f7fefffffffffffffffffffffffffffffcf5f0000000000000000000000000000
 23.1056 -0000000000000000000000000000000000002fefffffffffffffbf000000000000000000
 23.1057 -0000000000000000000000000000000000000000008fffffffffffffffffffffffffffff
 23.1058 -ffffffffffffbf0000000000000000000000000000000000000000000000000000000000
 23.1059 -00dfffffffffffffffffffffffffffffffffffffda9e9e9e9e9e9e9e9e9e9e9e9ebdd6ad
 23.1060 -280000000000000000000000000000000000000000000000000000000000000000000000
 23.1061 -00000000000000000dadd6d6d69300000000000000000000000000000000000000000000
 23.1062 -00000000000000000000000000000035d6d6d6d6d6d69300000000000000000000000000
 23.1063 -000000000000000000000000000000000000000f4f8fbfffffffffffffffbf9f6f1f0000
 23.1064 -000000000000000000000000000000000000000000000000000000000000000fefffffff
 23.1065 -ffffffff7f000000000000000000000000000000000000000000000000000000000000cf
 23.1066 -ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000
 23.1067 -00000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff89e
 23.1068 -9e9e9e9e9e9e9e9e9e9e9ea5850d00000000000000000000000000000000000000000000
 23.1069 -00000000000000000000000000000000000000000028c8d6d6d6d6d64200000000000000
 23.1070 -0000000000000000000000000000000000000000000000000000000000005dd6d6d6d6d6
 23.1071 -d65d00000000000000000000000000000000000000000000000000000000000000000000
 23.1072 -000000000000000000000000000000000000000000000000000000000000000000000000
 23.1073 -00000000000000000fcfffffffffffffffff4f0000000000000000000000000000000000
 23.1074 -00000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff3f00
 23.1075 -000000000000000000000000000000000000000000000000000000004fffffffffffffff
 23.1076 -ffffffffffffffffffffffffffbc9e9e9e9e9e9e9e9e9e9e9e3b00000000000000000000
 23.1077 -0000000000000000000000000000000000000000000000000000000000000000000050d6
 23.1078 -d6d6d6d6d6d6c81a00000000000000000000000000000000000000000000000000000000
 23.1079 -00000000000000000093d6d6d6d6d6d65000000000000000000000000000000000000000
 23.1080 -000000000000000000000000000000000000000000000000000000000000000000000000
 23.1081 -0000000000000000000000000000000000000000002fdfffffffffffffffffff0f000000
 23.1082 -00000000000000000000000000000000000000000000000000003fffffffffffffffffff
 23.1083 -ffffffffffffffffffffffff0f0000000000000000000000000000000000000000000000
 23.1084 -0000000000007fffffffffffffffffffffffffffffffffffffffffda9e9e9e9e9e9e9e9e
 23.1085 -9e8a1d000000000000000000000000000000000000000000000000000000000000000000
 23.1086 -000000000000000000000078d6d6d6d6d6d6d6d6d6a00000000000000000000000000000
 23.1087 -00000000000000000000000000000000000000000000000dbbd6d6d6d6d6c82800000000
 23.1088 -000000000000000000000000000000000000000000000000000000000000000000000000
 23.1089 -000000000000000000000000000000000000000000000000000000000000000000003fef
 23.1090 -ffffffffffffffffffdf0000000000000000000000000000000000000000000000000000
 23.1091 -000000006fffffffffffffffffffffffffffffffffffffffffdf00000000000000000000
 23.1092 -0000000000000000000000000000000000000000bfffffffffffffffffffffffffffffff
 23.1093 -ffffffffffffa49e9e9e9e9e9e9e6c090000000000000000000000000000000000000000
 23.1094 -00000000000000000000000000000000000000000000000da0d6d6d6d6d6d6d6d6d6d6d6
 23.1095 -5d0000000000000000000000000000000000000000000000000000000000000000000000
 23.1096 -000028d6d6d6d6d6d6c85000000000000000000000000000000000000000000000000000
 23.1097 -000000000000000000000000000000000000000000000000000000000000000000000000
 23.1098 -00000000000000000000006fffffffffffffffffffffffaf000000000000000000000000
 23.1099 -000000000000000000000000000000000000afffffffffffffffffffffffffffffffffff
 23.1100 -ffffff9f000000000000000000000000000000000000000000000000000000000000efff
 23.1101 -ffffffffffffffffffffffffffffffffffffffffc29e9e9e9e9e9e450000000000000000
 23.1102 -000000000000000000000000000000000000000000000000000000000000000000000000
 23.1103 -28add6d6d6d6d6d6d6d6d6d6d6d6d6280000000000000000000000000000000000000000
 23.1104 -00000000000000000000000000000000005dd6d6d6d6d6d6d65d00000000000000000000
 23.1105 -000000000000000000000000000000000000000000000000000000000000000000000000
 23.1106 -00000000000000000000000000000000000000000000000fbfffffffffffffffffffffff
 23.1107 -ff6f000000000000000000000000000000000000000000000000000000000000dfffffff
 23.1108 -ffffffffffffffffffffffffffffffffff6f000000000000000000000000000000000000
 23.1109 -00000000000000000000002ffffffffffffffffffffffffffffffffffffffffffffff29e
 23.1110 -9e9e9e942700000000000000000000000000000000000000000000000000000000000000
 23.1111 -0000000000000000000000000042c8d6d6d6d6d6d6d6d6d6d6d6d6d6d6ad000000000000
 23.1112 -000000000000000000000000000000000000000000000000000000000000000085d6d6d6
 23.1113 -d6d6d6d6850d000000000000000000000000000000000000000000000000000000000000
 23.1114 -000000000000000000000000000000000000000000000000000000000000000000000000
 23.1115 -6fefffffffffffffffffffffffffff3f0000000000000000000000000000000000000000
 23.1116 -0000000000000000001fffffffffffffffffffffffffffffffffffffffffff3f00000000
 23.1117 -000000000000000000000000000000000000000000000000005fffffffffffffffffffff
 23.1118 -ffffffffffffffffffffffffffb69e9e7609000000000000000000000000000000000000
 23.1119 -00000000000000000000000000000000000000000000000000006bd6d6d6d6d6d6d6d6d6
 23.1120 -d6d6d6d6d6d6d6d678000000000000000000000000000000000000000000000000000000
 23.1121 -000000000000000000000dadd6d6d6d6d6d6d6bb35000000000000000000000000000000
 23.1122 -000000000000000000000000000000000000000000000000000000000000000000000000
 23.1123 -0000000000000000000000003fcfffffffffffffffffffffffffffffff00000000000000
 23.1124 -00000000000000000000000000000000000000000000004fffffffffffffffffffffffff
 23.1125 -ffffffffffffffffff000000000000000000000000000000000000000000000000000000
 23.1126 -0000008fffffffffffffffffffffffffffffffffffffffffffffffe69e58000000000000
 23.1127 -000000000000000000000000000000000000000000000000000000000000000000000000
 23.1128 -00000d85d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d635000000000000000000000000
 23.1129 -0000000000000000000000000000000000000000000000000028c8d6d6d6d6d6d6d6ac6c
 23.1130 -130000000000000000000000000000000000000000000000000000000000000000000000
 23.1131 -0000000000000000000000000000000000000000000000003fbfffffffffffffffffffff
 23.1132 -ffffffffffffbf0000000000000000000000000000000000000000000000000000000000
 23.1133 -007fffffffffffffffffffffffffffffffffffffffffbf00000000000000000000000000
 23.1134 -0000000000000000000000000000000000bfffffffffffffffffffffffffffffffffffff
 23.1135 -ffffffffffef310000000000000000000000000000000000000000000000000000000000
 23.1136 -0000000000000000000000000000001aadd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
 23.1137 -d6bb0d000000000000000000000000000000000000000000000000000000000000000000
 23.1138 -0000000050d6d6d6d6d6d6c49e9e9e6c2700000000000000000000000000000000000000
 23.1139 -00000000000000000000000000000000000000000000000000000000000000000000000f
 23.1140 -6fdfffffffffffffffffffffffffffffffffffff8f000000000000000000000000000000
 23.1141 -000000000000000000000000000000bfffffffffffffffffffffffffffffffffffffffff
 23.1142 -8f000000000000000000000000000000000000000000000000000000000000ffffffffff
 23.1143 -ffffffffffffffffffffffffffffffffffffcf1f00000000000000000000000000000000
 23.1144 -0000000000000000000000000000000000000000000000000000000028c8d6d6d6d6d6d6
 23.1145 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d69300000000000000000000000000000000000000
 23.1146 -0000000000000000000000000000000000000085d6d6d6d6d2a59e9e9e9e9e8a45130000
 23.1147 -000000000000000000000000000000000000000000000000000000000000000000000000
 23.1148 -000000000000000000000f5fafffffffffffffffffffffffffffffffffffffffffff5f00
 23.1149 -0000000000000000000000000000000000000000000000000000000000ffffffffffffff
 23.1150 -ffffffffffffffffffffffffffff5f000000000000000000000000000000000000000000
 23.1151 -00000000000000003fffffffffffffffffffffffffffffffffffffffffffff9f0f000000
 23.1152 -000000000000000000000000000000000000000000000000000000000000000000000000
 23.1153 -000000000050d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d64200000000
 23.1154 -00000000000000000000000000000000000000000000000000000000000000000000add6
 23.1155 -d6d6b69e9e9e9e9e9e9e9e9e805831090000000000000000000000000000000000000000
 23.1156 -00000000000000000000000000000000000000000f4f8fcfffffffffffffffffffffffff
 23.1157 -ffffffffffffffffffffffff1f0000000000000000000000000000000000000000000000
 23.1158 -0000000000002fffffffffffffffffffffffffffffffffffffffffff1f00000000000000
 23.1159 -000000000000000000000000000000000000000000006fffffffffffffffffffffffffff
 23.1160 -ffffffffffffffef5f000000000000000000000000000000000000000000000000000000
 23.1161 -00000000000000000000000000000000000085d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
 23.1162 -d6d6d6d6d6d6d6d6d6c81a00000000000000000000000000000000000000000000000000
 23.1163 -0000000000000000000000001ac8d6c89e9e9e9e9e9e9e9e9e9e9e9e9eaacf9f7f3f1f00
 23.1164 -00000000000000000000000000000000000000000000000000000000002f3f7fafcfffff
 23.1165 -ffffffffffffffffffffffffffffffffffffffffffffffffffef00000000000000000000
 23.1166 -00000000000000000000000000000000000000006fffffffffffffffffffffffffffffff
 23.1167 -ffffffffffef000000000000000000000000000000000000000000000000000000000000
 23.1168 -9fffffffffffffffffffffffffffffffffffffffdf2f0000000000000000000000000000
 23.1169 -0000000000000000000000000000000000000000000000000000000000000da0d6d6d6d6
 23.1170 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6a00000000000000000000000
 23.1171 -00000000000000000000000000000000000000000000000000000042d2a59e9e9e9e9e9e
 23.1172 -9e9e9e9e9e9e9edaffffffffffffcfbf9f7f7f6f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f
 23.1173 -7f7f7fafbfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1174 -ffffffdf7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7fbfff
 23.1175 -ffffffffffffffffffffffffffffffffffffffdf7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f
 23.1176 -7f7f7f7f7f7f7f7f7f7f7f7f7f7fdfffffffffffffffffffffffffffffffffffffaf0f00
 23.1177 -000000000000000000000000000000000000000000000000000000000000000000000000
 23.1178 -0000000000000028bbd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
 23.1179 -d6d6d65d0000000000000000000000000000000000000000000000000000000000000000
 23.1180 -0000000000005f9e9e9e9e9e9e9e9e9e9e9e9e9eb6ffffffffffffffffffffffffffffff
 23.1181 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1182 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1183 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1184 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1185 -ffffffffffffffffffff6f00000000000000000000000000000000000000000000000000
 23.1186 -000000000000000000000000000000000000000050c8d6d6d6d6d6d6d6d6d6d6d6d6d6d6
 23.1187 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6280000000000000000000000000000000000
 23.1188 -000000000000000000000000000000000000000000809e9e9e9e9e9e9e9e9e9e9e9eecff
 23.1189 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1190 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1191 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1192 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1193 -ffffffffffffffffffffffffffffffffffffffffffffef2f000000000000000000000000
 23.1194 -0000000000000000000000000000000000000000000000000000000000000000006bd6d6
 23.1195 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6ad000000
 23.1196 -000000000000000000000000000000000000000000000000000000000000000000000009
 23.1197 -949e9e9e9e9e9e9e9e9e9ec8ffffffffffffffffffffffffffffffffffffffffffffffff
 23.1198 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1199 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1200 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1201 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf
 23.1202 -0f0000000000000000000000000000000000000000000000000000000000000000000000
 23.1203 -0000000000000000000d93d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
 23.1204 -d6d6d6d6d6d6d6d6d6d6d678000000000000000000000000000000000000000000000000
 23.1205 -0000000000000000000000000000279e9e9e9e9e9e9e9e9ea4f8ffffffffffffffffffff
 23.1206 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1207 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1208 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1209 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1210 -ffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000
 23.1211 -000000000000000000000000000000000000000000001aadd6d6d6d6d6d6d6d6d6d6d6d6
 23.1212 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d635000000000000000000
 23.1213 -00000000000000000000000000000000000000000000000000000000004f9e9e9e9e9e9e
 23.1214 -9e9ee0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1215 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1216 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1217 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1218 -ffffffffffffffffffffffffffffffffffffffffffffffffef4f00000000000000000000
 23.1219 -000000000000000000000000000000000000000000000000000000000000000000000035
 23.1220 -c8d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
 23.1221 -d6d6d6d6bb0d000000000000000000000000000000000000000000000000000000000000
 23.1222 -0000000000000000769e9e9e9e9e9ec2ffffffffffffffffffffffffffffffffffffffff
 23.1223 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1224 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1225 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1226 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1227 -ffcf1f000000000000000000000000000000000000000000000000000000000000000000
 23.1228 -0000000000000000000000005dd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
 23.1229 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d69300000000000000000000000000000000
 23.1230 -00000000000000000000000000000000000000000000098a9e9e9e9eaaf8ffffffffffff
 23.1231 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1232 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1233 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1234 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1235 -ffffffffffffffffffffffffffff9f000000000000000000000000000000000000000000
 23.1236 -0000000000000000000000000000000000000000000000000085d6d6d6d6d6d6d6d6d6d6
 23.1237 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d64200
 23.1238 -000000000000000000000000000000000000000000000000000000000000000000000000
 23.1239 -001d9e9e9e9eecffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1240 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1241 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1242 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1243 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffdf7f7f7f7f7f7f7f7f
 23.1244 -7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f614f4f4f4f4f4f4f4f4f4f4f4f4f4f4f566b6b6b
 23.1245 -6b6badd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
 23.1246 -d6d6d6d6d6d6d6d6d6d6d6d6c86b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b
 23.1247 -6b6b674f4f4f4f4f4f4f4f4f4f4f4f4f8a9e9ed4ffffffffffffffffffffffffffffffff
 23.1248 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1249 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1250 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1251 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1252 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeca49e9e9e9e
 23.1253 -9e9e9e9e9e9e9e9e9e9e9eb3d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
 23.1254 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
 23.1255 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6cba89e9e9e9e9e9e9e9e9e9e9e9e9e9e9ec2ffffff
 23.1256 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1257 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1258 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1259 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1260 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1261 -ffffffffffffffffffe09e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eafd2d6d6d6d6d6d6d6d6
 23.1262 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
 23.1263 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c8a19e9e9e9e9e9e
 23.1264 -9e9e9e9e9e9e9e9e9eb0f8ffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1265 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1266 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1267 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1268 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1269 -ffffffffffffffffffffffffffffffffffffffffffffffffda9e9e9e9e9e9e9e9e9e9e9e
 23.1270 -9e9e9e9e9ea8cbd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
 23.1271 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
 23.1272 -d6d6d6d6d6bd9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea4f8ffffffffffffffffffffffff
 23.1273 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1274 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1275 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1276 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1277 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1278 -ffffffc29e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea1c4d6d6d6d6d6d6d6d6d6d6d6d6d6d6
 23.1279 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
 23.1280 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d2af9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea4
 23.1281 -ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1282 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1283 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1284 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1285 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1286 -ffffffffffffffffffffffffffffffffffffc29e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
 23.1287 -b3d2d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
 23.1288 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c8a59e9e9e9e
 23.1289 -9e9e9e9e9e9e9e9e9e9e9e9ea4ecffffffffffffffffffffffffffffffffffffffffffff
 23.1290 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1291 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1292 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1293 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1294 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc29e9e
 23.1295 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea5c8d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
 23.1296 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
 23.1297 -d6d6d6d6d6d6d2b69e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9edaffffffffffffffffff
 23.1298 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1299 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1300 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1301 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1302 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1303 -ffffffffffffffffffffffffc29e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eb3d2d6d6d6
 23.1304 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
 23.1305 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c8a59e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
 23.1306 -9e9e9edaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1307 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1308 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1309 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1310 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1311 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffc29e9e9e9e9e9e9e9e
 23.1312 -9e9e9e9e9e9e9e9e9e9ea1bad6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
 23.1313 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6cfac9e9e9e
 23.1314 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea4daffffffffffffffffffffffffffffffffffffff
 23.1315 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1316 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1317 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1318 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1319 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1320 -ffffffffffffc29e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea5c1d6d6d6d6d6d6d6d6
 23.1321 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
 23.1322 -d6d6d6d6d6d6d6cfb39e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea4ecffffffffffff
 23.1323 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1324 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1325 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1326 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1327 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1328 -ffffffffffffffffffffffffffffffffffffffffffc89e9e9e9e9e9e9e9e9e9e9e9e9e9e
 23.1329 -9e9e9e9e9e9ea5c1d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
 23.1330 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6cfb39e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
 23.1331 -9e9e9e9e9ea4ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1332 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1333 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1334 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1335 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1336 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1337 -da9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea1bacfd6d6d6d6d6d6d6d6d6d6d6
 23.1338 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c8af9e9e9e
 23.1339 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eb0f8ffffffffffffffffffffffffffffffff
 23.1340 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1341 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1342 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1343 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1344 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1345 -ffffffffffffffffffffffffffffffeca49e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
 23.1346 -9e9e9eafc1d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
 23.1347 -d6d6d6d6d6d6cfbaa59e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ec2f8ffffff
 23.1348 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1349 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1350 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1351 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1352 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1353 -fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8b09e9e9e9e
 23.1354 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea1afc1d2d6d6d6d6d6d6d6d6d6d6d6d6d6
 23.1355 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6cbbaa89e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
 23.1356 -9e9e9e9e9e9e9e9ed4ffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1357 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1358 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1359 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1360 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1361 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1362 -ffffffffffffffffffffc89e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
 23.1363 -9ea8b6c4cfd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c8bdafa19e9e9e9e9e
 23.1364 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eaaecffffffffffffffffffffffffffff
 23.1365 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1366 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1367 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1368 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1369 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1370 -ffffffffffffffffffffffffffffffffffffffffffffffffffe6aa9e9e9e9e9e9e9e9e9e
 23.1371 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea1acb3bac4c8c8d6d6d6d6d6d6d6cfc8c8
 23.1372 -bdbaafa89e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ebcf8ff
 23.1373 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1374 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1375 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1376 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1377 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1378 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1379 -fffffffff8c89e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
 23.1380 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
 23.1381 -9e9e9e9e9e9e9e9e9ea4e0ffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1382 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1383 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1384 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1385 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1386 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1387 -ffffffffffffffffffffffffffffffffffffffffe6aa9e9e9e9e9e9e9e9e9e9e9e9e9e9e
 23.1388 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
 23.1389 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ec2f8ffffffffffffffffffffffff
 23.1390 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1391 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1392 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1393 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1394 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1395 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1396 -cea49e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
 23.1397 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eb6e6
 23.1398 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1399 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1400 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1401 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1402 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1403 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1404 -fffffffffffffffffffffffffffffff8c29e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
 23.1405 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
 23.1406 -9e9e9e9e9e9e9e9e9e9eaadaffffffffffffffffffffffffffffffffffffffffffffffff
 23.1407 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1408 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1409 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1410 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1411 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1412 -fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2c29e9e9e
 23.1413 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
 23.1414 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eaadaffffffffffffffffffffffff
 23.1415 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1416 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1417 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1418 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1419 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1420 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1421 -fffffffffffffffffffffff2c29e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
 23.1422 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eaada
 23.1423 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1424 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1425 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1426 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1427 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1428 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1429 -fffffffffffffffffffffffffffffffffffffffffffffffffffffff8ceaa9e9e9e9e9e9e
 23.1430 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
 23.1431 -9e9e9e9e9e9e9e9e9e9eb6e0ffffffffffffffffffffffffffffffffffffffffffffffff
 23.1432 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1433 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1434 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1435 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1436 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1437 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1438 -ffffffffffffffffe0bc9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
 23.1439 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eaac8f2ffffffffffffffffffffffff
 23.1440 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1441 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1442 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1443 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1444 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1445 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1446 -fffffffffffffffffffffffffffffffffffffffffffffffff8dabc9e9e9e9e9e9e9e9e9e
 23.1447 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eaac8ecff
 23.1448 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1449 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1450 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1451 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1452 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1453 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1454 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1455 -fffffffffff8e0c2aa9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
 23.1456 -9e9e9e9e9e9e9eb6d4ecffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1457 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1458 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1459 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1460 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1461 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1462 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1463 -fffffffffffffffffffffffffffffffffffffffffffffff2e0c8b6a49e9e9e9e9e9e9e9e
 23.1464 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eaabccee6ffffffffffffffffffffffffffffffff
 23.1465 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1466 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1467 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1468 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1469 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1470 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1471 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1472 -fffffffffffff8e6d4cec2b6b6aa9e9e9e9e9e9e9e9eb6b6b6c8cee0e6ffffffffffffff
 23.1473 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1474 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1475 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1476 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1477 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 23.1478 -ffffffffffffffffffffffffffffffffffffffffffffff
 23.1479 -end
 23.1480 -%%PageTrailer
 23.1481 -%%Trailer
 23.1482 -%%EOF
    24.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    24.2 +++ b/docs/figs/xenlogo.eps	Thu Feb 10 13:17:10 2005 +0000
    24.3 @@ -0,0 +1,1479 @@
    24.4 +%!PS-Adobe-3.0 EPSF-3.0
    24.5 +%%Creator: (ImageMagick)
    24.6 +%%Title: (/homes/kaf24/xenlogo.eps)
    24.7 +%%CreationDate: (Tue Oct 28 13:52:11 2003)
    24.8 +%%BoundingBox: 155 324 445 461
    24.9 +%%DocumentData: Clean7Bit
   24.10 +%%LanguageLevel: 1
   24.11 +%%Pages: 1
   24.12 +%%EndComments
   24.13 +
   24.14 +%%BeginDefaults
   24.15 +%%EndDefaults
   24.16 +
   24.17 +%%BeginProlog
   24.18 +%
   24.19 +% Display a color image.  The image is displayed in color on
   24.20 +% Postscript viewers or printers that support color, otherwise
   24.21 +% it is displayed as grayscale.
   24.22 +%
   24.23 +/DirectClassPacket
   24.24 +{
   24.25 +  %
   24.26 +  % Get a DirectClass packet.
   24.27 +  %
   24.28 +  % Parameters:
   24.29 +  %   red.
   24.30 +  %   green.
   24.31 +  %   blue.
   24.32 +  %   length: number of pixels minus one of this color (optional).
   24.33 +  %
   24.34 +  currentfile color_packet readhexstring pop pop
   24.35 +  compression 0 eq
   24.36 +  {
   24.37 +    /number_pixels 3 def
   24.38 +  }
   24.39 +  {
   24.40 +    currentfile byte readhexstring pop 0 get
   24.41 +    /number_pixels exch 1 add 3 mul def
   24.42 +  } ifelse
   24.43 +  0 3 number_pixels 1 sub
   24.44 +  {
   24.45 +    pixels exch color_packet putinterval
   24.46 +  } for
   24.47 +  pixels 0 number_pixels getinterval
   24.48 +} bind def
   24.49 +
   24.50 +/DirectClassImage
   24.51 +{
   24.52 +  %
   24.53 +  % Display a DirectClass image.
   24.54 +  %
   24.55 +  systemdict /colorimage known
   24.56 +  {
   24.57 +    columns rows 8
   24.58 +    [
   24.59 +      columns 0 0
   24.60 +      rows neg 0 rows
   24.61 +    ]
   24.62 +    { DirectClassPacket } false 3 colorimage
   24.63 +  }
   24.64 +  {
   24.65 +    %
   24.66 +    % No colorimage operator;  convert to grayscale.
   24.67 +    %
   24.68 +    columns rows 8
   24.69 +    [
   24.70 +      columns 0 0
   24.71 +      rows neg 0 rows
   24.72 +    ]
   24.73 +    { GrayDirectClassPacket } image
   24.74 +  } ifelse
   24.75 +} bind def
   24.76 +
   24.77 +/GrayDirectClassPacket
   24.78 +{
   24.79 +  %
   24.80 +  % Get a DirectClass packet;  convert to grayscale.
   24.81 +  %
   24.82 +  % Parameters:
   24.83 +  %   red
   24.84 +  %   green
   24.85 +  %   blue
   24.86 +  %   length: number of pixels minus one of this color (optional).
   24.87 +  %
   24.88 +  currentfile color_packet readhexstring pop pop
   24.89 +  color_packet 0 get 0.299 mul
   24.90 +  color_packet 1 get 0.587 mul add
   24.91 +  color_packet 2 get 0.114 mul add
   24.92 +  cvi
   24.93 +  /gray_packet exch def
   24.94 +  compression 0 eq
   24.95 +  {
   24.96 +    /number_pixels 1 def
   24.97 +  }
   24.98 +  {
   24.99 +    currentfile byte readhexstring pop 0 get
  24.100 +    /number_pixels exch 1 add def
  24.101 +  } ifelse
  24.102 +  0 1 number_pixels 1 sub
  24.103 +  {
  24.104 +    pixels exch gray_packet put
  24.105 +  } for
  24.106 +  pixels 0 number_pixels getinterval
  24.107 +} bind def
  24.108 +
  24.109 +/GrayPseudoClassPacket
  24.110 +{
  24.111 +  %
  24.112 +  % Get a PseudoClass packet;  convert to grayscale.
  24.113 +  %
  24.114 +  % Parameters:
  24.115 +  %   index: index into the colormap.
  24.116 +  %   length: number of pixels minus one of this color (optional).
  24.117 +  %
  24.118 +  currentfile byte readhexstring pop 0 get
  24.119 +  /offset exch 3 mul def
  24.120 +  /color_packet colormap offset 3 getinterval def
  24.121 +  color_packet 0 get 0.299 mul
  24.122 +  color_packet 1 get 0.587 mul add
  24.123 +  color_packet 2 get 0.114 mul add
  24.124 +  cvi
  24.125 +  /gray_packet exch def
  24.126 +  compression 0 eq
  24.127 +  {
  24.128 +    /number_pixels 1 def
  24.129 +  }
  24.130 +  {
  24.131 +    currentfile byte readhexstring pop 0 get
  24.132 +    /number_pixels exch 1 add def
  24.133 +  } ifelse
  24.134 +  0 1 number_pixels 1 sub
  24.135 +  {
  24.136 +    pixels exch gray_packet put
  24.137 +  } for
  24.138 +  pixels 0 number_pixels getinterval
  24.139 +} bind def
  24.140 +
  24.141 +/PseudoClassPacket
  24.142 +{
  24.143 +  %
  24.144 +  % Get a PseudoClass packet.
  24.145 +  %
  24.146 +  % Parameters:
  24.147 +  %   index: index into the colormap.
  24.148 +  %   length: number of pixels minus one of this color (optional).
  24.149 +  %
  24.150 +  currentfile byte readhexstring pop 0 get
  24.151 +  /offset exch 3 mul def
  24.152 +  /color_packet colormap offset 3 getinterval def
  24.153 +  compression 0 eq
  24.154 +  {
  24.155 +    /number_pixels 3 def
  24.156 +  }
  24.157 +  {
  24.158 +    currentfile byte readhexstring pop 0 get
  24.159 +    /number_pixels exch 1 add 3 mul def
  24.160 +  } ifelse
  24.161 +  0 3 number_pixels 1 sub
  24.162 +  {
  24.163 +    pixels exch color_packet putinterval
  24.164 +  } for
  24.165 +  pixels 0 number_pixels getinterval
  24.166 +} bind def
  24.167 +
  24.168 +/PseudoClassImage
  24.169 +{
  24.170 +  %
  24.171 +  % Display a PseudoClass image.
  24.172 +  %
  24.173 +  % Parameters:
  24.174 +  %   class: 0-PseudoClass or 1-Grayscale.
  24.175 +  %
  24.176 +  currentfile buffer readline pop
  24.177 +  token pop /class exch def pop
  24.178 +  class 0 gt
  24.179 +  {
  24.180 +    currentfile buffer readline pop
  24.181 +    token pop /depth exch def pop
  24.182 +    /grays columns 8 add depth sub depth mul 8 idiv string def
  24.183 +    columns rows depth
  24.184 +    [
  24.185 +      columns 0 0
  24.186 +      rows neg 0 rows
  24.187 +    ]
  24.188 +    { currentfile grays readhexstring pop } image
  24.189 +  }
  24.190 +  {
  24.191 +    %
  24.192 +    % Parameters:
  24.193 +    %   colors: number of colors in the colormap.
  24.194 +    %   colormap: red, green, blue color packets.
  24.195 +    %
  24.196 +    currentfile buffer readline pop
  24.197 +    token pop /colors exch def pop
  24.198 +    /colors colors 3 mul def
  24.199 +    /colormap colors string def
  24.200 +    currentfile colormap readhexstring pop pop
  24.201 +    systemdict /colorimage known
  24.202 +    {
  24.203 +      columns rows 8
  24.204 +      [
  24.205 +        columns 0 0
  24.206 +        rows neg 0 rows
  24.207 +      ]
  24.208 +      { PseudoClassPacket } false 3 colorimage
  24.209 +    }
  24.210 +    {
  24.211 +      %
  24.212 +      % No colorimage operator;  convert to grayscale.
  24.213 +      %
  24.214 +      columns rows 8
  24.215 +      [
  24.216 +        columns 0 0
  24.217 +        rows neg 0 rows
  24.218 +      ]
  24.219 +      { GrayPseudoClassPacket } image
  24.220 +    } ifelse
  24.221 +  } ifelse
  24.222 +} bind def
  24.223 +
  24.224 +/DisplayImage
  24.225 +{
  24.226 +  %
  24.227 +  % Display a DirectClass or PseudoClass image.
  24.228 +  %
  24.229 +  % Parameters:
  24.230 +  %   x & y translation.
  24.231 +  %   x & y scale.
  24.232 +  %   label pointsize.
  24.233 +  %   image label.
  24.234 +  %   image columns & rows.
  24.235 +  %   class: 0-DirectClass or 1-PseudoClass.
  24.236 +  %   compression: 0-none or 1-RunlengthEncoded.
  24.237 +  %   hex color packets.
  24.238 +  %
  24.239 +  gsave
  24.240 +  /buffer 512 string def
  24.241 +  /byte 1 string def
  24.242 +  /color_packet 3 string def
  24.243 +  /pixels 768 string def
  24.244 +
  24.245 +  currentfile buffer readline pop
  24.246 +  token pop /x exch def
  24.247 +  token pop /y exch def pop
  24.248 +  x y translate
  24.249 +  currentfile buffer readline pop
  24.250 +  token pop /x exch def
  24.251 +  token pop /y exch def pop
  24.252 +  currentfile buffer readline pop
  24.253 +  token pop /pointsize exch def pop
  24.254 +  /Times-Roman findfont pointsize scalefont setfont
  24.255 +  x y scale
  24.256 +  currentfile buffer readline pop
  24.257 +  token pop /columns exch def
  24.258 +  token pop /rows exch def pop
  24.259 +  currentfile buffer readline pop
  24.260 +  token pop /class exch def pop
  24.261 +  currentfile buffer readline pop
  24.262 +  token pop /compression exch def pop
  24.263 +  class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
  24.264 +  grestore
  24.265 +} bind def
  24.266 +%%EndProlog
  24.267 +%%Page:  1 1
  24.268 +%%PageBoundingBox: 155 324 445 461
  24.269 +userdict begin
  24.270 +DisplayImage
  24.271 +155 324
  24.272 +289.992 137.145
  24.273 +12.000000
  24.274 +302 143
  24.275 +1
  24.276 +1
  24.277 +1
  24.278 +8
  24.279 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.280 +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8e6
  24.281 +d4cec2b6b6aa9e9e9e9e9e9e9e9eb6b6b6c8cee0e6ffffffffffffffffffffffffffffff
  24.282 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.283 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.284 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.285 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.286 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.287 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.288 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.289 +fffffffffffffff2e0c8b6a49e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
  24.290 +aabccee6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.291 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.292 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.293 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.294 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.295 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.296 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.297 +fffffffffffffffffffffffffffffffffff8e0c2aa9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
  24.298 +9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eb6ceecffffffffffffffffffffffffffff
  24.299 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.300 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.301 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.302 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.303 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.304 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.305 +fffffffffffffffffffffffffffffffffffffffffffffffffffffffff8dabc9e9e9e9e9e
  24.306 +9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
  24.307 +aac8ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.308 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.309 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.310 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.311 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.312 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.313 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.314 +ffffffffe0bc9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
  24.315 +9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eaac8f2ffffffffffffffffffffffffffffffff
  24.316 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.317 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.318 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.319 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.320 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.321 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.322 +fffffffffffffffffffffffffffffff8ceaa9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
  24.323 +9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eb6e0
  24.324 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.325 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.326 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.327 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.328 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.329 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.330 +fffffffffffffffffffffffffffffffffffffffffffffffffffffff2c29e9e9e9e9e9e9e
  24.331 +9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
  24.332 +9e9e9e9e9e9e9e9e9e9e9e9e9e9eaadaffffffffffffffffffffffffffffffffffffffff
  24.333 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.334 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.335 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.336 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.337 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.338 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.339 +fffffff2c29e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
  24.340 +9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eaadaffffffff
  24.341 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.342 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.343 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.344 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.345 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.346 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.347 +fffffffffffffffffffffffffffffff8c29e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
  24.348 +9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
  24.349 +9e9e9e9e9e9e9e9e9e9eaadaffffffffffffffffffffffffffffffffffffffffffffffff
  24.350 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.351 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.352 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.353 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.354 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.355 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffcea49e9e9e9e9e9e
  24.356 +9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
  24.357 +9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eb6e6ffffffffffffffff
  24.358 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.359 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.360 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.361 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.362 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.363 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.364 +ffffffffe6aa9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
  24.365 +9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
  24.366 +9e9e9e9e9e9ec2f8ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.367 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.368 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.369 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.370 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.371 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.372 +fffffffffffffffffffffffffffffffff8c29e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
  24.373 +9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
  24.374 +9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea4e0ffffffffffffffffffffffffff
  24.375 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.376 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.377 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.378 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.379 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.380 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6aa9e9e9e9e9e
  24.381 +9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea1acb6bac4c8c8d6d6d6d6d6d6
  24.382 +d6cfc8c8bdbaafa89e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
  24.383 +9ebcf8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.384 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.385 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.386 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.387 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.388 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.389 +ffffffffffffc89e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea8b6c4
  24.390 +cfd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c8bdafa19e9e9e9e9e9e9e9e9e
  24.391 +9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eaaecffffffffffffffffffffffffffffffffffff
  24.392 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.393 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.394 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.395 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.396 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.397 +fffffffffffffffffffffffffffffffffffff8b09e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
  24.398 +9e9e9e9e9e9e9ea1afc1d2d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  24.399 +d6d6d6d6d6cbbaa89e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ed4ffffff
  24.400 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.401 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.402 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.403 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.404 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.405 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeca49e9e9e
  24.406 +9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eafc1d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  24.407 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6cfbaa59e9e9e9e9e9e9e9e9e9e9e
  24.408 +9e9e9e9e9e9e9e9e9e9e9ec2f8ffffffffffffffffffffffffffffffffffffffffffffff
  24.409 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.410 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.411 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.412 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.413 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.414 +ffffffffffffffffda9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea1bacfd6d6d6
  24.415 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  24.416 +d6d6d6c8af9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eb0f8ffffffffffffffff
  24.417 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.418 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.419 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.420 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.421 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.422 +ffffffffffffffffffffffffffffffffffffffffffc89e9e9e9e9e9e9e9e9e9e9e9e9e9e
  24.423 +9e9e9e9e9e9ea5c1d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  24.424 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6cfb39e9e9e9e9e9e9e9e9e9e9e9e9e9e9e
  24.425 +9e9e9e9e9ea4ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.426 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.427 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.428 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.429 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.430 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc29e
  24.431 +9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea5c1d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  24.432 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6cf
  24.433 +b39e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea4ecffffffffffffffffffffffffffff
  24.434 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.435 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.436 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.437 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.438 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.439 +ffffffffffffffffffffffc29e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea1bdd6d6d6d6
  24.440 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  24.441 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6cfaf9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea4
  24.442 +daffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.443 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.444 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.445 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.446 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.447 +ffffffffffffffffffffffffffffffffffffffffffffffffc29e9e9e9e9e9e9e9e9e9e9e
  24.448 +9e9e9e9e9e9e9eb3d2d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  24.449 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c8a59e9e9e
  24.450 +9e9e9e9e9e9e9e9e9e9e9e9e9e9e9edaffffffffffffffffffffffffffffffffffffffff
  24.451 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.452 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.453 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.454 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.455 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.456 +ffc29e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea5c8d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  24.457 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  24.458 +d6d6d6d6d6d6d6d6d6d6d2b69e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9edaffffffffff
  24.459 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.460 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.461 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.462 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.463 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.464 +ffffffffffffffffffffffffffffc29e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eb3d2d6d6
  24.465 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  24.466 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c8a59e9e9e9e9e9e9e9e
  24.467 +9e9e9e9e9e9e9e9ea4ecffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.468 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.469 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.470 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.471 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.472 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc29e9e9e9e9e9e9e9e
  24.473 +9e9e9e9e9e9e9e9ea1c4d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  24.474 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  24.475 +d6d6d6d6d6d2af9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea4ecffffffffffffffffffffff
  24.476 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.477 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.478 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.479 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.480 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.481 +ffffffffda9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea8cbd6d6d6d6d6d6d6d6d6d6d6d6d6
  24.482 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  24.483 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6bd9e9e9e9e9e9e9e9e9e9e9e9e9e9e
  24.484 +9e9ea4f8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.485 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.486 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.487 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.488 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.489 +ffffffffffffffffffffffffffffffffffe09e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eafd2
  24.490 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  24.491 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  24.492 +c8a19e9e9e9e9e9e9e9e9e9e9e9e9e9e9eb0f8ffffffffffffffffffffffffffffffffff
  24.493 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.494 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.495 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.496 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.497 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeca49e9e9e9e
  24.498 +9e9e9e9e9e9e9e9e9e9e9eb3d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  24.499 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  24.500 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6cba89e9e9e9e9e9e9e9e9e9e9e9e9e9e9ec2ffffff
  24.501 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.502 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.503 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.504 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.505 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.506 +fffffffffffffff8b09e9e9e9e9e9e9e9e9e9e9e9e9e9e9ec1d6d6d6d6d6d6d6d6d6d6d6
  24.507 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  24.508 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d2a89e9e9e9e
  24.509 +9e9e9e9e9e9e9e9e9e9e9ed4ffffffffffffffffffffffffffffffffffffffffffffffff
  24.510 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.511 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.512 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.513 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.514 +ffffffffffffffffffffffffffffffffffffffffffc29e9e9e9e9e9e9e9e9e9e9e9e9e9e
  24.515 +9ec1d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  24.516 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  24.517 +d6d6d6d6d6d6d6d6d6d2a89e9e9e9e9e9e9e9e9e9e9e9e9e9e9eecffffffffffffffffff
  24.518 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.519 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.520 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.521 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.522 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffda9e
  24.523 +9e9e8027272727272727272727272b353535353535353535353535353535353535353535
  24.524 +353535353535add6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  24.525 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c85035353535353535322727272727272727272727
  24.526 +272727272d3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f5fefffffffffffffffffff
  24.527 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.528 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.529 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.530 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.531 +fffffffffffffffffffffff2a49e9e9e9e45000000000000000000000000000000000000
  24.532 +00000000000000000000000000000000000000001ac8d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  24.533 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6ad28000000000000
  24.534 +000000000000000000000000000000000000000000000000000000000000000000000000
  24.535 +00003fefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.536 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.537 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.538 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.539 +ffffffffffffffffffffffffffffffffffffffffffffffffffb69e9e9e9e9e9e27000000
  24.540 +000000000000000000000000000000000000000000000000000000000000000000000050
  24.541 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  24.542 +d6d6d6d6d6930d0000000000000000000000000000000000000000000000000000000000
  24.543 +0000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffff
  24.544 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.545 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.546 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.547 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.548 +ffffd49e9e9e9e9e9e9e9413000000000000000000000000000000000000000000000000
  24.549 +000000000000000000000000000085d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  24.550 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d66b0000000000000000000000000000000000
  24.551 +0000000000000000000000000000000000000000000000000000000fbfffffffffffffff
  24.552 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.553 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.554 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.555 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.556 +fffffffffffffffffffffffffffffff8a49e9e9e9e9e9e9e9e8009000000000000000000
  24.557 +000000000000000000000000000000000000000000000000000000000dadd6d6d6d6d6d6
  24.558 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c83500000000
  24.559 +000000000000000000000000000000000000000000000000000000000000000000000000
  24.560 +000000002fdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.561 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.562 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.563 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.564 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc29e9e9e9e9e9e
  24.565 +9e9e9e9e6200000000000000000000000000000000000000000000000000000000000000
  24.566 +0000000000000028c8d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  24.567 +d6d6d6d6d6d6d6ad1a000000000000000000000000000000000000000000000000000000
  24.568 +00000000000000000000000000000000006fffffffffffffffffffffffffffffffffffff
  24.569 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.570 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.571 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.572 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.573 +ffffffffffffe69e9e9e9e9e9e9e9e9e9e9e9e4500000000000000000000000000000000
  24.574 +0000000000000000000000000000000000000000000050d6d6d6d6d6d6d6d6d6d6d6d6d6
  24.575 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6850d0000000000000000000000000000
  24.576 +00000000000000000000000000000000000000000000000000000000000fafffffffffff
  24.577 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.578 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.579 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.580 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.581 +ffffffffffffffffffffffffffffffffffffffffb69e9e9e9e9e9e9e9e9e9e9e9e9e2b00
  24.582 +000000000000000000000000000000000000000000000000000000000000000000000000
  24.583 +0085d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d65d0000
  24.584 +000000000000000000000000000000000000000000000000000000000000000000000000
  24.585 +0000000000002fcfffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.586 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.587 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.588 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.589 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09e9e
  24.590 +9e9e9e9e9e9e9e9e9e9e9ea8c81a00000000000000000000000000000000000000000000
  24.591 +0000000000000000000000000000000dadd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  24.592 +d6d6d6d6d6d6d6d6d6c83500000000000000000000000000000000000000000000000000
  24.593 +000000000000000000000000000000000000005fefffffffffffffffffffffffffffffff
  24.594 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.595 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.596 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.597 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.598 +ffffffffffffffffffffffaa9e9e9e9e9e9e9e9e9e9e9e9e9ecbd6ad0d00000000000000
  24.599 +00000000000000000000000000000000000000000000000000000000000028d6d6d6d6d6
  24.600 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6ad1a000000000000000000000000
  24.601 +00000000000000000000000000000000000000000000000000000000000000009fffffff
  24.602 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.603 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.604 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.605 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.606 +ffffffffffffffffffffffffffffffffffffffffffffffffda9e9e9e9e9e9e9e9e9e9e9e
  24.607 +9e9ebad6d6d6850000000000000000000000000000000000000000000000000000000000
  24.608 +0000000000000000005dd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d685
  24.609 +0d0000000000000000000000000000000000000000000000000000000000000000000000
  24.610 +00000000000000001fcfffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.611 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.612 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.613 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.614 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.615 +ffffaa9e9e9e9e9e9e9e9e9e9e9e9ea5d6d6d6d6d65d0000000000000000000000000000
  24.616 +00000000000000000000000000000000000000000000000093d6d6d6d6d6d6d6d6d6d6d6
  24.617 +d6d6d6d6d6d6d6d6d6d6d6d65d0000000000000000000000000000000000000000000000
  24.618 +00000000000000000000000000000000000000000049efffffffffffffffffffffffffff
  24.619 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.620 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.621 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.622 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.623 +ffffffffffffffffffffffffffffffe69e9e9e9e9e9e9e9e9e9e9e9e9ec8d6d6d6d6d6d6
  24.624 +350000000000000000000000000000000000000000000000000000000000000000000000
  24.625 +00000dbbd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c83500000000000000000000
  24.626 +000000000000000000000000000000000000000000000000000000000000000000004faa
  24.627 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.628 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.629 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.630 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.631 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb69e9e9e9e9e9e
  24.632 +9e9e9e9e9e9eacd6d6d6d6d6d6d6c81a0000000000000000000000000000000000000000
  24.633 +000000000000000000000000000000000028d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  24.634 +d6ad1a000000000000000000000000000000000000000000000000000000000000000000
  24.635 +0000000000000000000009769e9ee0ffffffffffffffffffffffffffffffffffffffffff
  24.636 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.637 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.638 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.639 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.640 +fffffffffffff29e9e9e9e9e9e9e9e9e9e9e9e9ecbd6d6d6d6d6d6d6d6ad0d0000000000
  24.641 +00000000000000000000000000000000000000000000000000000000000000005dd6d6d6
  24.642 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6850d0000000000000000000000000000000000000000
  24.643 +00000000000000000000000000000000000000000000001d949e9e9eb6ffffffffffffff
  24.644 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.645 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.646 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.647 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.648 +ffffffffffffffffffffffffffffffffffffffffc29e9e9e9e9e9e9e9e9e9e9e9eb3d6d6
  24.649 +d6d6d6d6d6d6d6d685000000000000000000000000000000000000000000000000000000
  24.650 +000000000000000000000093d6d6d6d6d6d6d6d6d6d6d6d6d6d6d65d0000000000000000
  24.651 +000000000000000000000000000000000000000000000000000000000000000000000000
  24.652 +459e9e9e9e9e9ef2ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.653 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.654 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.655 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.656 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa49e
  24.657 +9e9e9e9e9e9e9e9e9e9e9ecfd6d6d6d6d6d6d6d6d6d6d65d000000000000000000000000
  24.658 +000000000000000000000000000000000000000000000000000dbbd6d6d6d6d6d6d6d6d6
  24.659 +d6d6d6c83500000000000000000000000000000000000000000000000000000000000000
  24.660 +000000000000000000000000096c9e9e9e9e9e9e9ec8ffffffffffffffffffffffffffff
  24.661 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.662 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.663 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.664 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.665 +ffffffffffffffffffffffda9e9e9e9e9e9e9e9e9e9e9e9eacd6d6d6d6d6d6d6d6d6d6d6
  24.666 +d6d635000000000000000000000000000000000000000000000000000000000000000000
  24.667 +0000000035d6d6d6d6d6d6d6d6d6d6d6ad1a000000000000000000000000000000000000
  24.668 +000000000000000000000000000000000000000000000000001d8a9e9e9e9e9e9e9e9eaa
  24.669 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.670 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.671 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.672 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.673 +ffffffffffffffffffffffffffffffffffffffffffffffffffbc9e9e9e9e9e9e9e9e9e9e
  24.674 +9e9ec8d6d6d6d6d6d6d6d6d6d6d6d6d6c81a000000000000000000000000000000000000
  24.675 +000000000000000000000000000000000000006bd6d6d6d6d6d6d6d6d6850d0000000000
  24.676 +000000000000000000000000000000000000000000000000000000000000000000000000
  24.677 +00003b949e9e9e9e9e9e9e9e9e9ee0ffffffffffffffffffffffffffffffffffffffffff
  24.678 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.679 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.680 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.681 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.682 +fffff89e9e9e9e9e9e9e9e9e9e9e9ea5d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6ad0d000000
  24.683 +00000000000000000000000000000000000000000000000000000000000000000000a0d6
  24.684 +d6d6d6d6d6d65d0000000000000000000000000000000000000000000000000000000000
  24.685 +00000000000000000000000000000d7b9e9e9e9e9e9e9e9e9e9e9e9ec2ffffffffffffff
  24.686 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.687 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.688 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.689 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.690 +ffffffffffffffffffffffffffffffffda9e9e9e9e9e9e9e9e9e9e9e9ebdd6d6d6d6d6d6
  24.691 +d6d6d6d6d6d6d6d6d6d68500000000000000000000000000000000000000000000000000
  24.692 +0000000000000000000000000dc8d6d6d6d6c83500000000000000000000000000000000
  24.693 +0000000000000000000000000000000000000000000000000000001aadd6a59e9e9e9e9e
  24.694 +9e9e9e9e9e9ea4ffffffffffffffdfbf8f7f5f3f3f1f0000000000000000000000000000
  24.695 +001f3f3f5f7f8fbfcfffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.696 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.697 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.698 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc9e9e9e9e9e
  24.699 +9e9e9e9e9e9e9ed2d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d65000000000000000000000
  24.700 +00000000000000000000000000000000000000000000000000000035d6d6d6ad0d000000
  24.701 +000000000000000000000000000000000000000000000000000000000000000000000000
  24.702 +0000000042c8d6d6bd9e9e9e9e9e9e9e9e9e9e9e9ee6ffcf9f5f3f000000000000000000
  24.703 +0000000000000000000000000000000000000000000000002f5f8fcfffffffffffffffff
  24.704 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.705 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf8f7f
  24.706 +3f3f0f000000000000000000003f3f7f9fdfffffffffffffffffffffffffffffffffffff
  24.707 +ffffffffffffffffa49e9e9e9e9e9e9e9e9e9e9eafd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  24.708 +d6d6d6d62800000000000000000000000000000000000000000000000000000000000000
  24.709 +0000000000006bd685000000000000000000000000000000000000000000000000000000
  24.710 +000000000000000000000000000000000078d6d6d6d6cf9e9e9e9e9e9e9e9e9e9e9e6c47
  24.711 +1f0000000000000000000000000000000000000000000000000000000000000000000000
  24.712 +0000000000000f4f9fdfffffffffffffffffffffffffffffffffffffffffffffffffffff
  24.713 +ffbf3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3fefffffffffff
  24.714 +ffffffffffffffaf6f2f000000000000000000000000000000000000000000001f6fcfff
  24.715 +ffffffffffffffffffffffffffffffffffffffffffe69e9e9e9e9e9e9e9e9e9e9e9ec1d6
  24.716 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c80d00000000000000000000000000000000
  24.717 +000000000000000000000000000000000000000000350000000000000000000000000000
  24.718 +00000000000000000000000000000000000000000000000000000000000da0d6d6d6d6d6
  24.719 +d6a89e9e9e9e9e9e9e763b09000000000000000000000000000000000000000000000000
  24.720 +0000000000000000000000000000000000000000000000004f9fffffffffffffffffffff
  24.721 +ffffffffffffffffffffffffffffff6f0000000000000000000000000000000000000000
  24.722 +000000000000001fffffffffffffffffffff9f4f00000000000000000000000000000000
  24.723 +000000000000000000000000003fafffffffffffffffffffffffffffffffffffffffffce
  24.724 +9e9e9e9e9e9e9e9e9e9e9e9ed2d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6ad0000
  24.725 +000000000000000000000000000000000000000000000000000000000000000000000000
  24.726 +000000000000000000000000000000000000000000000000000000000000000000000000
  24.727 +00000000000035c8d6d6d6d6d6d6d6bd9e9e9e9e94621300000000000000000000000000
  24.728 +000000000000000000000000000000000000000000000000000000000000000000000000
  24.729 +000000000f7fefffffffffffffffffffffffffffffffffffffffffffff3f000000000000
  24.730 +0000000000000000000000000000000000000000004fffffffffffffffdf6f0f00000000
  24.731 +00000000000000000000000000000000000000000000000000000000003fdfffffffffff
  24.732 +ffffffffffffffffffffffffffb69e9e9e9e9e9e9e9e9e9e9eafd6d6d6d6d6d6d6d6d6d6
  24.733 +d6d6d6d6d6d6d6d6d6d6d6d6850000000000000000000000000000000000000000000000
  24.734 +000000000000000000000000000000000000000000000000000000000000000000000000
  24.735 +000000000000000000000000000000000000005dd6d6d6d6d6d6d6d6d6cf9e9e944f0900
  24.736 +000000000000000000000000000000000000000000000000000000000000000000000000
  24.737 +00000000000000000000000000000000000000000f8fffffffffffffffffffffffffffff
  24.738 +ffffffffffffff000000000000000000000000000000000000000000000000000000008f
  24.739 +ffffffffffdf5f0000000000000000000000000000000000000000000000000000000000
  24.740 +00000000000000000f9fffffffffffffffffffffffffffffffffff9e9e9e9e9e9e9e9e9e
  24.741 +9e9e9ebdd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6500000000000000000
  24.742 +000000000000000000000000000000000000000000000000000000000000000000000000
  24.743 +000000000000000000000000000000000000000000000000000000000000000d93d6d6d6
  24.744 +d6d6d6d6d6d6d6d69b4f0900000000000000000000000000000000000000000000000000
  24.745 +000000000000000000000000000000000000000000000000000000000000000000000000
  24.746 +2fcfffffffffffffffffffffffffffffffffffffbf000000000000000000000000000000
  24.747 +00000000000000000000000000bfffffffef5f0000000000000000000000000000000000
  24.748 +0000000000000000000000000000000000000000000000009fffffffffffffffffffffff
  24.749 +ffffffffe69e9e9e9e9e9e9e9e9e9e9e9ecbd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  24.750 +d6d6d6d6d6d6280000000000000000000000000000000000000000000000000000000000
  24.751 +000000000000000000000000000000000000000000000000000000000000000000000000
  24.752 +000000000000000028bbd6d6d6d6d6d6d6d6d6d6d6850d00000000000000000000000000
  24.753 +000000000000000000000000000000000000000000000000000000000000000000000000
  24.754 +0000000000000000000000000000000f9fffffffffffffffffffffffffffffffffff8f00
  24.755 +000000000000000000000000000000000000000000000000000000ffffff8f0f00000000
  24.756 +000000000000000000000000000000000000000000000000000000000000000000000000
  24.757 +0000009fffffffffffffffffffffffffffffd49e9e9e9e9e9e9e9e9e9e9ea1d6d6d6d6d6
  24.758 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c80d0000000000000000000000000000
  24.759 +000000000000000000000000000000000000000000000000000000000000000000000000
  24.760 +00000000000000000000000000000000000000000050c8d6d6d6d6d6d6d6d6d6d6ad3500
  24.761 +000000000000000000000000000000000000000000000000000000000000000000000000
  24.762 +000000000000000000000000000000000000000000000000000000000000006fffffffff
  24.763 +ffffffffffffffffffffffff5f0000000000000000000000000000000000000000000000
  24.764 +000000003fffef3f00000000000000000000000000000000000000000000000000000000
  24.765 +000000000000000000000000000000000000bfffffffffffffffffffffffffffc89e9e9e
  24.766 +9e9e9e9e9e9e9e9eafd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6ad
  24.767 +000000000000000000000000000000000000000000000000000000000000000000000000
  24.768 +0000000000000000000000000000000000000000000000000000000000000000000d85d6
  24.769 +d6d6d6d6d6d6d6d6d6d66b00000000000000000000000000000000000000000000000000
  24.770 +000000000000000000000000000000000000000000000000000000000000000000000000
  24.771 +000000000000000000005fffffffffffffffffffffffffffffff1f000000000000000000
  24.772 +0000000000000000000000000000000000006fbf0f000000000000000000000000000000
  24.773 +00000000000000000000000000000000000000000000000000000000000000001fffffff
  24.774 +ffffffffffffffffffffb69e9e9e9e9e9e9e9e9e9e9ebad6d6d6d6d6d6d6d6d6d6d6d6d6
  24.775 +d6d6d6d6d6d6d6d6d6d6d6d6d6d685000000000000000000000000000000000000000000
  24.776 +000000000000000000000000000000000000000000000000000000000000000000000000
  24.777 +0000000000000000000028add6d6d6d6d6d6d6d6d6d6c835000000000000000000000000
  24.778 +000000000000000000000000000000000000000000000000000000000000000000000000
  24.779 +000000000000000000000000000000000000000000000000005fffffffffffffffffffff
  24.780 +ffffffef000000000000000000000000000000000000000000000000000000003f000000
  24.781 +000000000000000000000000000000000000000000000000000000000000000000000000
  24.782 +00000000000000000000009fffffffffffffffffffffffffa49e9e9e9e9e9e9e9e9e9e9e
  24.783 +c8d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d650000000000000
  24.784 +000000000000000000000000000000000000000000000000000000000000000000000000
  24.785 +000000000000000000000000000000000000000000000042c8d6d6d6d6d6d6d6d6d6d6ad
  24.786 +0d0000000000000000000000000000000000000000000000000000000000000000000000
  24.787 +000000000000000000000000000000000000000000000000000000000000000000000000
  24.788 +000000007fffffffffffffffffffffffffaf000000000000000000000000000000000000
  24.789 +000000000000000000000000000000000000000000000000000000000000000000000000
  24.790 +000000000000000000000000000000000000000000000000002fffffffffffffffffffff
  24.791 +ffff9e9e9e9e9e9e9e9e9e9e9e9ed2d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
  24.792 +d6d6d6d6d6d6d6d628000000000000000000000000000000000000000000000000000000
  24.793 +000000000000000000000000000000000000000000000000000000000000000000000000
  24.794 +78d6d6d6d6d6d6d6d6d6d6d6850000000000000000000000000000000000000000000000
  24.795 +000000000000000000000000001f3f3f3f3f3f3f00000000000000000000000000000000
  24.796 +00000000000000000000000000000000000000bfffffffffffffffffffffff7f00000000
  24.797 +000000000000000000000000000000000000000000000000000000000000000000000000
  24.798 +000000000000000000000000000000000000000000000000000000000000000000000000
  24.799 +00000000dfffffffffffffffffffffe69e9e9e9e9e9e9e9e9e9e9e9ed6d6d6d6d6d6d6d6
  24.800 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c80d000000000000000000000000
  24.801 +000000000000000000000000000000000000000000000000000000000000000000000000
  24.802 +00000000000000000000000