Intermediate
You have learned the syntax, wrestled with list comprehensions, and maybe even built a web API. But at some point every Python developer asks the same question: can I actually build a game with this? The answer is yes — and Python’s pygame library makes it surprisingly accessible. Whether you want to build a simple platformer, a Pong clone, or a top-down shooter, PyGame gives you the primitives you need: a game loop, sprite management, keyboard input, collision detection, and a drawing surface that updates 60 times per second.
PyGame is a set of Python modules built on top of SDL (Simple DirectMedia Layer), a C library that handles graphics, sound, and input across Windows, macOS, and Linux. You install it with pip install pygame, and from that point everything happens in pure Python. You do not need a game engine, a shader language, or a degree in computer graphics. If you can write a for loop and create a Python class, you can build a working 2D game today.
This article walks you through everything you need to get started with PyGame in Python. We will cover the game loop pattern that makes real-time graphics work, drawing shapes and images to the screen, handling keyboard and mouse input, creating reusable sprite classes, detecting collisions between objects, and managing game state. By the end you will have built a fully playable Pong clone from scratch.
PyGame Quick Example: A Moving Square
The fastest way to see PyGame in action is to open a window and move a shape around with the arrow keys. This 30-line script captures the entire structure of a PyGame game:
# moving_square.py
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Moving Square")
clock = pygame.time.Clock()
x, y = 300, 220
speed = 4
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]: x -= speed
if keys[pygame.K_RIGHT]: x += speed
if keys[pygame.K_UP]: y -= speed
if keys[pygame.K_DOWN]: y += speed
screen.fill((30, 30, 30))
pygame.draw.rect(screen, (0, 200, 100), (x, y, 40, 40))
pygame.display.flip()
clock.tick(60)
pygame.quit()
Output:
A 640x480 window opens with a green square you can move with the arrow keys at 60 fps.
Four lines do all the heavy lifting: pygame.init() starts every PyGame subsystem, pygame.display.set_mode() creates the window, clock.tick(60) caps the frame rate at 60 FPS, and pygame.display.flip() pushes everything you drew onto the screen. The while running loop is the game loop — it runs continuously until the player closes the window. We will break down every piece of this pattern in the sections below.
What Is PyGame and How Does It Work?
PyGame is a game development library for Python that wraps the SDL2 multimedia library. SDL handles low-level tasks — opening a window, reading keyboard/mouse events, blitting pixel data to the screen — while PyGame gives you a Pythonic API on top of it. Every PyGame program follows the same fundamental structure: initialize, create a window, enter the game loop, handle events, update state, draw, and repeat.
Think of the game loop like a film projector. A film is a sequence of still frames shown fast enough that your brain perceives motion. Your game is the same — you redraw the entire screen every frame (typically 60 times per second), and each frame shows the objects in their slightly updated positions. clock.tick(60) tells PyGame to pause long enough so each iteration takes at least 1/60th of a second, keeping the animation smooth regardless of how fast the computer is.
| Component | PyGame Tool | Purpose |
|---|---|---|
| Window | pygame.display.set_mode() | Creates the drawing surface |
| Game loop | while running: + clock.tick() | Keeps the game running at fixed FPS |
| Input | pygame.event.get(), pygame.key.get_pressed() | Keyboard and mouse input |
| Drawing | pygame.draw.*, screen.blit() | Renders shapes and images |
| Sprites | pygame.sprite.Sprite | Reusable game object class |
| Collision | pygame.Rect.colliderect() | Detects overlapping rectangles |
| Sound | pygame.mixer | Plays audio files |
Install PyGame before running any of the examples below:
# Install PyGame
pip install pygame
Understanding the Game Loop
The game loop is the heartbeat of every PyGame program. Understanding it deeply will save you from mysterious bugs later. Here is the canonical three-phase pattern — events, update, draw — with comments explaining each phase:
# game_loop.py
import pygame
pygame.init()
screen = pygame.display.set_mode((800, 600))
clock = pygame.time.Clock()
FPS = 60
player_x = 400
player_y = 300
running = True
while running:
# --- PHASE 1: Handle events ---
# pygame.event.get() drains the event queue each frame.
# If you skip this call, the window freezes and can't be closed.
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
running = False
# --- PHASE 2: Update state ---
# Read keys that are currently held down (not just pressed this frame).
# pygame.key.get_pressed() returns a snapshot of the keyboard state.
keys = pygame.key.get_pressed()
if keys[pygame.K_w]: player_y -= 3
if keys[pygame.K_s]: player_y += 3
if keys[pygame.K_a]: player_x -= 3
if keys[pygame.K_d]: player_x += 3
# Keep the player inside the window boundaries
player_x = max(20, min(780, player_x))
player_y = max(20, min(580, player_y))
# --- PHASE 3: Draw ---
screen.fill((20, 20, 40)) # Clear screen to dark blue
pygame.draw.circle(screen, (255, 200, 0), (player_x, player_y), 20)
pygame.display.flip() # Show the new frame
clock.tick(FPS) # Wait until 1/FPS seconds have passed
pygame.quit()
Output:
A window opens with a yellow circle you move using WASD keys. It stays within the window bounds. Press Escape to quit.
The most important detail is event handling is mandatory. Without pygame.event.get(), the operating system sees your window as unresponsive and will freeze it. You must drain the event queue every frame, even if you do not use the events. The separation between event.type == pygame.KEYDOWN (fires once when a key is pressed) and pygame.key.get_pressed() (fires every frame while a key is held) is the difference between a snappy player vs a character that moves in jerky steps.
Sprites: Reusable Game Objects
Hardcoding player position as two variables works for a tutorial, but the moment you need multiple enemies, multiple bullets, and a player, you need a better structure. PyGame’s Sprite class is the standard way to model game objects:
# sprites_demo.py
import pygame
pygame.init()
screen = pygame.display.set_mode((800, 500))
clock = pygame.time.Clock()
class Player(pygame.sprite.Sprite):
def __init__(self):
super().__init__()
# Create a surface for the sprite and fill it with a color
self.image = pygame.Surface((50, 50))
self.image.fill((0, 180, 255))
self.rect = self.image.get_rect(center=(400, 250))
self.speed = 5
def update(self):
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]: self.rect.x -= self.speed
if keys[pygame.K_RIGHT]: self.rect.x += self.speed
if keys[pygame.K_UP]: self.rect.y -= self.speed
if keys[pygame.K_DOWN]: self.rect.y += self.speed
# Clamp to window
self.rect.clamp_ip(pygame.Rect(0, 0, 800, 500))
class Enemy(pygame.sprite.Sprite):
def __init__(self, x, y, speed):
super().__init__()
self.image = pygame.Surface((40, 40))
self.image.fill((220, 50, 50))
self.rect = self.image.get_rect(topleft=(x, y))
self.speed = speed
def update(self):
self.rect.x += self.speed
if self.rect.right > 800 or self.rect.left < 0:
self.speed = -self.speed # Bounce off walls
player = Player()
enemies = pygame.sprite.Group(
Enemy(100, 100, 2),
Enemy(400, 200, -3),
Enemy(600, 350, 2),
)
all_sprites = pygame.sprite.Group(player, *enemies.sprites())
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
all_sprites.update()
# Check if player was hit by any enemy
hits = pygame.sprite.spritecollide(player, enemies, False)
if hits:
player.image.fill((255, 50, 50)) # Flash red on hit
else:
player.image.fill((0, 180, 255))
screen.fill((15, 15, 30))
all_sprites.draw(screen)
pygame.display.flip()
clock.tick(60)
pygame.quit()
Output:
A window shows a blue player square (WASD to move) and three red enemy squares that bounce. The player turns red when any enemy overlaps it.
The power of pygame.sprite.Group is that calling all_sprites.update() calls update() on every sprite in the group, and all_sprites.draw(screen) blits every sprite's image at its rect position -- in one line. pygame.sprite.spritecollide(player, enemies, False) returns a list of enemies whose rectangles overlap the player; the third argument controls whether colliding sprites are removed from the group (True would kill them, False leaves them alive).
Collision Detection and Game State
Collision detection is the core mechanic of amost every 2D game. PyGame provides several levels of collision precision. Rectangle collision (Rect.colliderect()) is the fastest and good enough for most games. Pixel-perfect collision (pygame.sprite.collide_mask()) is available for oddly-shaped sprites where rectangle overlap is too imprecise.
# collision_types.py
import pygame
pygame.init()
# --- Rect collision (fastest) ---
player_rect = pygame.Rect(100, 100, 50, 50)
bullet_rect = pygame.Rect(120, 110, 10, 20)
if player_rect.colliderect(bullet_rect):
print("Rect collision: hit!")
# --- Point-in-rect collision ---
mouse_pos = (125, 125)
if player_rect.collidepoint(mouse_pos):
print("Point collision: mouse is over player!")
# --- Group collision with kill ---
# spritecollide(sprite, group, dokill)
# dokill=True removes the colliding sprites from the group automatical[K���\�Y�[�܈�[]�][��[�[ZY\ΈH�[][�[�[^H\�\X\�ۈ[\X�����\���[]
Y�[YK���]K���]JN��Y���[�]���[�JN���\\�
K���[�]��
B��[��[XY�HHY�[YK��\��X�J
�
JB��[��[XY�K��[
�MK�MK
JB��[���X�H�[��[XY�K��]ܙX�
�[�\�JJJB��Y�\]J�[�N���[���X��HOH
��[ݙH\�Y��[���X�����H���[���[
H��[[ݙH���H[ܛ�\��[�ٙ��ܙY[����\��\��]
Y�[YK���]K���]JN��Y���[�]���[�JN���\\�
K���[�]��
B��[��[XY�HHY�[YK��\��X�J
��
JB��[��[XY�K��[
�
JB��[���X�H�[��[XY�K��]ܙX�
�Y�JJJB���[]�HY�[YK���]K�ܛ�\
�[]
�
JB�\��]�HY�[YK���]K�ܛ�\
\��]
M�L
K\��]
�ML
JB������\��ۙH��[YHو��\�[ۜ�[]˝\]J
B�]�HY�[YK���]K�ܛ�\��YJ�[]�\��]��YK�YJB��]�H؝[]���]N��\��]���]\��]_B��[�
���[]�]]\��]Έ�[�]�_H�B����O���O������ۙϓ�]]����ۙϏ����O���O��X���\�[ێ�]B��[���\�[ێ�[�\�H\�ݙ\�^Y\�B��[]�]]\��]Έ����O���O����HY��\�[��H�]�Y[���O���]X��YO���O�[���O�ܛ�\��YO���O����O���]X��YO���O��X���ۙH��]HY�Z[��Hܛ�\�[H��O�ܛ�\��YO���O��X���]�\�H��]H[�ܛ�\HY�Z[��]�\�H��]H[�ܛ�\���]����O���[���O�\��[Y[�����O��YO���O��XZ�H��\�[ۜ�]]�X]X�[H\���H��H�[][�H\��]KHH�X[�ۙK[[�HYX�[�X��܈���[���[Y\ˏ�����YH�^X[�\��ܙH���[�\�[��^[���ܙO������]�\�H�[YH�YY�H��ܙH\�^K�Q�[YI����\�[H]�[�H�[�\�[�H[��[Y�\�[H�܈H�Z[Z[���H�\��X�K[��]]�\��X�H�H�ܙY[�Z�H[�H�\�[XY�N������O���O����ܙW�\�^K�B�[\ܝY�[YB��Y�[YK�[�]
B��ܙY[�HY�[YK�\�^K��]�[�J
�
JB�����HY�[YK�[YK�����
B���Y�[YK����
�ٚ[K�^�JHKH\���ۙH�܈HY�][�Z[Z[�����\��HHY�[YK����
�ۙK
�
B����X[HY�[YK����
�ۙK̊B����ܙHH�]�\�H�[��[��H�YB���[H�[��[���܈]�[�[�Y�[YK�]�[���]
N��Y�]�[��\HOHY�[YK�URU���[��[��H�[�B�Y�]�[��\HOHY�[YK��VQ�ӈ[�]�[���^HOHY�[YK����P�N����ܙH
�HL��[][]H��ܚ[��H�[����ܙY[���[
LL�JJB����[�\�^�H�\��X�K[��]]��ܙ[�]\��ܙW��\��H��\��K��[�\�����ܙN����ܙ_H��YK
�MK��
JB�]�\���\��H���X[��[�\���]�\Έ�]�\�H��YK
���
JB���ܙY[���]
��ܙW��\��
��
JB��ܙY[���]
]�\���\��
�L
JB����[�\�Y��\���P�H���ܙH�[��[�H���X[��[�\���\���P�H���ܙH��YK
LLL
JB�[�ܙX�H[���]ܙX�
�[�\�J̌�
JB��ܙY[���]
[�[�ܙX�
B��Y�[YK�\�^K��\
B����˝X��
�
B��Y�[YK�]Z]
B����O���O������ۙϓ�]]����ۙϏ����O���O�H�[����������ܙN��[��]�\Έȋ��\���P�H�[�ܙ[Y[�H��ܙH[��X[[YK����O���O������O����[�\�^[�X[X\���܊O���O��]\���H�Y�[\�Q�[YH�\��X�K�H�X�ۙ\��[Y[�
��O��YO���O�H[�X�\�[�X[X\�[���܈�[��\�^�ۘ�H[�H]�HH�\��X�H[�H��][ۈ]�]��O��]
�\��
JJO���O�܋[ܙH�^X�K�]��O��\����]ܙX�
�[�\�J���JK����O�KHH��O��]ܙX����O�[\�]�[�H[��܈H�X�[��H�H[�Hو]��ܛ�\��Y�\�܈�[�\��X�\��\�X\�Y\�[�X[�X[Hٙ��][���H[�H^�Y�����KKHSPQ�W�P�R�T����\��HZ[�[��H�X[���ܙX��\�ۈH��X���[�[H]ۈ��H�ܛ��X�ݙH]��\[ێ�����[�\�
HKH[�\���ܙK\�^YY�[�\�Yۚ]K�Y��XX�K��KO����YH��X[[Y�KY^[\H���X[SY�H^[\N�ۙ�[�]ۏ������[YH��Z[��Y][��^XX�K�\�ۙ�[\[Y[�][ۈ\�[�\�L�[�\��\ܝ���^Y\��
���[�T��ӊK�X�����ܙK[�\�\�]�\�][���H�ݙ\�Y��[YH����]\���\�[ۋ[�^�[�\�[�ˏ�����O���O��ۙ˜B�[\ܝY�[YK�\�Y�[YK�[�]
B��H
���ܙY[�HY�[YK�\�^K��]�[�J
�
JB�Y�[YK�\�^K��]��\[ۊ�ۙ�KH]ۈY][ۈ�B�����HY�[YK�[YK�����
B��HY�[YK����
�ۙK
̊B��X[HY�[YK����
�ۙK͊B�����ܜ�UHH
�MK�MK�MJB��P��H
B�ԐVHH
B�QS��H
�MK��
B���\��YJY�[YK���]K���]JN��Y���[�]���[�\��^K�ۗ��^JN���\\�
K���[�]��
B��[��[XY�HHY�[YK��\��X�J
ML
JB��[��[XY�K��[
�UJB��[���X�H�[��[XY�K��]ܙX�
�[�\�J���JB��[���YYH
���[��\��^K�[���ۗ��^HH\��^K�ۗ��^B��Y�\]J�[�N���^\�HY�[YK��^K��]��\��Y
B�Y��^\���[��\��^WN��[���X��HOH�[���YY�Y��^\���[���ۗ��^WN��[���X��H
�H�[���YY��[���X���[\�\
Y�[YK��X�
�
JB���\���[
Y�[YK���]K���]JN��Y���[�]���[�N���\\�
K���[�]��
B��[��[XY�HHY�[YK��\��X�J
M�M�JB�Y�[YK��]˘�\��J�[��[XY�KQS��
K
B��[��[XY�K��]���ܚ�^J�P��B��[���X�H�[��[XY�K��]ܙX�
�[�\�J�������JB��[����[���HH
K
��Y�\]J�[�Y\�N���[���X��
�H�[�����[���X��H
�H�[���B����[��Hٙ��؛��B�Y��[���X���H܈�[���X�����H�H���[���HH\�[���B����[��Hٙ�Y\�܈YH[�Y\�Y��[���X����Y\�X�
YK��X�
N���[���H\�[�����[���H[�
�[���
�K�
JH��YY\�Y�HXX�]��Y���ܙY
�[�N������]\���HY��Y�^Y\���ܙYLHY�Y�^Y\���ܙY�\��\�K�����Y��[���X���Y���]\��H�Y�Z\��YKH�Y���ܙ\Y��[���X��Y��Έ�]\��LH��Y�Z\��YKHY���ܙ\�]\����Y��\�]
�[�N���[���X���[�\�H
�������B��[����[���HH
K
��HHYJ�Y�[YK����Y�[YK����B��HYJ
��Y�[YK���TY�[YK����ӊB��[H�[
B�Y\�HY�[YK���]K�ܛ�\
K�B�[���]\�HY�[YK���]K�ܛ�\
K��[
B����ܙW�Y���ܙWܚY�H��S����ԑHH
B���[H�YN���܈]�[�[�Y�[YK�]�[���]
N��Y�]�[��\HOHY�[YK�URU��Y�[YK�]Z]
N��\˙^]
B��Y\˝\]J
B��[�\]JY\˜��]\�
JB���\�[H�[���ܙY
B�Y��\�[OHN����ܙWܚY�
�HN��[��\�]
B�[Y��\�[OHLN����ܙW�Y�
�HN��[��\�]
B����]�ܙY[���[
�P��B�Y�[YK��]˛[�J�ܙY[�ԐVK
����
K
����
K�H��[�\�[�B��[���]\˙�]��ܙY[�B�����ܙ\�ܙY[���]
���[�\�����ܙW�Y�
K�YK�UJK
���H��
JB��ܙY[���]
���[�\�����ܙWܚY�
K�YK�UJK
ʕ���H��
JB��Y���ܙW�Y��H�S����ԑH܈��ܙWܚY��H�S����ԑN���[��\�H�Y��Y���ܙW�Y��H�S����ԑH[�H��Y���\��H�X[��[�\�����[��\�H^Y\��[��H�\�����\�\����YKQS��B��ܙY[���]
\��\�˙�]ܙX�
�[�\�J��̋�̊JJB�Y�[YK�\�^K��\
B��Z][��H�YB��[H�Z][���܈]�[�[�Y�[YK�]�[���]
N��Y�]�[��\HOHY�[YK�URU��Y�[YK�]Z]
N��\˙^]
B�Y�]�[��\HOHY�[YK��VQ�ӈ[�]�[���^HOHY�[YK������ܙW�Y�H��ܙWܚY�H��[��\�]
B��Z][��H�[�B��Y�[YK�\�^K��\
B����˝X��
�
B����O���O������ۙϓ�]]����ۙϏ����O���O�[�
�ۙ��[����[�ˈY�^Y\�\�\�����Y�^Y\�\�\�T��Ӌ��\���
H�[���[�ˈ�\�����\�\�����O���O����\��ڙX�Y\���]\�]�\�H�ۘ�\���HH\�X�N�H�[YH���]�\�]�\�][����O�YO���O�[���O��[���O�\�H��\���O���]O���O��X��\��\��]Z\��ۈ��O�\]J
O���O���X��X�[��H��\�[ۈ[�\�H�[\YH��[��K[���O����[�\�
O���O��Y\�H��ܙX��\��\��[�]�\�H��[YK��^[�]�Y��[�Y��X���]��O�Y�[YK�Z^\����[����O��\X�HH�[Y�X�[��\��]����]\��YY�XH��O�Y�[YK�[XY�K��Y
O���O�܈Y[�RHYH]�X���H�[ ��H��][ۋ�����KKHSPQ�W�P�R�T��\��]H][��[��H���[��Y[���[Xܛ���H�[ۈ��\��]Y\�ۈ���Y\ˈ�\[ێ���[���H\�[����H[�\�H\�X��[��[�H�܈ۙ�[�ۙH[�K��KO����YH��\H����\]Y[�H\��Y]Y\�[ۜ�������YH��\KZ[��[�����H[��[Q�[YH[��X��Y�]�ܚ����ς���[���O�\[��[Y�[YO���O�[�[�\�\�Z[�[�Y�\�[��[[���\�Y�H]�ܚ���H�[��[����O�]ۈ[HY�[YK�^[\\˘[Y[�����O�KH\��[��H�Z[Z[��[\H�[YH]�\��]Q�[YK�Y�H�[����[��[�H�[YH�[��[�\�[��[][ۈ\��ܜ�X��ۈ��YH[�^�\�[\�[�HX^H�YY��O��Y�\[��[]ی�\�����O��\����]\ٞH��\[�[��Y\ˏ�����YH��\KY�ȏ��H�\�^H�[YH�[�]Y��\�[��YY�ۈY��\�[���\]\����ς���YY[��ۜ�\�[��H\[���[�[�H[ݙHؚ�X���HH�^Y�[X�\�و^[�\���[YK�]H���\�Y\��]�Y[�XX�[�\ˈH�^\�[K][YH[ݙ[Y[��][\H[�\��YY�H��O����O�
H[YH[��X�ۙ��[��HH\���[YK�]\��Y�H��O����˝X��
O���O�K�^[\N���O��[���X��
�H�[���YY
����O��\�H��O�H���˝X��
�
H�L����O��\�XZ�\�[ݙ[Y[���[YK\�]KZ[�\[�[�KHH�\���\]\�[�H���ۙH�[[ݙHH�[H�[YH\�[��H\��X�ۙ������YH��\KZ[XY�\ȏ����H\�H��[XY�\�[��XYو��ܙY�X�[��\���ς���\X�H��O��[��[XY�HHY�[YK��\��X�J
�
JO���O��]��O��[��[XY�HHY�[YK�[XY�K��Y
�^Y\���ȊK���\��[J
O���O��H��O���\��[J
O���O��[��\��H[XY�H�H�ܙY[���^[�ܛX][��\�\��\��[��\�[��HKH�]�]]���[��\�[��H����\��X�ˈ��[H[XY�\��]��O�Y�[YK��[�ٛܛK���[J�\��
�]����]��
JO���O��Y�ܙH\��Yۚ[�����O��[��[XY�O���O���Y\[�\���]H[XY�\�[�HYX�]Y��O�\��]�����O���\��^�[�\��[YH�ܚ\������YH��\K\��[������H^H��[�Y��X����ς��Q�[YI����O�Y�[YK�Z^\����O�[�[H[�\�]Y[ˈ[�]X[^�H]�]��O�Y�[YK�Z^\��[�]
O���O�
[�XYH�[Y�H��O�Y�[YK�[�]
O���O�K�YH�U�܈����[H�]��O���[�HY�[YK�Z^\����[�
�]��]��O���O�[�^H]�]��O���[��^J
O���O���܈�X��ܛ�[�]\�X�\�H��O�Y�[YK�Z^\��]\�X˛�Y
�[YK���ȊO���O�[���O�Y�[YK�Z^\��]\�X˜^JLJO���O�
H��O�LO���O����[�Y�[�][JK�Q�[YH�\ܝ��U����[�T��Y����\��X��[Y[�Y�܈]\�X�\�]��X[\��]�]�Y[��H��H�[K������YH��\KY\��X�]H���[�H�\�H^HQ�[YH�[YH�][�H�����]�H]ۏ��ς��Y\�KH\�H��O�Z[��[\����O���[�H[�\��[YH[��H�[�[ۙH^X�]X�K��[���O�\[��[Z[��[\����O�[���O�Z[��[\�K[ۙY�[HK]�[���Y[�\���[YK�O���O��R[��[\��[�\�]ۋQ�[YK[�[\��]�[��H�[��H��O��^O���O�
�[����H܈�[�\�H
XX����[�^
H]�[���]�][�H[��[][ۋ�Y��O�KXYY]H�\��]��\��]ȏ���O��[��YH[�\�[XY�H[���[��[\ˈ\�H�\�[[���[�\�HۈH�X[�XX�[�H�Y�ܙH\��X�][�ˏ�����YH��ۘ�\�[ۈ���ۘ�\�[ۏ������Q�[YH�]�\�]ۈ]�[�\��H��\]H��[YH]�[�Y[����]]�[��ۈ]�\�HXZ�܈�\�][���\�[K�[�\�\�X�H�H�ݙ\�YH�[YH��]�]�\��X[][YHܘ\X��H��O���]O���O��\���܈�Z[[���]\�X�H�[YHؚ�X����\�[ۈ]X�[ۈ�]��O���Y\�X����O�[���O���]X��YO���O�^�[�\�[���܈��ܙ\�[�RK[�]][��]\�[�H�ܚ�[��ۙ��ۙK�H�[YH]\���KH��\]K�]�KH\H�]\�[�H�Z[H[�H^��H�[YH܈H�[]�ܛY\�������^[�Hۙ��ۙH�HY[����[�Y��X���]��O�Y�[YK�Z^\����O��\X�[���X�[��\��]����]\��XH��O�Y�[YK�[XY�K��Y
O���O�܈Y[��Y��X�[H��[[��][�ܙX\�\��[�YY\�H�[YH��ܙ\��\ˈ�[�[�H\�H�XYH�܈\��\��ڙX��^ܙH��O�Y�[YK���]K�^Y\�Y\]\����O��܈�[ܙ\�[����]\���O�Y�[YK��\��X�K��ܛ�
O���O��܈�ܛ�[���X��ܛ�[��[�H�[Y\�H]\���܈�ܛ�\��\�[�H�ܙY[�������Hٙ�X�X[��[Y[�][ۈ]H�Y�H�����˜Y�[YK�ܙ�����ȏ�Y�[YK�ܙ������O��ݙ\��]�\�H[�[H[�]Z[��܈��X�\�YX\��[��HH�Y�H��ܙX[]ۋ���K�Y�[YKXK\�[Y\�ȏ��X[]ۈQ�[YH�[Y\��O��ݚY\�^�[[��\[Y[�\�H^\��\�\ˏ�����YH��[]YX\�X�\ȏ��[]Y\�X�\�����[��O�H�Y�H���]ۚ�����ܘ[K���K�]ۋ]�XY[��]��[][\���\��[��]��X\�[��[�]�[�]�]\�KYXX�ȏ�]ۈ�XY[����][\���\��[����\�[��[Έ�[��\�HXX��O��O��O�H�Y�H���]ۚ�����ܘ[K���K���]�]\�K\]ۋ\[��Y�܋Z[XY�K\���\��[��ȏ����\�H]ۈ[���܈[XY�H���\��[���O��O��O�H�Y�H���]ۚ�����ܘ[K���K���]�]\�K\]ۋY]X�\��\�Y�܋X�X[�\�X��Kȏ����\�H]ۈ]X�\��\��܈�X[�\���O�O��O���[�����]���^V��]�����[[�V��]��ܛ��V��]����X�[ۗB�KKH���]�K�X�Z�\�KO�