XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1 XX1
XX1
HUMAN & AI BECOME ONE

import pygame
import sys
# Initialize Pygame
pygame.init()
# Screen settings
WIDTH, HEIGHT = 600, 600
TILE_SIZE = 30
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Simple Pac-Man")
# Colors
BLACK = (0, 0, 0)
BLUE = (0, 0, 255)
YELLOW = (255, 255, 0)
WHITE = (255, 255, 255)
# Maze layout (W = wall, . = dot, ' ' = empty)
maze = [
"WWWWWWWWWWWWWWWWWW",
"W........W.......W",
"W.WWWW.W.W.WWWW.WW",
"W.WWWW.W.W.WWWW.WW",
"W.................W",
"W........W........W",
"W.WWWW.W.W.WWWW.WW",
"W.................W",
"WWWWWWWWWWWWWWWWWW",
]
# Create wall and dot positions
walls = []
dots = []
for row_idx, row in enumerate(maze):
for col_idx, tile in enumerate(row):
x, y = col_idx * TILE_SIZE, row_idx * TILE_SIZE
if tile == 'W':
walls.append(pygame.Rect(x, y, TILE_SIZE, TILE_SIZE))
elif tile == '.':
dots.append(pygame.Rect(x + TILE_SIZE//2 - 3, y + TILE_SIZE//2 - 3, 6, 6))
# Player
player = pygame.Rect(TILE_SIZE + 2, TILE_SIZE + 2, TILE_SIZE - 4, TILE_SIZE - 4)
player_speed = 3
score = 0
clock = pygame.time.Clock()
AI coded Pac-Man : )
# Game loop
running = True
while running:
screen.fill(BLACK)
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
keys = pygame.key.get_pressed()
dx = dy = 0
if keys[pygame.K_LEFT]: dx = -player_speed
if keys[pygame.K_RIGHT]: dx = player_speed
if keys[pygame.K_UP]: dy = -player_speed
if keys[pygame.K_DOWN]: dy = player_speed
# Move player and check for wall collisions
next_pos = player.move(dx, 0)
if not any(next_pos.colliderect(wall) for wall in walls):
player = next_pos
next_pos = player.move(0, dy)
if not any(next_pos.colliderect(wall) for wall in walls):
player = next_pos
# Draw walls
for wall in walls:
pygame.draw.rect(screen, BLUE, wall)
# Draw and check dot collisions
for dot in dots[:]:
if player.colliderect(dot):
dots.remove(dot)
score += 10
else:
pygame.draw.ellipse(screen, WHITE, dot)
# Draw player
pygame.draw.ellipse(screen, YELLOW, player)
# Show score
font = pygame.font.SysFont(None, 36)
score_text = font.render(f"Score: {score}", True, WHITE)
screen.blit(score_text, (10, 10))
pygame.display.flip()
clock.tick(60)
pygame.quit()
sys.exit()

XX1
Educating & Enriching life in an AI Era.
Education
Empower your mindset with cutting-edge AI technology.


Enrich
Optimise your vision and excel your decision-making with the drive of AI innovation.
Era
Generations apart coming together in a new era, thanks to XX1 & AI.

XX1
XX1


