From 090fd7caf49dbfa0d3af920fda108dbc8aab8b02 Mon Sep 17 00:00:00 2001 From: newt Date: Wed, 9 Oct 2024 18:02:48 +0100 Subject: [PATCH] feat: dump stuff from school again ig --- .../Algorithms/Data Analysis/main.py | 57 +++++ .../Algorithms/Data Analysis/yes.png | Bin 0 -> 9298 bytes .../Algorithms/Happy Numbers All Bases.py | 29 +++ .../Y12 2022-2024/Algorithms/Happy Numbers.py | 10 + .../Y12 2022-2024/Algorithms/Merge Sort.py | 20 ++ .../Y12 2022-2024/Algorithms/bitwise/apply.py | 57 +++++ .../Algorithms/bitwise/applyCurses.py | 141 ++++++++++++ .../Algorithms/bitwise/xor cipher.py | 6 + .../Y12 2022-2024/Algorithms/caesar.py | 9 + .../Algorithms/recursion/factorial.py | 15 ++ .../Algorithms/recursion/fibonacci.py | 43 ++++ .../Homework/13 - Dictionaries/11.2.5.PNG | Bin 0 -> 9718 bytes .../Homework/13 - Dictionaries/11.2.6.PNG | Bin 0 -> 13759 bytes .../Homework/13 - Dictionaries/11.2.7.PNG | Bin 0 -> 30550 bytes .../Homework/13 - Dictionaries/11.2.8.PNG | Bin 0 -> 30823 bytes .../Homework/13 - Dictionaries/11.2.9.PNG | Bin 0 -> 25267 bytes .../Homework/13 - Dictionaries/11.3.4.PNG | Bin 0 -> 18845 bytes .../Homework/13 - Dictionaries/11.3.5.PNG | Bin 0 -> 29019 bytes .../Homework/13 - Dictionaries/11.4.2.3.PNG | Bin 0 -> 16260 bytes .../Homework/13 - Dictionaries/11.4.2.4.PNG | Bin 0 -> 11179 bytes .../Homework/13 - Dictionaries/11.4.2.5.PNG | Bin 0 -> 12364 bytes .../Homework/13 - Dictionaries/11.4.2.6.PNG | Bin 0 -> 16592 bytes .../Homework/13 - Dictionaries/11.4.2.7.PNG | Bin 0 -> 23447 bytes .../Homework/13 - Dictionaries/11.5.2.PNG | Bin 0 -> 17243 bytes .../13 - Dictionaries/Letter Frequency.py | 17 ++ .../primeList/__init__.py | 92 ++++++++ .../14 - Code and test a program/test.py | 18 ++ .../15 - Logic Gates/Worksheet Program.py | 16 ++ .../Diagonal Difference OOP.py | 190 ++++++++++++++++ .../18 - Code and test/Diagonal Difference.py | 79 +++++++ .../Homework/18 - Code and test/golfed.py | 34 +++ .../a-level/Y12 2022-2024/Video Playlist.py | 215 ++++++++++++++++++ school/a-level/Y12 2022-2024/curry.py | 25 ++ .../Y12 2022-2024/curses wrapper maybe.py | 50 ++++ .../Y12 2022-2024/golfed full adder.py | 3 + school/a-level/Y12 2022-2024/main.playlist | Bin 0 -> 327 bytes school/a-level/Y12 2022-2024/q13 sol.py | 10 + .../Binary Search Tree + Traversal.py | 215 ++++++++++++++++++ .../Binary Search Tree.py | 171 ++++++++++++++ .../Huffman Coding.py | 39 ++++ .../Advanced Data Structures/Linked List.py | 2 +- .../golfed huffman.py | 3 + .../Y13 2021-2023/Cash Register Problem.py | 7 +- .../Y13 2021-2023/LMC/LMC Higher or Lower.txt | 30 +++ .../LMC/LMC Triangular numbers.txt | 22 ++ .../Operating Systems/Operating Systems.md | 82 +++---- 46 files changed, 1662 insertions(+), 45 deletions(-) create mode 100644 school/a-level/Y12 2022-2024/Algorithms/Data Analysis/main.py create mode 100644 school/a-level/Y12 2022-2024/Algorithms/Data Analysis/yes.png create mode 100644 school/a-level/Y12 2022-2024/Algorithms/Happy Numbers All Bases.py create mode 100644 school/a-level/Y12 2022-2024/Algorithms/Happy Numbers.py create mode 100644 school/a-level/Y12 2022-2024/Algorithms/Merge Sort.py create mode 100644 school/a-level/Y12 2022-2024/Algorithms/bitwise/apply.py create mode 100644 school/a-level/Y12 2022-2024/Algorithms/bitwise/applyCurses.py create mode 100644 school/a-level/Y12 2022-2024/Algorithms/bitwise/xor cipher.py create mode 100644 school/a-level/Y12 2022-2024/Algorithms/caesar.py create mode 100644 school/a-level/Y12 2022-2024/Algorithms/recursion/factorial.py create mode 100644 school/a-level/Y12 2022-2024/Algorithms/recursion/fibonacci.py create mode 100644 school/a-level/Y12 2022-2024/Homework/13 - Dictionaries/11.2.5.PNG create mode 100644 school/a-level/Y12 2022-2024/Homework/13 - Dictionaries/11.2.6.PNG create mode 100644 school/a-level/Y12 2022-2024/Homework/13 - Dictionaries/11.2.7.PNG create mode 100644 school/a-level/Y12 2022-2024/Homework/13 - Dictionaries/11.2.8.PNG create mode 100644 school/a-level/Y12 2022-2024/Homework/13 - Dictionaries/11.2.9.PNG create mode 100644 school/a-level/Y12 2022-2024/Homework/13 - Dictionaries/11.3.4.PNG create mode 100644 school/a-level/Y12 2022-2024/Homework/13 - Dictionaries/11.3.5.PNG create mode 100644 school/a-level/Y12 2022-2024/Homework/13 - Dictionaries/11.4.2.3.PNG create mode 100644 school/a-level/Y12 2022-2024/Homework/13 - Dictionaries/11.4.2.4.PNG create mode 100644 school/a-level/Y12 2022-2024/Homework/13 - Dictionaries/11.4.2.5.PNG create mode 100644 school/a-level/Y12 2022-2024/Homework/13 - Dictionaries/11.4.2.6.PNG create mode 100644 school/a-level/Y12 2022-2024/Homework/13 - Dictionaries/11.4.2.7.PNG create mode 100644 school/a-level/Y12 2022-2024/Homework/13 - Dictionaries/11.5.2.PNG create mode 100644 school/a-level/Y12 2022-2024/Homework/13 - Dictionaries/Letter Frequency.py create mode 100644 school/a-level/Y12 2022-2024/Homework/14 - Code and test a program/primeList/__init__.py create mode 100644 school/a-level/Y12 2022-2024/Homework/14 - Code and test a program/test.py create mode 100644 school/a-level/Y12 2022-2024/Homework/15 - Logic Gates/Worksheet Program.py create mode 100644 school/a-level/Y12 2022-2024/Homework/18 - Code and test/Diagonal Difference OOP.py create mode 100644 school/a-level/Y12 2022-2024/Homework/18 - Code and test/Diagonal Difference.py create mode 100644 school/a-level/Y12 2022-2024/Homework/18 - Code and test/golfed.py create mode 100644 school/a-level/Y12 2022-2024/Video Playlist.py create mode 100644 school/a-level/Y12 2022-2024/curry.py create mode 100644 school/a-level/Y12 2022-2024/curses wrapper maybe.py create mode 100644 school/a-level/Y12 2022-2024/golfed full adder.py create mode 100644 school/a-level/Y12 2022-2024/main.playlist create mode 100644 school/a-level/Y12 2022-2024/q13 sol.py create mode 100644 school/a-level/Y13 2021-2023/Advanced Data Structures/Binary Search Tree + Traversal.py create mode 100644 school/a-level/Y13 2021-2023/Advanced Data Structures/Binary Search Tree.py create mode 100644 school/a-level/Y13 2021-2023/Advanced Data Structures/Huffman Coding.py create mode 100644 school/a-level/Y13 2021-2023/Advanced Data Structures/golfed huffman.py create mode 100644 school/a-level/Y13 2021-2023/LMC/LMC Higher or Lower.txt create mode 100644 school/a-level/Y13 2021-2023/LMC/LMC Triangular numbers.txt diff --git a/school/a-level/Y12 2022-2024/Algorithms/Data Analysis/main.py b/school/a-level/Y12 2022-2024/Algorithms/Data Analysis/main.py new file mode 100644 index 0000000..e82e53a --- /dev/null +++ b/school/a-level/Y12 2022-2024/Algorithms/Data Analysis/main.py @@ -0,0 +1,57 @@ +from __future__ import annotations +import matplotlib.pyplot as plt + +def parseValue(value: str): + value = value.strip() + + if value.lower() == "true": + return True + elif value.lower() == "false": + return False + elif len(value.split(".")) == 2: + return float(value) + elif value.isnumeric(): + return int(value) + else: + return value + +class Data: + def __init__(self, fileName: str): + with open(fileName, "r") as file: + out = [[parseValue(value) for value in line.strip().split(",")] for line in file.readlines()] + self.__data = { header: lst for (header, lst) in zip(out[0], zip(*out[1::])) } + + def getHeaderData(self, header: str): + """Get the data under a header, CaSe insensitive""" + for realHeader in self.__data.keys(): + if header.lower() == realHeader.lower(): + return self.__data[realHeader] + + return None + +def bubbleSort(lst: list, asc: bool = True) -> list: + n = len(lst) + + for i in range(n): + for j in range(0, n - i - 1): + if lst[j] > lst[j + 1]: + lst[j], lst[j + 1] = lst[j + 1], lst[j] + + return lst if asc else lst[::-1] + + +def getHeights(data: Data, male: bool) -> tuple: + heights = data.getHeaderData("height") + males = data.getHeaderData("male") + + return [height for height, isMale in zip(heights, males) if male == isMale] + +def meanHeight(data: Data, male: bool): + heights = getHeights(data, male) + return sum(heights) / len(heights) + +sports = Data("sports_data.csv") +femaleHeights = bubbleSort(getHeights(sports, False)) + +plt.bar([i for i in range(len(femaleHeights))], femaleHeights) +plt.savefig('yes.png') diff --git a/school/a-level/Y12 2022-2024/Algorithms/Data Analysis/yes.png b/school/a-level/Y12 2022-2024/Algorithms/Data Analysis/yes.png new file mode 100644 index 0000000000000000000000000000000000000000..7e5593f9b73248bdf9c1fd316dca595b1ce16953 GIT binary patch literal 9298 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 int: + """Computes the perfect digital invariant.""" + return sum(pow((number % pow(base, i + 1) - number % pow(base, i)) / pow(base, i), power) for i in range(0, floor(log(number, base)) + 1)) + +def isHappy(number: int, base: int = 10) -> bool: + """Check if a number is happy in a given base. Defaults to base 10.""" + seen = set() + + while number > 1 and number not in seen: + seen.add(number) + number = pdi(2, base, number) + + return number == 1 + +print(isHappy(19)) \ No newline at end of file diff --git a/school/a-level/Y12 2022-2024/Algorithms/Happy Numbers.py b/school/a-level/Y12 2022-2024/Algorithms/Happy Numbers.py new file mode 100644 index 0000000..026ddc6 --- /dev/null +++ b/school/a-level/Y12 2022-2024/Algorithms/Happy Numbers.py @@ -0,0 +1,10 @@ +def happyCheck(number: int): + seen = set() + + while number > 1 and number not in seen: + seen.add(number) + number = sum(int(digit) ** 2 for digit in list(str(number))) + + return number == 1 + +print(happyCheck(19)) \ No newline at end of file diff --git a/school/a-level/Y12 2022-2024/Algorithms/Merge Sort.py b/school/a-level/Y12 2022-2024/Algorithms/Merge Sort.py new file mode 100644 index 0000000..2dbc716 --- /dev/null +++ b/school/a-level/Y12 2022-2024/Algorithms/Merge Sort.py @@ -0,0 +1,20 @@ +def mergeSort(lst: list) -> list: + if len(lst) > 1: + mid = len(lst) // 2 + left = lst[:mid] + right = lst[mid:] + + mergeSort(left) + mergeSort(right) + + i = j = k = 0 + + while i < len(left) and j < len(right): + if left[i] <= right[j]: + lst[k] = left[i] + i += 1 + else: + lst[k] = right[j] + + +print(mergeSort([3,5,2,1])) \ No newline at end of file diff --git a/school/a-level/Y12 2022-2024/Algorithms/bitwise/apply.py b/school/a-level/Y12 2022-2024/Algorithms/bitwise/apply.py new file mode 100644 index 0000000..23c6bc7 --- /dev/null +++ b/school/a-level/Y12 2022-2024/Algorithms/bitwise/apply.py @@ -0,0 +1,57 @@ +from typing import Callable +from operator import and_, or_, xor + +def applyOperator(binary: list, mask: list, operator: Callable[[int, int], list]) -> list: + return [operator(a, b) for a, b in zip(binary, mask)] + +def getBinary(prompt: str, length: int = None) -> list: + while True: + try: + bits = list(input(f"{prompt} ")) + + for bit in bits: + if bit not in ["0", "1"]: + raise ValueError("Invalid binary number. Please try again.") + + if len(bits) == 0: + raise ValueError("Please make sure you enter a value.") + elif length and len(bits) != length: + raise ValueError(f"Please make sure the value is {length} bits long.") + + return [int(x) for x in bits] + except ValueError as error: + print(error) + +def makeChoice(prompt: str, choiceCount: int): + while True: + try: + choice = int(input(f"{prompt} ")) + + if choice < 1 or choice > choiceCount: + raise ValueError("Please make a choice that is within bounds.") + + return choice + except ValueError as error: + print(error) + +operators = { + 'AND': ('&', lambda binary, mask: applyOperator(binary, mask, and_)), + 'OR': ('|', lambda binary, mask: applyOperator(binary, mask, or_)), + 'XOR': ('^', lambda binary, mask: applyOperator(binary, mask, xor)) +} + +# take in the binary values +binary = getBinary("Please enter your binary number:") +mask = getBinary("Please enter the mask:", len(binary)) + +# choose an operation +choices = [(i + 1, operator) for i, operator in enumerate(operators.keys())] + +for i, operator in choices: + print(f'{i}. {operator}') + +symbol, operation = operators.get(choices[makeChoice("Please choose a logical operation:", len(choices)) - 1][1]) +output = "".join(str(x) for x in operation(binary, mask)) +binary, mask = "".join(str(x) for x in binary), "".join(str(x) for x in mask) + +print(f"{binary} {symbol} {mask} = {output}") \ No newline at end of file diff --git a/school/a-level/Y12 2022-2024/Algorithms/bitwise/applyCurses.py b/school/a-level/Y12 2022-2024/Algorithms/bitwise/applyCurses.py new file mode 100644 index 0000000..1867981 --- /dev/null +++ b/school/a-level/Y12 2022-2024/Algorithms/bitwise/applyCurses.py @@ -0,0 +1,141 @@ +# windows: pip install windows-curses +import curses +from operator import and_, or_, xor + +def initCurses() -> tuple: + """Initialise curses and any necessary colour pairs""" + screen = curses.initscr() + screen.keypad(True) + + curses.cbreak() + curses.noecho() + curses.start_color() + + # default + curses.init_pair(1, curses.COLOR_WHITE, curses.COLOR_BLACK) + default = curses.color_pair(1) + + # highlighted + curses.init_pair(2, curses.COLOR_BLACK, curses.COLOR_WHITE) + highlighted = curses.color_pair(2) + + # error + curses.init_pair(3, curses.COLOR_RED, curses.COLOR_BLACK) + error = curses.color_pair(3) + + return (screen, (default, highlighted, error)) + +def destroyCurses(screen): + """Close out of curses and reverse any destructive changes to the terminal""" + curses.nocbreak() + screen.keypad(False) + curses.echo() + curses.endwin() + +def selectMenu(screen, options: list, header: str = "Pick an option:"): + selectedIndex = 0 + optionCount = len(options) + + while True: + screen.clear() + screen.addstr(f"{header}\n\n", curses.A_BOLD) + + for i in range(optionCount): + screen.addstr(f"{i + 1}. ") + screen.addstr(f"{options[i]}\n", highlighted if i == selectedIndex else default) + + c = screen.getch() + + if c == curses.KEY_UP or c == curses.KEY_LEFT: + selectedIndex -= 1 - optionCount + selectedIndex %= optionCount + + elif c == curses.KEY_DOWN or c == curses.KEY_RIGHT: + selectedIndex += 1 + selectedIndex %= optionCount + + elif c == curses.KEY_ENTER or chr(c) in '\n\r': + return selectedIndex + 1 + +def getBinary(screen, prompt: str, length: int = None) -> list: + errorMessage = None + + while True: + screen.clear() + screen.addstr(0, 0, f"{prompt}", curses.A_BOLD) + + # display an error message if necessary + if errorMessage: + screen.addstr(3, 0, errorMessage, error | curses.A_BOLD) + errorMessage = None + + # fetch the inputted data + curses.echo() + bits = list(screen.getstr(1, 0, 50).decode("utf-8")) + curses.noecho() + + # validate that a binary value was entered + for bit in bits: + if bit not in ["0", "1"]: + errorMessage = "Invalid binary number. Please try again." + + if len(bits) == 0: + errorMessage = "Please make sure you enter a value." + + elif length and len(bits) != length: + errorMessage = f"Please make sure the value is {length} bits long." + + if errorMessage: + continue + + return [int(x) for x in bits] + +def applyOperator(screen, binary: list, mask: list) -> list: + # todo: fix + # operatorList = list(OPERATORS.keys()) + # symbol, operator = OPERATORS[operatorList[selectMenu(screen, operatorList) - 1]] + # output = "".join(str(operator(a, b)) for a, b in zip(binary, mask)) + binary = "".join(str(x) for x in binary) + mask = "".join(str(x) for x in mask) + print(binary, mask, screen) + + while True: + screen.clear() + screen.addstr(0, 0, f"{binary} {mask}", curses.A_BOLD) + screen.addstr(3, 0, "Press the backspace key to get back to the main menu.") + screen.addstr(4, 0, "") + + # get pressed key + c = screen.getch() + + if c == 8 or c == 127 or c == curses.KEY_BACKSPACE: + break + +OPERATORS = { + 'AND': ('&', lambda binary, mask: applyOperator(binary, mask, and_)), + 'OR': ('|', lambda binary, mask: applyOperator(binary, mask, or_)), + 'XOR': ('^', lambda binary, mask: applyOperator(binary, mask, xor)) +} + +if __name__ == "__main__": + # init curses + screen, (default, highlighted, error) = initCurses() + binary, mask = [], [] + + while True: + binaryStr = "[NONE]" if len(binary) == 0 else "".join(str(x) for x in binary) + maskStr = "[NONE]" if len(mask) == 0 else "".join(str(x) for x in mask) + + choice = selectMenu(screen, ["Apply a gate", "Change the binary number", "Change the mask", "Exit"], f"Current binary number: {binaryStr}\nCurrent mask: {maskStr}\n\nWhat would you like to do?") + + if choice == 1: + applyOperator(screen, binary, mask) + elif choice == 2: + binary = getBinary(screen, "Please enter a new binary value:", None if len(mask) == 0 else len) + elif choice == 3: + mask = getBinary(screen, "Please enter a new mask:", None if len(binary) == 0 else len(binary)) + elif choice == 4: + break + + # destroy curses + destroyCurses(screen) \ No newline at end of file diff --git a/school/a-level/Y12 2022-2024/Algorithms/bitwise/xor cipher.py b/school/a-level/Y12 2022-2024/Algorithms/bitwise/xor cipher.py new file mode 100644 index 0000000..c5d0da2 --- /dev/null +++ b/school/a-level/Y12 2022-2024/Algorithms/bitwise/xor cipher.py @@ -0,0 +1,6 @@ +def xorCipher(text: str, key: int) -> str: + """Encrypts/decrypts with the XOR cipher""" + if key > 2**8 - 1: + raise ValueError("Key can not be greater than 255.") + + return "".join(chr(ord(c) ^ key) for c in text) \ No newline at end of file diff --git a/school/a-level/Y12 2022-2024/Algorithms/caesar.py b/school/a-level/Y12 2022-2024/Algorithms/caesar.py new file mode 100644 index 0000000..4d0426d --- /dev/null +++ b/school/a-level/Y12 2022-2024/Algorithms/caesar.py @@ -0,0 +1,9 @@ +# def encode(text: str, key: int) -> str: +# return ''.join(chr(ord(c) + (key % 26)) for c in text) + +# def decode(ciphertext: str, key: int) -> str: +# return ''.join(chr(ord(c) - (key % 26)) for c in ciphertext) + +c,o,e,d=chr,ord,lambda t,k:''.join(c(o(x)+k%26)for x in t),lambda t,k:''.join(c(o(x)-k%26)for x in t) + +print(e("cats", 6)) diff --git a/school/a-level/Y12 2022-2024/Algorithms/recursion/factorial.py b/school/a-level/Y12 2022-2024/Algorithms/recursion/factorial.py new file mode 100644 index 0000000..b3bd56c --- /dev/null +++ b/school/a-level/Y12 2022-2024/Algorithms/recursion/factorial.py @@ -0,0 +1,15 @@ +def recursive_factorial(n): + if n == 1: + return 1 + + return n * recursive_factorial(n - 1) + +def iterative_factorial(n): + out = 1 + + for i in range(2, n + 1): + out *= i + + return out + +assert iterative_factorial(5) == recursive_factorial(5) \ No newline at end of file diff --git a/school/a-level/Y12 2022-2024/Algorithms/recursion/fibonacci.py b/school/a-level/Y12 2022-2024/Algorithms/recursion/fibonacci.py new file mode 100644 index 0000000..e057b49 --- /dev/null +++ b/school/a-level/Y12 2022-2024/Algorithms/recursion/fibonacci.py @@ -0,0 +1,43 @@ +from timeit import timeit +from random import randint +from functools import wraps + +TRIAL_COUNT = 100 +n = randint(2, 20) + +# non-memoized +def fib(n): + if n in {0, 1}: + return n + + return fib(n - 1) + fib(n - 2) + +# memoized +def memoize(func): + cache = {} + + @wraps(func) + def wrapper(*args): + if args not in cache: + cache[args] = func(*args) + return cache[args] + + return wrapper + +memo_fib = memoize(fib) + +# output +a = fib(n) +b = memo_fib(n) + +assert a == b + +time_a = timeit(lambda: fib(n), number=TRIAL_COUNT) +time_b = timeit(lambda: memo_fib(n), number=TRIAL_COUNT) +time_diff = time_a - time_b + +print(f"""fib({n}) = {a} +non-memo: {time_a} seconds +memo: {time_b} seconds + +difference of {time_diff} seconds ({round(time_diff / time_a * 100, 3)}% of non-memo)""") \ No newline at end of file diff --git a/school/a-level/Y12 2022-2024/Homework/13 - Dictionaries/11.2.5.PNG b/school/a-level/Y12 2022-2024/Homework/13 - Dictionaries/11.2.5.PNG new file mode 100644 index 0000000000000000000000000000000000000000..844cd83415123c1fbdb2ae67b48e955229fa9d4d GIT binary patch literal 9718 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�XlL6C9 zvhY^R9f4DNeryEoqVxNY6od(Ey|rSLao&q6xuqHfjng`T>cTD%*;aH3JS6QA}9Gv z3CK!j4(ftsM6(gKU_l$*Kn4a!DCQ+yYM@4wf$QC*ltX}tqc2*9rUFh@l=dvml9tjH zV{yGzj!(Bp{~8re$SNfrz1`M0~*$aq;9Cc)VeD_ah z&bapYcJ>N$dVG>$7T=&W%4Y3ts(h1G(HtOLlWA~XRV~A{_m^a0b%{eV2CiY=0jn|v zs5UR0$w+SQ9Uy9X!Q|ZQfP3khz~3%`za|_yHqpIq>^x1dk-hTh1WFUZ3q|eUaV_7H zcjIxfkG*fQ{?VeAb?b{>>Z@U}IoHu>J;k2?(l(AA*%g%~ z=!%;y^`a4Jl#Z%=@$pbsPkG@M=^bWjMJ)ok2T74+$Iss;#77KSkay^XCn+VME#&K^ z5x|HU<5n#HS>_rqUZlkM!Ugx{Fy89KB_)GJm;24QHFhN*daEw*uL+cN&qP9$&W1I5 z4|_Aw4YvXJ55HGsW{1w$F3&zOBS^x8w zdo$abc`Z<*H>{nQH~y0Q3uQ1KMmPGC`0&I)sU5)GPp$j&F!^$F-JZtPQ-_WoK7m3N z=Hv$DqlGsLDAC$3z9%(W82JmyMshw*z%rm1r{ZbFyMz|%(4rI03OsQyDM4ptmjO8c zbpX84p(4Sm+U<~>+l!AltJrIU2PVI?Lyu`N|CG~A!=3|o6e6hJFpO8>Y0Gl)QEI>4 zIQCpGxo6O73Om)Ct$$4E0|%ws&F&+=4ks2`>7Jc5*?~d(JTx%{e0h~dNTpESr&4Oh zK#i{G2=}^jTI;|eZ66tt?E9TNt{@IddU(f>uc6`sQoeey@a4WH3W=kCUY+Pz+n6NY zPWKn*wUS+wmv_^*!3m`hm6$>Quc&KuTM}~MJlqK*ZMRI^7ZrYYxxsYXVYLK^>)^<{ zSx$o)%}FYqP>g_#^`wAyxDlw8Ol0`zYsBmp4#w)~_?e~K$Gbpw5edD57M;KZpbsDC zts*(pF_QH0eDfUWk26XAC*-7=pf-S;VQAc)$IqB_S#mCUsB2U!JEvv7FKL^d~#sT^Lpg6OWYpXX^51VF9Thq+QA>WD9e-Uouxl_qurAa{TrL zf|lC1zIuR6QVdUQwAM)WS(~tks6Jn-SOJu8d_ru2M!rlf%Nh8dGjM440LMB)GN1Ye z-LLoUQNd5aB;$PwrOS2RWR=#^xL#ayh7JKJts_DCB{jy`0Vb&Yxx`x|V$s!9eS$*9 z7c%;jE#RenN%TGkZM84r<0u?JX#Ccj_M1900pCWd>vhxIQt` zf4xXiwQkvFoNWKu9jE5i_TVo7GS0~BZ^y`Anas?M)ZG^exf%V#{$*rx=AUvp=7$nX zAHrd&#;rK3NmJqvOPG2X5~h76rI49CRr(p8?Gy5x?zKtx=s%A3Zzb^W&qV*DBwlIo cuxOLj>C;)g%qo~zMo5^OT3#rD+z>% literal 0 HcmV?d00001 diff --git a/school/a-level/Y12 2022-2024/Homework/13 - Dictionaries/11.2.6.PNG b/school/a-level/Y12 2022-2024/Homework/13 - Dictionaries/11.2.6.PNG new file mode 100644 index 0000000000000000000000000000000000000000..c84aa9567c5412effff7cb079e44b15c2cf65a91 GIT binary patch literal 13759 zcmch7cUV(hm}f-!q>4tRNHdBe(nXpy1(DF35R?*%fC!;?NU#A$lpunLl!yw5KJ?GqW-}8Ih?>%TU6FqK@GaMig zh+7|e(*guyL4!bt5Nv+|cRc4;E&-QA0Tz1NAY8Z59Ps0a`win8AW#X0bJvL#_|5JM zy%PWe9cw!HJJja$`5p+Qcw7JGjoYCP)KQ<$u6I(&tDM^k>_0l+^09M=O{G10dY?ri zQ5kYp$HDkg`fVNNv(=a9xci>@c>R^*pDSo^oO)~V9$Svl;)8&$z^aSggXcdbdJI37 zsn`*H@xl62`O8AZZ{5wUx6d^@xode+D>lnA-3u!=RX2avP(~OUD_Kjb5!4Nz z|NR>w%=wIYl;LP?c$S(pRHE!mPrGuyLkI_G zD&$}%Y^*8aK~6$@t0w~5pqQ}i8i!ej-!(VyhpeWzZ`WtJ)cHx$rPFg)2agJ>7lAL_Ht{?49sQ$=?Zs^&z$ZdObY_^O9wohPY&Oby~ z^rQkW(j=1*{%5}Hc6Z(4TX%%1YiZZM$U4-0V+ZaMR4EKtPT@toI;dpx`Yef-Q2#U*D%h-00R<9AD-nS}~5!*}8 z@);89TksFEov}L%TEwQx;{I?(OJ({!YCn8~*QirFxpJUM7cUpn;%+_^NvPDmGfLFP zZk(ItyJ-opJlkGbFC*V=UTLP+#ai`K*Wf#CsV$s5NB*LvCH~yy%X%F> zz(Wg((;uS6rcCuAB*gb*`z+r!c`Swzo|xf-y-#;vxKM7Z5k=iv+m>1q+_AXU?~x{w zBGSwdXf@whRJZ&;Wiy5L7@3+p1u#M}Saq|Sx0dqK;mdUpA3k!j6Jlhr|_-pUzO zHqfA88AM)6X|E9ipZ`wYbv+?~=X%dqIrBLEDEbn-U`@AwjWcbA_m{bo)&T^9?C}nk za9;c{^2N7vaJz-QrDWa+OTBc3ZD(T-bC@+7IvZ6v-Bzh`(aIfxqR`{0>&PToJ1%4j zvN6T@H|mZ?e&*|}$SM9axP1?ku1Heps$J?%vJY*9{?iosV%^5AyQz_GO|G}t3qY`d z=szN%LcDRbXb_n9Zrvp*n}pnA0qnxHQr-SvaS8SbUZZ!V^7#g(&Ys>W;4>nGrd1mA zvrU(^*rq7&39;xq5E3gf0pNx9R#lju^Ue?#dTwx*ddH^Bd3!E&5H&+wppnK*KheA+ zrPn28U-#Wn!G|x>L$h~sOYWCwRnTO9C(m?t5BwxX7SzH~1sh@W(SCi}A4FkeA!^5L zqsEj6f@yXjQ2Jk-+LOii=ULCObL!%^x~0Fnyce*m^=|xL-B1onjh2?KMIXDG>O|17 z8k4RJ!=}ZR**Z=IXz)qg7YmoqY>%6G;N^j8Iew%RPM&N{J(^rwj~((m;VlxVr7L-A zFyYeL9$zfB74=AM*?IfHxP%Z~Ef`rpS@iWshx=VhhH6w9?fQ<(PG%*>MQ9Vo;0me> zJJbDg?(LRKLIt^u;uX~W8(-qnMD8uY_3Un4I|O2QnnOpTa*?Zvto0`z6rWRtzcmGY z9l8Zo=l=6N5#RXq^j3Z`v;86ne_&jAij z=>MWkcZ2RuEoCotkEYc6ASua9(=dl6hw!-zz`To)AO4ARVkG@mNms2x0dO`rZ)IZu zzKq)G#Ri8gj{#A@SCK?1@l=!2jC=JK^xk(6^PZgB)(_Z#!3@2ByP0?qb{tr)3D1w< z#8rbKQ_q;2HBt6ogbunHUU86Mcs#uc0zFiSNjMl8`(JF`WpyUI^oT)x*zHFV)R7uY zuyUWL+CoKcT^z+L3O+BgH-2*TFcDQ$$C%`+3yE9_sm*n;WQ-gpBk3VK!T7<^YDU9S z9*@?qhAGQB!7bR_!b?+bn$2M42pywGs@)Tq$tQ=rb{XsxD!Mfs*%pgkz~@swn0dQA zk1{b0P^rw`3sr=l4dTLav0A@1!fX+}ZThFW2Sn8aO4K%IW4c{HgXeQE zis2}qw4L*ePtQ0+;36DtA$~RqusiF7{Rq+L-^8VgFN(E$PH9J!MO4E>MS~xOa!alU z0U<=j)QOqgw1wb+zlmOC8i7(1&-;&Oxa zNTq)8u^f;kwyFn}-)X9%H>!1I&8$>q+$+h01EE2_BjR_a&mRZR?9lq)*|0{dmUdNJ(khcF3Ez6Z+$md*bsDzl?BUj-j3OUEGEo|_+^yYK^K`y@X zUG?aiV#Z6?cG_LeknMmWWl2LZ_{Crlu zW`n@84OAU1i7rgwugq&1N!CCoR2M$H)X#(V!`*)C2P5~JRl9~2`P3||Si{)Seey-3 z;AwaJqOo9Sh~GE8^H1$O0^6QTqCwrCg*ng-D??b!yW^*uTsWeguswv?{Hioth#aA? zL3knZVu@d}q#gIW$7VL~jpa%?cl`YetQ$s!idxIH&9B9zrEW%gYtQl**$sttU_0uC z#MRsU23m3nAH3A4;s zWsjX4s9_bmaW|7C(G$qL4U92JB_mi;tY7v#$l)2roN3Lm)5*e&>7_sxYB#Blb6_@(k2 zR7SY^kovjNxj(#x+yw)j@7rCtStLoghEMBEZZ3O~z&8G3I1hkXXZjA2xu|o!I%F~> zBzQuUg>D^49H}MnP4=}RRhUnko5`!7hhp=1i0w@CvBM?WR)?RtF_y|G~Q%7_GEuoi@DSov0BI2-B%DM z4KFS~5n{S0o!!?Roro%DBQSinuy?-fKWWK9P3!MsuQe`MDl5nY#^Q@dK|)y zf6!&gZg2Ku7A6%;H=Qmxtk&f*B^CGKM|bw!WbIOos&2>bH7X(VD*~tecSS|k09*Nr z2|wGyB#GY;BA_V(D`Y^Fc?p#pOpNo^Og#QaN{s&{0~A^j1EE6e-S5=dy&^z z;~;Eq-+tO1O1f^tfezPVPhF0rGb~fJHBPd_n1qq%`vlxmnW3?xrJBV?-&&589$(D4 zrv2XXP;TIb68^_A4{i4C?n$!YPJ&&obHR37DH5~Ww!M&3$FS~P*Z?7&kG1|PN%o(D zSO+>KK%haqbnMO391-BzyIDWK#N6C?C)xW2)(C}sPGZSA7Q7a~f!d*1*w~%{8x~C~ z34!|%vs>?uq1Vc4j0@URw4L{qf^}(1gck?S|EvBvG297ouB5$x{+-yevJ>DbckaHz znR(?LK{kM-SS)|di7wI@Y6#ffbzF9czDY945xV83<80bU))S>ZG2vZYBZ|i$y9@p6 zYEG}WW3ey#+0c;L>8g}m;_2c1C))uv8}(~cSI?#30LAMppofS-f9P-cxgSNBE47{3 zP(%0z2wQhdb0+hO5x$Vwl3bI(uWd4?@D#Gh4VRhg=s+o5b>j%SsAM-o3aYk0FGinS zHhTd(EQ&OL?8t%E#$B|=@eWI(gBjqL2{v560L0{*EE!DV?%V%*!2SpU^G4(Nzys5$ zWRqYk|E&3XpAab!=>3a?!7?&5lM+Sk`Z4TQd^yrwSF^~5fqbTzoM5xVB@RegQ`^~* z@X&&fC3|FPG>?=82KORnrJw4C)P+UoKbzoK{0S2Ty9!pN0$RXs%LNDvG{|=lT!B>n z_uIB(Xj#IV|7I_iS#F~WjHP4lsr?AeUd&b0nXJOo3^sQbiueS92Va@5yu<~HlJ?5o zp!ETp*$G#(ui!2LY|EnT{~S8*S4T+PKIdV1If*fFuqLg#Q6 z{+q8kI?4RFWL?q;4yl#gG}K6`^9&|!bd)f^WiPm?0i)a$bv{JSn0ZUchCx*&;9uO6 zSgQ|Mq3A0C-l9R2wrfVvtA|!?s6f|rr>=xca1(v(jr54W`-&UD_GJQ7j>$d+9q>ik zH8Ju>9A>-uaAFQ>FTTmyYZwt>-bVo;yZ}PuZC=`C9^eJyP#9=hsf<~3yYiOyE#GSVYW*>X*?^1hLx<1GDRjp_#U?vnzb z?|q@e{n&JegybH%Yi^)F3I9WVEGFJ*ITRuvZH_sJ?2F&EKu!QlaXg3P)9w=X6$0!(@t5+7APgijw9)FC%jnn5`e}H+_79M=@iIjXKOE%37_L zEEN#^!@aA5;0qw;>nPDDS?Ww$A&&6}Hie!0_lUWK@!7-R7;2a{+b%R9jcLgAgQ`p) z`-Y#wLPDo92;sTarhU|pOS{$k(M#=A?SrilG6diT2<1(wy4UsJH_SyWOxjcCJ)&>= z&4q_)iE}>tF}-v*4=@0r{(dg>+VrXI#jKILGOW!vD-92TCLVn=qR*EL6RTW0;E5A% zb$mOoPvna=0tQI+aG}AVX$ba4`8TuI)U^bx;YMe4vujoQav*Gp(hdPsRLN_@!1>qT zETrbx%O#6TQ8jg^8l9W14tBVUgeHo~)Qze?ZDx54aDuQ6$ z+HjS#2blC4n>?8JVcC;|%YQj3{Lhj|cRy(4_5yi6vwA0W>6M zY65R`bFS9r_EJfk$b$D+{ZPa9Oj^c2U(-SFK>VDHjJ z0J&5pP8&=l#wMlJZA322M=yxN>h)xTEgIG?}&MfUR_#PI`Sp}$1sZx^z7_CL6g|1;MA zpHcrm+|R#RkI+rgpel}O&o3KC0N)dhEH?BGObK38`JoyFxQwk`x_O90clK#w$2Eav zKVp~KXflI1zm4pn7|w0|SgrnPU!$Q;-cnVNZQyaJ6~V&Qk~B?-l#E?|&|<6`G>ItG zEy}NM8;fo>R>_C>ZFZ;3*(_Q^?TnqcKxPM^nNC_4Xs(G( zdcBq%KH@C&NjZOPf_o#}zDC3)vKK#Me`Y>qZHiFIBip9bJNdd@JV&-~@3{e|?L>uJ zTJ+k03#rSG$2BqXkbcmcN>i%+FNocS$Ggq*Rv7rb9=mO7AzhsL{ChF>?n6uXt(nki z(gJ5zzTWUpPW(GlwPi!nN}E3l7meHB?GubnxIa_oThOX1NK|Yfl&nO0Z4C8iQKUBJ zBKJcsy%Ct{OfN%aUYt^OqW{2j{T?u!vn%MNR>Pf87O92pnDe2f()ClaGSkpO4f8~vq zW4Tq{zsOJ>@_oXw6VcThE*19@gs;A;2iH09$pnVG?yumWM_5N6URO&F1nBx|38 zl8M-k%wCO?JDMlz)cpWywk%yn>Eu#gO2?{c@q|SLn=FQn@i+Z!y+(OTZi7-fePwuw zXs;y%!O9*~>6VYxUymB1rumY#S}hWJ8{5-xQB$~b1n)%h*vgZvv7adXS!vHQvsTu_ zh;5;qlAFO!g;f*`TobppYOfNU9sZ)#C3XJo*3=y{c6}T5 z)6&c;bP9J=DolFW(ikzKx*yUwfKATp?7ipBm8_bsX4)0edZ{nt>S4#Z`gWoxh}6f0 zPGbfKY;b?tiFuRX|IuoG-KTO}u&0_3Rwmh?PZS`J;CPS%hno|X_5^(+Mv|2`UfG{o zq-`rllJNq1evgV>G8WvOaGn%BzX|;fzT4fh$~f(aJfp?lFNi^TVpoty{92gNp2RAp z5;8YAO5OzRp-NC^Rj+H1LTvk zG9%o$Fwet$jS*DCi ziRHc27RK9`ZCwiXwy4{P)*kTKDSs#kn;6k|oh-Ri!L2q^QzIkPv1)gQF5i}OFTLv1 zwW$1b%)Gi%n-casu`6J%Vu;p4H%#$J@6hdi+q%;lw$w#;+DlN;TJjGg=jJhYHQIed zNop&PE6 z_FpB3o3y*+iIAPVzmU2bU0mDjespZQNC=T`U+gQnD;Vreq0|OTA%$B9Ddid>aKgA? z8O0^LVa&$8F#gur&s{Esqs2Z5@0j4{G+X(MBAq*mF?rZZO>Q^f1P+j*R-M5FErmT-eFxE<ZZVz4Fy>-nlLD)jbS&(Y;b z+iQQhAg5~nVA?*1X__D%reWhrGjdq*hyqJ;E^0oEe-n{TY1uC1Ul3uaZn$6T-Noz`3=y9N7H%hY{X> z(5L5oo&~?UYTz^Sm3c>`{-N=GRw#(13$?S_;-ii{{?Yin_i=y#DG8^dgezbfJfl4s zGe=Ul(`{y+7jriJjqt^tW2t-e-xQ0w7ba}=`9yt;AnS?Dj?tH@LI`V^DAqPH+9jF< z?e04tAcR8Ls)`vTyfUL@7e(eVwz0eQQ+~U#ogX`MJ0*bvKWOoBvd#y))x_)PF)%o? zB4VI!tZy`gj2yKcTjMQ&&KS>_&X|i_DY`<)4g)fr!JLEc)I>=**o!ST4f6M!F4Jt^ zg&e%=t}2kC%>IGEzKV_8)rXcuOubZY^i;Qw_+I~G_lJ6WWV_Bx)zxJn>?4&2Lycf3 z*q^mUeBaH^N3R{kTo3JwgP}=|=R<||vnYuNLJB?v@jEJVz&R9qvZ2*h{^_Ly9eMP3 z+P4VE_n7(tnd3Nc92_!!T4-ppVlk96Ay3y?+_+36XzVZgEL{_xfhEXg;M53>MwLzKQlZ zCi@bjHp(Z0Ih1m+IFmB!(`H{*d7fu;Sxo>-f(gO$Kemy7k(&QX>3fUZJ0rvlkghgZ zV4b16%`^f@L0{wc8K_Qago{$1Lb%Xyo|A}9RL#}K`dfx8}P(Hf2Q~lV|Oy7sV6v zwf@;LFL5zC=6I)(8P}nXBc zK|v)ic>0yL6Ez?LV63ACuX+89bGn+!;wl1W#B!$3Ig!eXOZ~vG7pEe7J{`2t=v8Av7$e;Uv4YGF?I+MuFQNG7rfO#_}KFa#|ll`$TM#>ahDih;@LH1=YWMHuWkjX*($_ zd0V;*V1>Ra6$*jLo3D=6$|9!?C%&W{5v*akWn+iwOzXsUepJ8b;EFP&9Rsw$STeS` z2*nVbc#v}BOwC%$)D};wUaDy-ES20-e~=gVwgV0(;gzHV_`x5AKoyaLrz{6jIPDn? zs1YdL`#_HW6&~;Zb^kKRs$NLcSi@H9=n@Zewrhz1B&v?G`fpwvi4WnDwhMr?!{Ae6 zN>pSOgTB8@7?lRrzj)yvW>A{_IS^O_jG&|c5tJ2K3C0{a4oU z!w5mf3XtN%y$c6yc5N(%qk{W3ntY7LBFA1MsXzS-Ix+Z?rSN*>+oktJj^ z8fkFJ0}Afz3^fp%^l*#9oWL$Idrn5-8QFxLj=uL>6-3R!47CuP+O9u>^kh`rXB&}5 zYg&5Elg^2JrrEDyD>YEJVYE3GF@~jv($DYNXstQ>*~)aA&TUCm)ECzJ%BZgxZC0%8 zwk(+m$3~Ls%^Wt|Pwp97Q#)GIKLnfv`9`V<0!-bmq%zZag>Q`EUPoYTGEpT3Y;onB z?%*Twd?s($5c#@$&Ai(g6@n0XJ!s&8LQXepPsWk=KE5yS`l}gUzs@-dk06l?-e8>1 zddZBynQv={-L(yE&gLSP_ZE3_5z_fG1v!yiRr*sLpXBz49XwN}rC)o7`#a`0T=F*L zvG52*#V#l2&efuvdT!mJ)h(M48&0RJWt7NzN%GGNRFerwERTd>)duwx;~l4KFH?sw zWw*}A9f%0Klqpc;tmB*>6=e5-;x}g(NPFGeMsGmw)Ao$9wiIJB*|b0Y1OSo@C^V^f zbAZgOViDZ!=Y00W=@&;_j=d0-=5?duTjSA}XX@S)EvUoDw4i9_0&67OH7E1Oc(30R@!F?`PSGQ!woxU7 zN@J^{6YcrT!Lxh|h7?j~DEBDQ%mjNf3tmC19*IZcri0p$RQa@>`#ZHgXGV@EF%xy(D3UBLiv6g1r5~OXulUcSd?ehELU$DKcO9JixRMg+n7(vdD|fPBPQd z^0?6B$>=CL5hHy3V~_J`zGnGmk8nT5BI#H3-W!rf{^H~K>rQCT-WTbaTZ3BEUPGiY z%>OB(uD0;_sc;w2_nrCV$F`x;6^ct~v1wj7g_6iT2T=n9(kJ0Ooz~Nb z&Ux@?OV^R+@3M|mR;`aL$@WJKy=>U-PJF3GuvKQ+2W(tqXS7`L5NgrAlblAj&P?$$ zD)d_qWK6i{DYM3Tk+q=((J2ldb}eBh+O}7Gu4Jl2S;UraF6!klDO8h3Z9ayi1*|1o>4uPu2+6~w9hq6#5eoQN-&z1@r<5*vUp~u0c-Rsh zpg(KKE4!F&i!Su-8}4U2l%?f%$Xlj8n-uMB8|IJ`PRbIKb#G02slbEo!fzM^kdK|U zh$8p9Gs0u9$e-2d75);w7EaS-D3M&M+L|^@F;Q;yZ^kf50L@R039}|@a#gVV_o!BsqpY$zd3RCaw*cSuVe*Tp0KN)ulqUg z|5DDWqje>LciKSIt!jfvt$#}?)HK-`+>RsWhC7Qc?z%lXCs>y!>!mRL@@ERZQ>EKU zRAVVps^^wVy0=jcU{1u-EX~<|Y^=_#;ol;gQ1hXu<9)p9$l`(+m{;zwJ1z3QOR~!m z(4egN8L%$L^E8fU+PsTizl5IZn)8<4u)ZkmkG{JY`LMW$MeTmFbaZTqeZ!V*ju)Ar zk_oy0$uVJ8v%C`RwTS1DcsNA8Bj+E~oRB;dn$GZZuuL#Aa_m7aG1M3fR(7Fl5Tb~l zu+*NscWiTBl#<*66|dE|dKo9HW1A;CWp`}1MueE$Lq23EN@^kwYcc|4NN`cw1ivw& zyHgb8NXZC=o&ujzK7D-oC8}ii8N2n@?nK|*rm&=?Cu7fUmKr~sL%O=RNG%iZh};T4ooG;_rKc43xoIH7mbsm zpC8b}*nc|>1&^Ha-dw{h^Zxrn*zT`UZ0skAWItUXN_UL<#~uEwbNd9=PqWAxAppm$ zf$AA>c*#Rl`{Pz4SiG}%mynU}y zURTNn!n_&&Z6}6-gU^HiavXZD7CBlC@ZBk@0s!HiYbW!n#>R#@>=c2cRC*TH*oCV% zUv~A>7JhKd3)$v*KJ#N)8^V~pHz7FsdVeBdG-H1w>N%&?)HzU&D7QH zocfg>(O|+p9B&u7r!1o(w3}uc|$fEWBI_A89A?o@+-uH>YgS%YdFoj+|-dT z+X$S2a;HK3xFlu7S|45_y_*93!)>>V?+a`+W4>~ZZfidiX5g)>ZKGr`eB&`;ii}u4 z5xXTEHxV&x}@(5T7ubxs~Gi3Yi^` z+3$#I=;8k)TPsbfTrWKJ;1NKsuGH@55o+tpD-0ZsT@p15{5KR{N^~K@jjJ+tayvkbn1pA0 zNsUi-?Kqt1ihFh_YtEHZylcL4OUg-IIxVL}5TB2OpWUtUR@k$_aX}jYs6aF)@3HcmCHS4>pVJ@I`sqbtemz{?l398n7(k zUU;83(~ek%u+);p>P)-9j-3U+u?T%lkpM}vqqDzecL2p-jp$o@BQfXgeK;)h92j=Y z-^e7bjnf+2Gy+nq8%>S+Vo1EAACwflI;7!7G<*R z=a`!(uZ8!Rd=V%2vnjceF3*2++%OwBrk{r?84KL_Vzoc0oCn)5ZiTv|=Yzl# zjwhBwp`D2RCb~1Q@ZaXQLAD!#-=O%wYjG3J8rjZUon!HFR)gNTd~)(ND1Lo zx`k>OZb6zVj>wkttV($dx8Ok6+S{8Do4~-@sD^_~b`9&jYsIo`=s_LS>U!446QDB? zd7cYlYIyFx*kbZ=&>#1zaoMtx1pb{~wssvPv)#7gWu6cCaSv)OAU$?ReRz))Ft;H8 z&7e;s*?3B#It5Z9X997lfczRzU?*8bDd4>!PPbSrI7G93lOMZ;cg64vzYx2fO=`GX z`z2+5peQ@s%cghZ&EwbgnLDVv+8@gAa6D-%b3zFwp4ad*NUDoI30 zj%xdi`$x#HPIrD6u6WC#=`7hFjD-A6t63NGYcjR659;POZwLPzwtoNQjk;{~dBG1} z-+R76+kZbcLE}h&LF|1bBIhgPPXdc^5Ko%ZOsP!yM5k_*2hFnvvqMfWvi+wo{^TsQ z58ObN8cXlU9C=!bgv!N5ImqxR4WW|9OPWixCx4>KURbAp++l{1W6T^lLv*6re!iJ; zD@>RrN&nR=CxSGZc|0ZeS3rHEO8yjhyM&F@r#?drxm4IYfdgiDKW5lF+o7Yl{Y443X5 z{#$w%q`tVBWB+^;lj$!V*R$M0Pg@*cfjHU}cd;NkTI90$_6#n0NYSlDn#_jbUvhcSnTf5Rk zbciqWeWlidH-t!~b0d-!u9b@2si)?>-X`Ez(fvH|ihIxFPFAU``|$AC8; z!G`Y46L-3KR4V^;weRu|zoBS&@G&8PaT+|ues$*Zsd#jPjUt~m8(Q3OCL{mZV93*( zj)y0u4I4XKPk__J&bCWW^+@-Z34v{^p0tc0<^mb@x5!syU)4@u_Q~gV6g}V{K;!=( fTgSlB{iA2Ap79+%;xPt1oyR#jeBEDn zRaaMacU5)O_wdq1SFP{#zT2>2gO=NcpRR1!@XekL8#Y#K*`%rQnsVK(`S%s z`Au%|UZcmKEBZaZ+jHS_#f;H|t)DC0V)DAb`O>!CEokGHwo@m$C>S^g-q@7q|kG zl{$EMYN=1Hq8VF0NiEz%Ot?VhTOACFrawF&PsBZ`DEbnNtO&5|gonDc#bjP7%U8kQz9y zTf~hW1mv2)MY&y=`V?l0a~qF9%(aZn3hFrIkWh>|jvTdb)AEv8y?iZf|eZp5#Mn8Q@l8M?fbhf_M0;5(LV#v z7E48I3l?V6vT{#$msJtY%E=i82NBrq!SMX{10HmzvI6oM1l&G{VXGCao+DMPtmuyC z3q5&UtRb0lgT|VqiKg2v=5Q&-fnM&xeucQBmVTL6OJ#am=VxO%Ji0;ap)8jZUYCh- zXVdz@m2K)E_%BtY5WI5HR#3%6|n z7A$c4)Kat#*A5X-R0bFxFbh<-q-N(R==pvUn7uKmtT`AQ=8Sm4(BB?(uPb1iXs?05 zlg<*u!>Kz8&TuHtOTcDUw#34Gx}ub2?tL#38D4|K zSTBla(EhxLl258^>G>EqjnW1brh1@AFcV(j$#(0a!Bt$$A~+Pj%8f=ubq&pPuR$VX zF({Yy=hq}j^DgW5C1dUH$||keTfs1Q?EO1_#szafnxu3lQ06eWO;qW{Xhk{|HE#D- zo>woxwLB$p#P6Mm^5^gyAIcwbwtbo-O{6qud<*mL1(<~k5io(dl}uP&`)=6 zbqiB1`*;|}R7H<2v6J76;BZhjXD79hvkl(4o-%Cg& zQB%VpDH(bUq};ft2&V{&TtJyKj|iU+kY@h0+LH}$aaP20MEj{Y3+Mx1V7mATDy*@r zV`UDK+fFu2pvJSkb3&u+C9~}DBwpW1Jytmo23IBm?Fls|qLTbP49coPf*I?wZjrT% zd&L)}ngkP6e3aMl^$ci_pl1 zD6_DUn92y}CX$eL2bVG)lDa}#NE}uUk}Ly2(e!5n{`%G3U-t!t26%~Q*(Y(>4`rCH zK}aKzC5v`eJ#?KC34P|OB3bkR^zi#z^u`8#u*;{F-3k#W>7t6Z%WJx%L*}_`t8#u#ebDa}4-88|tb5$KyeWH~)==j_#QO^#v?+oa z<}i?ms2gymqBu6Enbq<&&)YnNkDr{-7gJ`AcoLfsWU31f z7ZXpG-H&m;MT(DCpJxZ&Ffk5rFVC7yIand>tb_Sdc0s@~bExR-37F>n^d-Z~WYDc*n(b!8BinfyXw&*y~1Lo3;1;qD(e`7kOU zPittK8W$)3EqtYB3quu_7bx>HG;ZIt$a~1EQrQ&jt0eYMT~q8EsYUs{YDH*|2~eiN zg_zn#b+6MtDQE(RvnKGY>{^?csQxQr|_%=S6U;|l%yQi`(BkrfC_Vzi(0dn7C4 zVkF2PiIivJxB{R#DbyN^k8lU8*ZdP4fuvVZkuaEM;EM+t6(|ZMIH(Jf>BxlHDP?eg zO>?ARn!VG&t8T1d%0VWSJU>3y9%C+<3&r)_PK=7X7&9utw$xwY)7IihpBjI!l?G2e z8)$PibWX1p4xv5vZ-P|zJOmio0$=fkgt8BHol&PN*ue+N`O)1X*!Lp9K^%H&Vg13k z*F093iI;~nq40(ykxY7r8HWAt!LuB0V&@e^>ep#%^VP1C5NQu>H}UOtkGT^8+wLSa zOm{|@1y@-5BhD<*tpb|}swU^-s~}sZms`6DXEPgt!Lah9f!JDcl697EEWENaDV4@9 z?l?iN#RA+#mwtdYl(f|kvK^nbTla|-smMA&tz4N`Qh=rxNh+;fWo^L5s4ErRbj~9U z%R6eJdQB5D=FfeIAjD`)Uke2zFzx#*>G)Htr}&OQZQC-94&WycU?%+2+b==Z~1u_DxAT z(9&qfz~-YTfKBVdwW&lnt}gs|Ra|p9BTfMm5mu{0jU&Hf>$C9vYR<|ng^I#S?e8HS zvM;kGBjr;Q>77nuNiU=^{3^992A;s_jfCWQrUvp5MNWxY=RYD=WPmR9{f%&j@Lly{;n)Bg?C;_v%S^mQ;b-6~g)f+;bRe1g!=h(I zmXdi-Nz<*JX@95cwaOPC;v!!c<1tx6<|CT79jK)iloi14tc>}DpvWBow7mh~AE1V4 z$yya=2qx9bBdk$M1Sln27+3QtM*Yd=Td{mjmH+viILh;FM}81V;@NssbdG0a&R=Zi z4ef`ssr$q~NyT#8u{pw$i_J(dF|Wl8TY9VRIq9sgOM5L>{40BsOY1P<+BHI8`!j+C zio_k)$$~*GQ4wmCR+tmdN$WUkkjbHNB0H=dqq4pTM_WA?V$n)z8F;=lpjlNXxGvm| zHZLxW0tOP#_bThjf)(z-i}w(AqUr`d*V-e!P;646L^c1z*%vWI9bI)Lr&?4Y+LE@R{^B~>b^J}g(&l}14FnS6lSP4Fk?RP)+=+U*VMnn0e+lzZ2?BS z-WW&MFMfZcI7JcDqi@i*slvWC7`I|oZ!dXL8+m6{{Mgd5GEDJpR=;lfys%?-TlbPY z?YgmLqeGeJjVtF*OpAL7;h_z6xa#=hQG=wM07SpzJ?=y~$XcvP@7u0tKEbM<7-1>o!6JiZA2Ll4IoApt0kRjN*w5bCJTZz75R^hWb zUqXI1dr{P6T~!eqOJZ54E1gbAYL<|ld>K zw}A&0Y~c%^qPEnpvV&i@U1)6V(^wftB8LY@bfcJaGacd6At02o#DN~guXz3n?*)%QuL(KYTWAT9T9EfBK4dO_xp)_ zzdK?6{CgKyramP_D;MOx0R_G+ZGoTN?cN((s24*`hXxZJYpbCmA4H(HI+1^M^4VmJ z)-WWh4O*3Q2w8$lDnSVoLnDVm1wdmZv}nYa(P{3IQbE8DYtDq58f{>*Fn%_RGsiw< zXimME#0oW<)hLGtdN9Pv)ZXC299L^}uW+c&YvFm_P~4O{G2(yehAZ}Xl0ro4csAFX z;%tw->-=ni<_C6{$=?E@?by3qi&}@qV)Cc;r0sIH(B70f6v5&z_=Gxob4~!7reb+J z%vQ0r#%6d2=#r~5K_(pPES0e_=xtQK>727ax~|fqDmZD@fd<@nbBP2A2Fq<8Y60|>-$klYFA|(hcnfk| zr%`6~tE|Z>=9swQzz`>7Y-E=l&quTM}w0i1&Nc{!or%j*O<1v5G7h8{RYv zGZ<+-pR$H@FIrxD6aDFY-qsT17cgXG$9$iC)3;7##Dx0c{`PX_`tAN~dIt!k%CnMf zT%g;P;1i-;X>;;!J#6hz5ACc8CR-P-R>wH5^b$j8niJxv9y-0c z(FTR%*`Ti7)TT(~5%@7$rwxQt4DOdV*wjM_g#D~Onunr<@G-rSGM5nHl5nvSnB+(4 zYrX3XPN`)-uPa*ZB#h8>b8p&VdLg8N2~Qny0X3F)f#RoB{V>AqI~avTGA4+KtO81C zk{}1xGB(1L$GQ2rpflsohhnGv*ytP22f$sN!Iqa2QZ?5k*wMg!E(z){P<5E6Tjy|2 zQAIvb`jhpmFz#1RSS z8FB>LQha~fp*2`0-}VGcjK7 z+;Fa57M+Fn$M?4JCPw{1U?EI*#>SaDC4ZsnUGSvBtOqS?3-Y2z`g4I4C+&uciwcuLst4r33GrD(g)cBg;xB z;aybyml`KpV6m|--_F@X1L2mmSC9oPZ$A%z!>MtcRR#yFyx0MB5Z9z}MTSH(R=P6b zeF4Jp4P;H2-oOQC_E{Rn0bi@!4m$h)PdtwQ-92cmy@w#1w2AjZ$YuQE{9qDY-8GS^ zGT^dO35tI2<%B!rlZgA-&h^Sj_Gn8jnruTn;k*N>utKCdl*JKtoKX1<%(BQln(pvI zj|vf2Se>8p{d$+o+g@ido^7$-wcw6zGKGYQry^3l6s>OyG;Y``3_r-xL03U#(Z{(^ zmEe^&JhQWd`Z{7b!Z*`BKD1=X>S)5C{g66m{bz@6+a**h)1~BA>JFPoeG4oK-1|{PsyUJJ>3STD>=O1j%f4gh7$& z-jAg2I;vz*+hc;Mw0z{73v^twPloRBbSDAog2&sWup8FDU0oJxiBuYwaajql73ZVd z>n~8N^TQ)Lgqd8lLh>$pYh)6PMIm4+E!`E)^%+ZnHv)`%^yU>zD8Db*Ek#%Guvse! zINGwrF#|(J?UbGIk#zDIYT1Jm+J0UY+k&5JsA%ePk91q~qWE>B51tsst;~_6v;S~H zL^@b8X5?o;rjP-mmJD`fpn}3-%0yZf0ouFnjTVr8aHO`z8TOd-Ng)`M;);;Eu*`;< zx`s>SvGkCk0TCteFeO0me%E_F@Lkpz@m?wm?Ulhf3rM%}AsE)xwPJFr@m?g6qan7g z=+1V4l(Xu8yRj@iS?*k4-$POEPWfnGheIyNg0cv0*3kQKg9UDqyyLm}s6$y6`7FrZ zgy%syZ>bCKl0i}<5|m?Ah)5FLlde+`kmG)Zf{3aOHqa+o2SUoV8KU3=lh1#qgxUdX z1f;S;0 z8Pwl;QzHI?AOpvwBQ&m8V$`(wMLf2JbO?`R%e@shn9{DxDFANrFu@#$sFEtrzy}8V zX;wJ9B-L9)U47~Ee%XTFvA%;Qc;I~%0)XBYX+kn{GA6J(U?76}IUw6RS@2Bc2-KcE z&t+Guk@)KOQ$w8N*}gPP2#?3(t7*b0=SIaXpISC7fLH|?wEJT)idbd9@$E^&d@Ve} zx&J}y?LMO@lg;obmfuT9|QV2cLP~t%<-1lZEZ|R>=RQ1cOWYB){nK^9!H^4 zn7S()1>j{Vo=TCaU-j#(%}-!z7?WZ*r#Cb$ivzkjOrc@=b8$ zhlOH9?b(BwSmb=$YGi<3^-ZvPin&`PVrB$uX(M>=j9l=oA?;@8S<0LoY=`maYdFkluzcR*fK`K7igEKMzFJ zwMN5D>xu6u;h4Ghx&l7~=@2HXhCuPLrhyaZ?L7p=R%{7|>eS+N<7$7$f?_wAg$C)9 zslDagmrVll2gtQZ)849J=Mgv6b8Da%usSY*Iww_JVaVhFpjT*^2#s>1V8=T$8abAF zIVcV()G6Fd!kd6jJUYILSU!r={9P4pRG3hYe5mVHx73?dM?UKdFj&St|4Upx90F84<59ykZoejBT@IM(m^&a`t) z{yyer!SG1H@g|$1r!z)33Wuhr+O+dB<7P8|w7TOG=ATe6h)&{aZM($>WNHr|I&k4 z9xWrsF9MdO6PR*7lbdPz5JQ$v0B|-nt*tb|+r*34$-|3*=)uU~HtW{V;_h}u$6-it zaSL=I4!R(FzTlX?g7-R^9hW9tP=U=)Mrk_N)1Q<3e=c(Cs%O8UBt!C_1OQu|c%+qe zPCWHoq`$%7bwwVBirU9!jyGXb8sh_q*Q>?82e1<{QB7Qpvjx+sL*-HLQdNoDjTQ19 z;cUv0E_3^gh6Qx3_z=PM6IoFK@Kpr#RfjT%qI<~*S_bJ$KPqg~F!XD)9%qq)^ z16tfJ27{YUG%opD$2V@=#d>UX7eIRce zc&MY-sU**IeY}_OdJ9G8;+4Qyc!zC;hO*9h#4)@{!V+wemTlE4YG(VbngUwI8eYx` z4azbp3ofKeYwd<{w#MDXVynG}=v2L8CSrS)B!^p_LhwiC36+2$`T>KK`LJp#d@^#dmQ@YSdLhDb*XrP1L?vHX2q$$0yeZ8`*or&YZyOB@4OQsul%)^US8r3Dt2;hXpT7e2cAk&N^75@pQLGxr ztA#u5pKGVWKV0ElOz-yxB|uNvxkGo%xxEF?$R+2b$AQpajeQs~gwfMc)zE zCwH2(u5@3qgt897!JWn(Y!l_fzDi_N8RybP$8>Fj)`_|O`?#i7JT~)|$0*_@+@szQ zMXJ=CgX{*UXodG6xi2Bk%qC}=Hq|1ZqN6T1Mx`U>%!XYYt$R~*a)Nh`@MwD%wRk(! zIk4-@o;Mgzmv*l7OwYUY{FJE1E4Qyexogb1iPnL)6ptH$9hf|7+dg*mc1(6?lk$Of zK!$KisvM+(p>WlJ{RiBb*vcPN*7Q26N~9yd5?5Z=-y7!*XnMskiCp4z#zobyztPz4 zp4prs?oorm?%NEdILN;ijJ_^!Pcl2NJFs1cO9-_=-chhmd{~i3FO9hKr~CHv859gJ z*uDS^ako>uo3+BiuU2S_ItI!Bw6X&9D&)kN)hZN+?SV1$=eXrg#@zF;04L`ZAN2Ql zXCC$;t>9@xbY$fYQFCiY{0WH2fUKE}%JZ-mLuLv z4@*idOyd_k`zh4O<}&ok#o%50l>T+<4S3yGE;=cbIkEm!`T?ni@i;)Da{UILGDQ4X z5}%rh2(cNH3mZ+9&$B3z&GClzX6O7))WT5|ca~%}r4sM_BN8X5PkF&5JLWuarzQ}W zjk@^dY#q9OMIWH#ll+!P1vf9one%u$;A8?fJDRRssLXET!VRB6prvN9S(Az@|*Ci-TtY3%Sw1ML=yUu{;z@C>&W zjG9%p-zKDclN!fW-941)75MI9cxZ$@p2LlMI@<>`P@(f%ueowQz+bmon_c!DSDEI7 zh7RRAQz($BmQEC|QAh5hZ$dwTEyx$nM~s!$&)z(75yFe0bbY*4gtK%SY8w_l9}!dt zJD0cJ;Ka8oE>EE#hL%+@8Lma&*=#&MUTk3P<>s)N+Se3Eu9sRl@)g%xcyDq0e7S@3 zbI#}DXZtt;&w&eb$Y9V7h;fq@SSZBB$dd{=HAw-d&d&-HyQ*g6jUcyzA`>_-1#UZH z?s|jxciKY(ls;mjV+;aO?wOa*&W}TUN7ggS$~@`Y=4Sk3W~+lSK4`b-%^lVT#*wrW z>~nifU(2FnFP`}53re>hniZqi*2h`fLsJT(Ua1mkEPmn`e>J+I6k>BecuJAHBI2|U z(SLc0o@j+RUoR`paY3%X77hmuytlBA%8^bm zL#E{Hh4mpNnX5+%I*!%2C#(s6RE@Gi8DTjzBMG-jsbCZ z^m|@{1Dq}c8cFpH5L$l0xLww`e^kp35j)?0kYMv!4DLk{n4j7K^ycQdALB!R;`ssx z&nrv}TXrZKJO?y4AiD5u{~N)xRzjyd7RUwAN0?LoH8dPS;ESUFqV8iEH^>U(l$jVZ zsv0%g@xgMxp!ES_FMNrNraL{gk<9=KiuRK~u+BukM!*Gm?4^a?Fpv-ugY*Ln0)f#~K+u3yWhTh-BA@||qY50rPLwX#2Q z3Z#+uBEsw_GMRGSOzm6!k=B-v$$I}Ty^_m?m>Q0*%bPKu3_WtRkw1t32nt9EGLxs2 zn^%Op-?Asvw{MRE^mH*&Nz|9K*>kgf!S4(ptL6SZmwhv-l0NphllMYG*oT6Fw&OVg z@L`=f9@8%iI+YG5c7Qz`Dfm<1XuQ2Q#jhzVcK9i`_5&3&EPI|)B4?nRoS(hPmzXEL zvmfGDejIBZu+QWTm=7K&Rhx%Br{40c6vqZz8bBG)$+j6$Sv{7LoW=83TCD&v3!an$e4qJQ3dlc$S?dE9(0+eyUik+MKvzF+H9B6@(Rg1o~$Ag%9DL!RjaXl_83NY>t?sexzG>qU@D`K3BGC zSW#?J{L*#SNt~bhZMw7xQag?(wB&t zIF*5IpT?6X-P1gE72H4Qr#&MWHu-K(Ix24M+D6&2CD4sukWa+73sP|y2D;PIWy4Ypa-D=<@uuQg`VM7uOeSf5 zzTKgyoF{UUJfFL9W%dt`Zk8X`~BN%zTORj&7w3I2pA+ptaoYp)Z} zI*;8Dd;bIU#tQdS3|q9);UXJ_1)bC#7tQpKGITRUXX%KQCUSMWCQLE)elads;7`5B zCjdu7(ABUAws*r>cTWxpP zyVj!!6*7~O0=^x8v8Bd~BJ%;`O1ZPw1_87N1Zz9{K*pibBnW`N*0HQswxgZ?WNZu8 zWo6DPt(e8;FOufz6mk8Pz7=IL1u(#ucb*7KqVIrf9oBGE&@al^s<2^=p07&jA$A5W zu-d{{LD?gML4eKH(9`drFRoh$^lrL!3?EK?-M)Wdk!y;QD)p?(E_W@+*ylr;L-9O) zdT!cQy8Ifw1l{eeYxIr6vXC-lix`~>Witx#{KON28l_$_r^;#b9mR*Zeb`LdR81YG z{&Ikj{jxL(FksyqANdF60;@X7LoT+Z0C3UuP7k74da&H=_lc@0)oOGSG9Nwu{e`MS zmg;X#i{+DT{CedD?q4MUAo4W&L$*wfQ}9`99K7H`wvx4$ffpc59e03!UnVDL;^r2t zm2A|}pU4FyNzU}&Q1u{#%H|*?V1D3vswY(^s9Uf^kT$)K^MzL=p`Tg55U%Bmo;tTzl#?Eth>0soxTBOPYroWJsr!+M|zhJ+LUEbN{*x6UkkjJz)Oq^ z%x&p|U3ngeE(1_oyCOqb8k+i3R&V#D@u%RvmF|G7*!wyIX4a4Z*=1iBMuwyUB8Y`| zCJoZ}2B?2^t^|kl+qyV?TA+<^{$}3- zY+NLg>kKJkV+&tfBrF(podO5*?0lHVszpG6brlyv3=eB9H^6}JAYVgzev^9Im%+h( z$vSk(0WkG>UToGQ$v1fG$nAS_VP^pvuiG815RMM4rRIMPx}_)W3T#gC!I@zy@J=%6`^&S`W`t3FnnXlr)Y zI}mDtN$CPEoUc3?6;@9c3OBF*z$k3(Nn79ZZ5KD_tnS&L&YVe1y;Nvnm%gjV_(&r= zl-TlMYkfOi�Mm)6U}<)hzeGSQ~A1L&Dys& z@3$-0f}>Ydn@71ESP#36z>D+)fHWJ_3Zj!?5j637FCgb@>)&MwNuv08R0WKpcp|Mq zmZ%DQRKi#|h5uz(*o>_V*f#X;3mfkX$xiVo#h*dnX{UPuBDU>GF6hqc^pc%#Zn^zQ z7Cs!%zSYx|;se|9K~gD}MrPZv`-Q1yqJwvSti~QTtB&AAc)P|%Chha#^y`!!l=DAC!OiWu_6qQ_Z6I~?UUtKq>5fkmXD2Rk zskW}lsjy%tLv-IgIDbx7RuZaQxk*HB$4JCyUVXTO`=z*IIw8SrGIE?)&!2`X^4`3?C<#|aD+Cu zPN@@TYATK-F+Lx3KyPbKYe+b<9{jnkpL@OVUXMxvQeKYBLzw)hW9`9Kn%_s_`Vh=gWD~}#kl3BE`4r46QK9|uRFi% zOqIn**+6xo6sYP!+D_afNc||3>|cxu3mHlZZjSwN|uB+mzF(^PgHh*xDKYUy3eUmJ5)w0`2RXbdFBf zFBpz_e8d6H{t8siyZ+Z|6Agz}62G*X$J#B^K4VJi{4)OaX@z+La-D?qXZ-VodUMNH zXFrNBeQud@O#|97Qxn9kY*WOZ-Lkhky|$(3Ft}3CDY_`#wpVoTX6CdU${YO8R36y) z07y`84tTW_k+Ct!lc3<^@u0Q)pjVr;GW0O&R-%|bF80cu3I06pBZ3dwsu}YRuYGB! z53cj?-|%@IVhi%u#c0ot4H&zvSbiRMZUSV>MwMFAG2qxvg!D~$x~M1acg@Uq{rG<+ zc7gvuk;`$e0)fU<~*`cJacp`n8&SJpX0M;wj+iwqS z=N_)x14?#TxuOxEGREuQw2CLuYpX1VvJ@#VXRwkobrV4Rp!FWdEqmY6EhDz~7zyi< zD_-&H0DHn+8#O9qT6Y6ND{XZfn@JqZl7?(kap`FZ(W7;_n@p z0Nt|TtP+0UGJ|1sGI=WU$BJx7eCM{^FXH27JyDvNtkGz8amH3(zYiU-jDtaXwGlhg zhc%fFLiX5Pn-+x=j?bVZyb5CKaDv!A{sR>~X-Huy1FdClbC{@@T`K`IA9y#dwu==`rw?$M&nPO4HrVLB$LiWhQ@CmB8#Hr2SA|?0L?T*k!5GR3E142uAR|1cFyoy-w7@lr> zQ}@lc?bGXbL^ctUvqk7F#j?bT8}yKLPVP$2oJGl1`jnKM4Ir5vzhK=h6w-`NI@+XZ zZ^nfV6V{gl*1S6NH-C$3agF1UM3+LKQ>~i&(fFgVr>m7tQMIt<$*&h{CpPcY=p+uG zS_;Tv)cWjRla*H%=%8-q z%eqEvfCEVqd#F#qXKp2DJATa5D)?^C-QuPYSch881?JcwWUdoEn=F!}h?kW^pKcSI zUxCKD5j>b<`;DwKV z|9w3=d^CtXmQv;%Au6;8TEMFpL@tHPDU6G$2U(A$oGgzs{}l9C3EM+0b}c@?pSdb) z&|;{O0tfhMi%a<1u{Ge}w~zhlxagNt>(Z}&BBObvgIasi-`zS=Bl^|iP>q8@!6gA2 zE_LW{n`2wUQo|4Z`;z8sD1H4N%s5rRnig13D_S2gsy83&@lpdNd(bFT+rHt1_*3b90=4C;Re8nGU8(L|V(*U8VfZP_F7 z;4KaK(oTDCynj>_(?|+<{8*Y|A4nN3MQ06O0Z8NH&Yf|W)MPmSQwWp>Ta=)|#USRN z8gV$Pk$p!z>A}`Fh*ABkj6#wT=+WcI4;g~x1i;$sBJhToQptCFMHyghSkR5q*s93t1IB|_)lOEuZ=gDrdD2EK*Lf?(F zn~D*oMig4$+YSllZU@_$6!XM(w5VD_t=$6S{I5J)0n;Tio&<{Vmr99@?yzqt4OU8xEwTsxB8{8TvWnimg=`K#8?;61?vXQpAKtNN#S^j~ykj38lCBj#v1SUlK_*pnyiU?C z?itwBK{(?{EOxq4+myohICJ*3eh*;?Cm`6=M|ODWANi($^QzVSa28lVGq%}LBM1rV z-uLa+H^Dt=6Ds_)lgJ1^b&XW4xHSq`vL+~RCom6YXvI!!&sdoYc1IulgZqb?1;j?I zYTN7hfuMJx61U%E&sFXG&L7!UqV{MR%x;_hZX*wL?!3ma=BwGBHGB2Jq%*G6*{6h+kB5>_9X>&aemw>%dY7?ZCPSU{c=hdOM%8QjO*80( zg410k``gPR3lp)?r3=^b?DtM)i7>n-|fP6I1;`!w0@+&uc0liddnW8JV9zfF+UN;`fkshIwMBT>9#8G1gp9# zhb1oEX>#KoKXXGPzT1;)Jv+jopiFVZ1SgNTBU~TDL974Z+K(Q`5Ue*#olkZYFGmCi zMs#Lm%eA{jmy=9psdW#u;T9H~0hOVJJD0wG+{Sm+GujJa#Wqoqt#-5{eE`<$=>Xa* zfvL@3@JV+-?>$84nd6Hi^-*mc5nirKZ)H9+eWuyv>P*LBMk2fYXCFr|rN3jp8-~HA zz8}bt!k-OkD!6D8!V~@>-8NAew^CzGnHLfT3iY z80BrKqcfD*BZ3qQQ!Ac7+XJx9E!PsJpNhO1afP!Su*f{-v){T@7*`Q=xP$quUFBk3 zAK;t+=fV2JeEJ7t-52pcu_@WXsS&YtC%2mI&~JT{k+GG&2naAN7F(3t>0sYhI2XN( z{6mU$nyhkUyv1Z}WebxI7lX=(Db7wdWB3*s{6e8c6h?Hq9O~M9NI+{?x2;b&2D5i| z%&}Q_`}?(y(b6z?WaDq+nhn_4!P+_D&;Oua*J$b%b3h29N>&Lpkxz2!o!15eEc3wn% zx94}p`BO(3Gp*fevXUp?A30_{Qg89GJm{=o|1FP@>9b+fmM1YTh6O@AYuJW&hnS~@ zh>i#$5V+nyIY!k6btgK$u+nk=&uY$Z)!v26e`%o&FA#$-nkB^+{*BjY*(Vd~M%3m1e^fHi@=sno)d;8_8j%$AAF3}jl?}in*RFzoVOab(MfqQP{T{Rm zFCI2Ezgw7L0mLPJp9Dv6H41%~*h}RWH+q4xoqM#dn3nu~|5c5RkQ7f;zJVsNv;-T! zMPEv^;**@RkpIzf*%Ho%m-lu={-Phe^1)Gw>Kl3kWmk| zetG{gOR@SH)V~!SZ>4S3`uA5`_UL`5`51!c@4_ylQ+tiRJU;&3Bm9`hm&b$W3g2BS z{PKAEkwy9R(e5-|kTgWv#{us^>8&rz_}M{@nxS>1SUSRgS*MM1qkx}Ve?0SVNTJ3a zYf3D?43yH6BB@N^lB9tFg%%$kd`E5bMK+{#plhp%){ftN?&E0BxAsU>Yl0rjoYaf_ zTJUb8lBcy=cAwvEsQ%>KleYXY?a=AO1X$s6jC4JWIpL&UU%sqDr@Vjg)wEiezy>2! z*)@z=lG5b>yMcMcqY&ZoXRACw)$5rOD0yHb>HdNzaWyMt1zxQxDsilPoYD6}MEy zLhkHF9kc!FGg*$#eac&r+Q_;DL!+ml?sqAPh40`oZ|TlOk3XnGAGmz|E&5+v)9-Er*YT!NVm@-H zeET=IGeDbVx5CG2!~>0GLa5i(nEW6AjQ=u-s3HfgJxoTIa%qz98+G)Wt&zu; ztV3@?)*13Otkn{BD`y0ta*o)KA_`@ke&aolVjM`rDXf;6iAv3>NFsw|r9`&s-v z;U~&N4;bCt7qsyUfyrN_&ChquK>G^;uJjm25hw8=D%On7E^3`C~BNyi?yWEcQ)L6I2`Zx&Mahxr;q%LoAK(%et%g zLN8kbeN@!&@&_zJh@x57$`>H7?qUe;}oOS^xLWr)_=Xy4NVpYn#VcZ+7Yrp?ALpS-k^ckR5+&obQd&F;LO# z5x4HN1m~`mitXkJ;6xLJ<(ALm`P*%m(fYiS;f)5-ofIGN`N6F^Ml(TY)Na2=_h^jn zKcK09t+03JYb;cw53Kk1JPPkQ!Y^D>mTvuRr^Q<7ztHdEJ9{Kb-O2IfGGv?-G3&G3 z(w#O<+L`NRG*o_C*JuVrxpy+?tOxLT>P&$SVx)YVj&qmbi)4J%pNcDd_wCkg#Kh=T zBjnIDZZfe6tOz-))U^vtDSQo;E(*^1s7pV8+GWG98PTml-G|PcU9Rd*8%PJ0I}jue zd(ZzEbT&Rp_iRW|@1YXDu7#O8FwHFd|7h>aqngUneY;Cb1qrBFhy;j~7FsG2KnchY zr*Z^wDnOZxQ4tveh8aS%WT+|xv=j&ih-fKV2*^BzM1vBUK_G!JL<}TA2qA)7FgXGL*oqyC?eV1P z&2=gnrtZe(N12wcb)=BsG@jc6zZ9Ggh(!7B*`|+zXA6K**cYau1jEA(@e1l{*SNWn z9e`kA6q@W+<2d^>#J+|BAiXR`M^%*uK*T{@=M3!=vfEQsTj!r)|DTHX$U+2VIT_do z=0x$cAxRhV|n>abvJb66B=Ty z7h)y7%;KB~6oPVi#TUjtxEYZzgi$Z4cu0?)1Gs_z~Jg__LEe1;szB~V0`PB>Xn#!B0|w3|PR<=+*Sn9D!B%cx&t8p}HU&Dk-uAnnM- zu?Rxq3eG`JfHuf`DmSrW25p{5O%jNF_h0YCXy$!k8vj1e$VS!oONWh4eKPfa1z_H* zf_W&j-)B*fkhN+n;0`3NdhbTEuphij>rK)}XZ1^2X|7IV8DkZ;JDhMf8vtRG>Bv5< z#(U@c)Q0$o2o!UM@8tfWlWF_H!Rcwj@-ADG?Qb3ZZfC>eH9{g^3@2K3YU##qRliK_ z5uiz*qkE(b){Lx@Ahna^TN*47l*LDy4NBI`1KFLVn&GBRPFIo)eIKs|;B#~)d7Y}| zgCC%XnIUtB0S9HTB$*2nF#N()3*NlS(QB1s*lkY;CBA}rBUpr>%p5ad zt~XXgO>ed7(mJ1)?#h!%1As@#L_*P?IB4PuA7&%||SNYm4T#2jG`GyHN9YSuy#4da&?FGwLby-kp1Pr!okN&l=ry zO+)v-It0JBK0(v#ZRf%n$_YsafUI=&j-Ac{(4Z};glApv7N|6OJ>+Bh?_?3rYxYFNR}D|F-3&;?`}X)Z`q z4IL@XwsM+ZDAVD2%f_kUK9RQe7PB95pDK!*%o&MNHQbYKr}I(2N~d||4&*i!=3mIp zM-B=PQ{o@`=!^j}JK^^G%zamGCuyh!aP)MJ3w?>&zI*xFD@lVN_Y63|l#!!j5c_g0 zfJaWddB+4wR^|vIq?{KcF$BXj>_rKeuahJJ!Ug(iZ(bd!w$83Q6TY~3<(zmLOgQHl zzREn@rQzIs&AJ9w12AS2!*RzOotm17?_cGsjhXXzWFXyI2r4p0GObXinK^wAoAkOe z(^M?cdBQ5@k>--+62)EC&}F#hidri2Y*fFTRg#^(>gXowu#z%;Eaduade|x;Zln8A zUfE~>NFkDClS1FRD(oZd;=E%P)Lv^7UTm@oM@euPiIgBe7X@#K2g%Ww`iJuMKa?Ka z7kpd(bl>V7XPWKomd9%h@xP7a@_y#2R`L41IxXGVnfE7w$PqR_^48Q%;3;N zZ6g;4197((rl)xcdjRpgbl-!S(H~s4sIN^gK~T=m|4ae+HH)~La2>U_~^V$-v)%r0>mGO^`#8dMHB$6eRcb{HGuL8{@t<^C2GK9Nii&dV3Yi5>=Iz? z2nUs^zq`DNkf2uDgJ3{ubKz`tCoknD|Hw7^54@7U?{odpv3luMQ2Jvj{#XiN1^y-| z@dqmYK*b-Z_|rd*+WoOX{;drndAl4E`$ERW%8PZdK ztmVkzU$2|!{MEk?^ft|3q}=%wZ%xZF+q-YiU!tp#Qvn)lKKtt^*6)m!zZ0arri-BX z$o!Qj>2JyNLU?h|e8;m-!GSFDf*`HVA-b=CE}o%A17vdYe6gZy8lseAU&tPlMO7ao z&D*S}x*ELeE0f@~yGa_a{t~VZuh3Po)Q-$rCe}ywJ)(=Jbp+c#@yue0z8gC44rVxcGU<9jQx%8^mZ>KbDG6p5d z;m77PBGnh8&Ndi3O!caQ^$tSY1g(PXDiq)rr)PJgw^Z%w-L_Ca}8Ew)9Xq$x<#Ta0j z()yDVG%7f#BPc!d{1TEw+j{<4E@6|39~!?zbXjoCfIHBgEy%4^mbQ}TaZ2g5=mbBBz#j$^WQ^{iyH(z6If<2H9nPs^OSjRDFX-Pr zEta>SL_Fzh`Yh5sf*_rFSF*0oB~%`Xlw|Qa)Ki%)*lMYJabf0Wz;!1X=E$ysSd!af zEf%Dhy67Gl^h8AeC1yKo4yng}D7L5P(83)#BVk+Y$rGYYg9E&n%zXO7W`NE--V5+> z&;ch3*Z|Q0JUa2Hw zjUL?F)4Zg6J{4oYx#Vuug^Rm<#lNt%1mbu0Q9sTJ1Lod0q9QQzCnC%T|8$FFBN@)H z19qn+@CW+U-3L#?lXiaqvaC(?Q^z_=cpv&w(MCxc{cA z5a^DVi+4L6W?o5a2NObBu-#-6R8a6E5W5SpZ;;Jcw!v|;Re8ZU^2)KnqP$xIVu|^H zEO)oDIm`${uFCMCRY7T472*UAi<->+%4)j%n)0X{HT3??Yph+6V$^#NZdF_?YA630 z8vG;#Om~fF+Xv3yU6rI!=y)p;Xk_1d0Z7D4U97n1C*RQ;1H-1o6x9x|qkLHeZY&bp z13*TKHLtKIrnY|9~?PY!>hAM#EYRR>B z6-FPCc~)-rLtA?biK$~_Xy!RG+9TiM>&Y!`96v*eA8%770|y_*mzQ94QWH5JfU$=- z0(8;jxv&eKE0cxUC8fIuOuCm+S}%7J@t#Hc?C9o>uy~9fWPnTZfJZdiJe2pa<@4 zK4`^np;32H(cW0@#00lx0cvb+w&d1K>|(V(;R{yuPr_};-EGd1LH6EgvN0p@EvKd= z&V!eg+mb@sSWl=bBKp;{!Oe?;Q(#U-mbk1dY2^NSVCTSfU_NfF1&q8wE|d?Z3UT#` zhDN48OMnWdT@`dK8i?f@lM9%27BRcXR)}bpUEnFb;XTD!34iVe3-fX(oQ3X(NO=Qm zO>gl$ESa6($lE5(8j*~?3~;w1C61(#&2=9fq_$qzG7Y!_!PS^$4N(FXBl_97 zc)Kn}R%7V!VduapcFef2Tw$4C%CYRWa5pG>3i?5soq=@q?zYRx^zvC|iZm*OBK!&~ z7ogyxXAT`DEZs17t7v&l^5;~c%Xc@m=BydAf}h6X5!_w0{upL zpSR)_GACwFaG86!Z_R4$!23n(TYP@OqK5N(N*7;WU=4%WanFX9r}aMsvdL_PW>k!)KU<1xgh6tflfwT8Y7Co7^ki&-KTY`rs9jfdl(!tU|{VIk~t#p7aO7U^j z!xnx~$`krM)c5q%b=YWBY?&8kKgrnCiT6uDVt(9faQ*fZhX>Z94kV>`$0|tK<~ky0 z)La>>o61fS8|s-ppF^UhDJ9x$JbvE&A|T+}>3goiT`mFDoOulWHqi*yz!E}^t$)1t z)L?tbAd%-Us#nx-#&Bjf-kF)1J?k1T;HV0sy;C2)wMiizT|AoAU(y8#Z^MC9BtF%z zy#0gBl8mKI_Y3+a9WskK3#vKPeVT*Y8q>jt!`r>v%Wj3OH7&QE94wOElspG`{hRnF z5tJLzWs$ZC8ddrKwI5SNJiqqHj&n)?c*b9t8a{<3XLh?YbJ@54rptfr#(H-k(_j=? zA+AVMBfA7T!ePp5@HG6J7Qg2x7j$C`O|8kELPz%0pCx8DE{J#f5`9%E9#H^IOS|V^ zxG_9XP8J@54`Zg3i?62n^4XX=!u%NXOC9UySuesV2EP=V0scb;U};pGt^M_hnKW$Q z(nQb*cA-fbCLzR55qJs~c1}3@Dsh)C?YR4XAh%$2m&y{sKmK*-;ePTY{???n^MQ{J z8(($bk1*?{=>r_1Q^0FrZ1*~j#KhdU8ZJA=g~uN1-@Io2M1z5*|Fg=*!#~BQtLAoj z;#WJz>zs0gGwhGwf34sjbV6C0>j5}qmgTU`>3xmL@+?-p`rkeC z|IzLBzX0B=45GXo5j5hm$f;8nT~mAo;yo4dHju@klP#M`)^O!82OtAQao;GE=HZ0M z*~V!rCKIldbL!|+CG}GFP-b06Z1p=*i1r!+U<|cu1j=WGLovwpE9HY%t4ZR;rk#+@ zu%0{i>w3L}qK9q~N#mQgNQqB9Xo3=dMf%V-&dzAFr^bAc zf30}23qeVSGt6c)$z?LgRXXt~RuB=6t(A36GZ!z6^}!d!(^ZL2@<%xmj+~Y}60&m{ zc462pT-gu?~4(zvvpi? zw2*-c-3Ot=?BtDR!z&U&uC*4i^X%!pNX++a)@V`3*`2w)EDz%QC!V+y@HjW)%J58@ z@+KwTUkj8Gkf@Q4^m2a@3KX_-R3>4*?}RIwf$@!DfRce9pAUo+I+T3C^h7yIJHjDG z5V*3V*3$P8lCQ|D(|JSvX_l5+2yQP17JeI^ZchFJwY|BGyLtFW(#j!BRjf@!-(1{f zEGA@XMLs{AEGn;=&o4Lvd01^a~2p`#>Ei){*3dG`>*BT zNvS7}DIjj&ImwQ*v2OPWZ2urkv|NB9;O5_e8@cbqZB&0=>ZE2kH^9fm6LrN+vKYxb z>LX^O2Mg0i`nWRDy`@W!)Vx~kTZ|0MU6WS716Pr+_kC|_!ftQnpl~8m|K_y!Fr1zV zqv6|}5<4)!{gd%R9HnferUvbrg~(3svB(6 zq4{Bja|AOr^0aG7K^4hl1!|Zh-q~#Xa(Rl#|ePYwvziZRZI11YD}~f*6X>ba*0U@7`~e z3^Zlve*Sg;=8d)Dul63>?b>ZCjdTXfNoL*BD2#yBTRAGq;Mtr}%dGkv&^+c`G3Lhy zGK=r8;#Sp}*}wH-Zr}C1z9bcPs-*wP11l0Kd~p*S_4IT%jQMP$F}OZ^e{82aDJ9OdgTvFU7mU)u z?`!0uQZ_3+d>75{UDf?vK% zYac*)GCc-58##^OslL#Sgt!YE;JLX2XA4l4+1R%w<%45Tla+eQWG<%tvvbK%%OBPD(bRVgQ7mm4s+epGIfvtq`RA&%W> zq?$YNWH#l;5%*xTdrh#su_tAYm0nr<2dXfZCfp!Iea^RFFm_OC@JhW{)M^zvHL8?p^F)|(6GZ`O^L@hNm`$=To& z{m^{K5TV5#r2EUOS9v#HF-o4M%1g$edGO-qeYo2a^yQ~9yPOUWq%(q!tXgrM}$(w(Ir?AIdSY3pj6Z`1GC zi^W{w+87^U>ap{)lUp|yd*E+QmK5d2VKULDyieP04lh)M4rYMl1rFFIsEKqsVxtod zMrYYhBuXzJ_PuK_2NeQDg&KZgqJ}?9`VxvLG`s6%wB+P~_P2o9LOh7t;q)};G)VVg zoy*481Jsrz|#WwtRQ^fN;P*kj(0v0FL5%-?Omes>1e2|aO*L4iI`vH{| zfoY!w_0z0HVD9|smBNaUvzKZF2TQX#q~~u+v{?Fq`&yj+ydx^Lf2s&+hME|sN#_GD z#juM>!zZoxWng&HJUan^9JE16U%op(2&C7l+ zs|aag-ZD=|SN}H6ec*S%XSZ+xGY`Yr!n?OZn93S>h_abvinM4Q3ndn8&K+nC@VbX@ zuc(z#IZ}%xIje{_CS}zg9$-N5?H$wz!=#JZdhK2we5$wGEw8~$MIUjvn>v==L#fPD z3eZPn=S1ceF@U{AfH`deidgJoMZC%fg%Ky(U@zsYm+mwmzX$>;X6l=c{`u`IAVK2; zquk{i9JDgz>+=A7OVL81+rUqi1zRF+ew=y?P$WRHuMv}#BNNK@Am-!uD(cpLV5YnX ze~z#r)2ePhCzYfcQ?;p%y2G2&c(<5KIjCk~X&JQwHV`I+^%Qb^8}O3FHU&d!_M7@l zu)YT_4eDOkh=vBS7$rek4ZP6Ht^o4U2i95oo9iO%d@mpSCs z4RNt1jkuR~8MV^8UgViAtnso-hv6g}jT;m$U$u{IW`P%aDlj&=6_)~csPt!_7Z}LW z>ax+P4}rJX0x9l|Hf9@Z4&B@)N|TRIw(4g{)mq;1!!Sk?qJPPJIIv77yzY9Rnq+w6!|M zE{%$e7#Xq8yF(mQg`sB+R94@8FV%)lhdmepP0pIKGqh0eSfoqf=No^OU%rGgD`_M< zr}!OkdZANMYRe8(1=qb*5k3ciIEvZ4U6#r)Gay;vf*OOYoS+aLp&ljvLtS5g#JeVd zLOnC63W3s9o&f|XI}AxrfrSmRpNQ{pJS>>k&F9bspAaaSLWi%RGL4{H55M>GJf{R~ z-=n{p%Hx3n8OBMUyo%x-PVXO`R&VVDjpbL%LTx{JHJZAS03RO^U1xB?53G;<#RG!g z;HXo)fe+~Y8@KN$RFWkve4gTNn!Ie1ecQh0MIz7xMUTy$~f;(E*uKbh{{u zdqH1DJw<>LD$aNyHyt4X8OFaK1kh`QVw^e@aj)TW=jOH5y)Q0P7#jXtoBW6yX)7#Ne!0NFa`5J%!0%)hEAdmIckicNf^6R&R9)8=ZLn(7 zWon&Nrt(pSSSQ3MTptgfZslY$&v~o^WD5{yi0$zk9g8m3{Nvr@tqj1-~Bn(zRWYY^$q)PjX!jJ#0ZXg9gv!Z-`FL3c9t z{<6SlR?lPYF@ zsCqbSAgnKc<-*vRey8H=ZFW4W4Iw>zx+8@{o&u|>bh7g94$fDe&7}*rJ#4+t#g-v;2&2y63X<1^}F3Dq*GEex^K*go4 z1%`DO2WLy~QvK|Nw#^XLLENZWRKL&5zQ9T`zWw4&+VGSfn7M=!f6;2NZ%_Leec;`I zV@A+RR?39f+RP&(J?Q%Ky4i-t%HGO3>89=9=ek(W57|#s0~qB={tul+zoeJEZM1$? z0Oh(|G89VfiTwVO&W;NWkQ5+aXVa6gh%rqa)j^Nr8gnqUzeKqwh3&3T!0g<5!;QsAEyW@ zgKx%)dn;U^6LrQ=8agiu+J;8-)1CdmlQCsa)3-6t_PDi)dIiSY2y~EBA zw<<7_x;uIHrl7Gp>iKZe+~PTWYX6yxurTDeAV)UTgqiIo8$8QBR)4F#vnp@ecIlOD zp9x89;DYj9z+LaJQPUns@2xhE1oYv{?achct(_#F;&-G;!rZi@2q-itfI zjBE!}=9D=r!S9Bfms##6KPR7xn_?X52ZP1^BJ0PT%IEjK^+OJJlwyy8hotU|%oD!# zg?Uq??DE!`Sd9Hu@M3xUm_G-d&vk2vKj%YprcoJ#ZYkUr##wi;y3!aCRJ;Mu8-a|6 zAcVNO&Xmy;hJW)WC6at3nf%BewIiwYArjNyg72tE@$(GoN}5_MA6E2TgU|v{jmhX) zP=x>8Y@-fpfaN`W3YvH)mAcg$s1z&kJRa?Z@)08t6h#Qq`&wP)Ejm#D+F=-+=Ioey z#N%DK9VQq>(;jQjd=ZWx9O>Kam>Kk4avS?0P--SF?iuhcox8%db%`qKM0r8n{#E*%CC*+=R8=YEWu$$R&m`Mk@{?!&VSPoFRUx? zH&wmzpYnl<6so_!`{-+IJfNRczuD)16d9ZTdmnlI^=xoiM4fWo;znzemaA8TR5Xes N-yA~B|AtXQS7V#P02>((f*WGUGDl|TQ8x^l*0MRlLfw6d`( z@Z`mlD^}EIs!07-E8FWM&bmjfSh1;n>F*yzP}!{&D`KTizn#1m=ffVOB8|v?G!buY zoZjM&?+4#EYk}wM5x=(nvBmsI+0^w#7TxTvB#_F@}Z2!U4v4s4dmh`ncE)`uj?nVnJH z{*w3)#J#rz*ojP{UZ$iSOM)6b-!4#{v=1(Nl7TSAfzA&Is-0hnAsqR&zP>c>L?A=#HWj^5sdSR_0y#y{HnysBoQc$A2BH2%~YVBW17Zc%maz z=R7tTcehD2xP7Lm!Bm?h!fw03Qp~Qcj}MS(3%$ov8ZUJ;YZquEv2$bYg|Uv{s(!5! z_I96c7TSE~b>t}T`1VlNbx?QQIENYT6(hX5kbXSK*KdV5a`%y(`1otCEjN{^{#Xi0ofMGl@7lS zYR1*kdENF!f_-$&8FWRU#Hdfm??csEY|nz4z|AVsuY2{qvuu!I3@eQ5X$Z_N4lM?E zrLV71+5m;7*mpwub}|uBS7ve*ri`>S6*W(XuU+Uvv9$M@cwdQ{Weu@FRL71r_|( z2GbT!^H_lwC%2(xjBuS76*Y%T4CTE z$=%MTK4fo{b)kQ8L5Fa6n26PRixc1F_5@OQ4-`#zwS$$bh1`yQ%o@$XFt9O_dRamH1|_>W3g~R$(1mGm)>Y4M3AY2U<>IDBlHkR3VtyEBmm7-U zM2Tubl&+_6wbve^R$usQ@#M3YxfTNn)`W!340V&D6JXgD>bw|@3Fwf08h>+n#C?n& z)lE-*WK)QEj(9$(ZZ2Nt zK>MRh*;4G&@K~a8FVclr4Mo{IQC(lM^(jYvkT@txMxUG3dF*XvP$#bt1P0jHzz*1O z$;}+_Sd*wQ$ASjR0}~#yvEbTz+>IeqwtP~QhZ|18!{+N!;wNQS7s%v~F>P*wd$J3GA2_b{EC?0V}LnGMb!bWuLg zG??tx7Yd2lB#Zg_VixB^jdgSvjcykN@=C*CKAf9?+i2ox|4+F#UKrf%0q)4$n0(s9 z8__{OiVY55l`7XEIZ5`iGy9tDr(s+&$_FKn&{a~wOTsKE^_R^2iUEgcf0?5I@TUNp4F9Vj z;jMV7SH2+I9OiQvc{MmeI$Sb8{0hVqnD&VV94T8V&oWO|`LsudQDY?@xt;qHQuZQ= z{NEXoBf0H!Ja!mq`;2-I2|1dXM#sbf-!jn}{CqK(yLf#jr^z-qsekb;aX&vDna5Qz zX(;v}E-nVaqNVY<0@Y|!aqwZJ<7L{t^mFyHY|D#~E2b6JIV~09`eBTDwew}n{PE+1 z`wqn(2w@&II23*UBaN&?#aO#w_64Vh@+)~?xod*gkij3_VF#WtDf7+w<}JB1H^g{0 zLXNVadmWFd9X}<>e6c44*rDX(xt(`{fD+o_@z%FyrsCMZfuYGJ)y`-mVQ#>}ZHV=N z-SLtt+O$~q#n!RrlWO1a=k|8rJ6C!}Hn~~5&m?Q_KMC^+NMg54$D)ZF)sI;N09JM; zX!|?QwD*)dT1ECBiEoc|BwR1p4~^N=VdeNmt=q~e=xTgBce?(t$!Dz|{d|;J(|G8J z6D~LWL*2#J? z;BTGGY=}FE>^q95)JB5Y(XZm2`+7uwRrf{$2PFHw_P{I$W-JB*;;R&~zTt_KzyvR5 zYvraeLM(D0{f}81ZQOSh=%4>;K8w!iL^k@|1G3R+)*8az0a7I7%4_hA?O9!u*sUAM zQ((zaq4uMbp%; zceU5lM{2XS5sDDz{^NZw!*m(kG$lUlVoE@sX#x;pPbx5>1eVnlI>j1C>xo7^4!pL( z6K+_>eiJ?GDSTCpiVqz6SdP7YVN>Jyz1e%vnkr&kqKAUxF&3TbzX^}==N(rkAI#I7 zi>4#iG7+Zjiyd4$3fj0&v`y$~rdK$zV-RK~~>#NO=n_4oQSvwRPj+W-Ku<&`hTRDY#BbsnHR(Kv2CXYkt60Lc&7 z&&(x1mY6jh#6L(*WB17Y4ra2eHO0{ftO!c5gtg$BOoY)b3JPl@vmv0j2b(7^6z?{K zg+|5MnbcPjubozSi~>>Cr=pKHB972`6!K%%Z)$USXf=(1)oGUZ=r#>D)ggT8cm0O9 zX4?g9eVR;`mAeI98iNVg$9Kwf?na1B3vy|uwcU`*|3pd%<4h=-lPC@0&rrP3C|k>c zx5uhw7~k8K^?`r6-2Pk?RDFZ$*~43z&bp4()F3LcA!d}7`J)O|*pI3PjHAO7zsS7D z=FQHt{>Ypx4l5JDytq@$7IqkW#tUc4VhSX|8PS)BWk;#NX<<1B4B*6GgyoRZ?k%H% zZvN&=#^|f?uHzE1u{j=@!Y(srqrOFU&EyUR1V_a|$~Sd~yIv&pT^kgD@hs4>hpX#PRN zhSGe400@(Ux#Kf#hO~E^`iMZBK&>|ieDb?_E6Y&1*_Z;a?oJ{GkQt2x7#W0E-3$#- zgaV9cd)Xu>#l7hKmgCP-!{5T{Wv$=hN93PhsYXFuxP&(*Y*AEH^$;O4Pb9Btsc>EN zH*q37pL}S&m;YF@XM1iC3`k0r9IQWv4oZ-2MxyNM?q+V|e`K5<<#zLZ8e^8Iz_SO} zmS+|!vFBvQDHc3@pk&Su;-k8`ZZA&SB;HwqwzV_?VG%5Jbj7$jN}eGxj4AOExm{yi zt}{g@zz7D>zjJbf69SQ!5rC>WJ1xa17pOzHm9eHDe66SJRpC_xN0)GJ?5<|_S#gO@ zy$hM6=J8gBDN!A??j%1EaKk`1y=WZfP3UT7CjkN}b7lKv_A1TKBRJTC{!U(rGFUPO zbzxxu4B3!qiz)NGBF96!dssyc=E3wDK*)KY+#2tE1U4<~fH+B# zzZW`O-Gllbe_qzC@JODvu%X8gA*1X}q$jS=q2&-SIMQTLa4ISm8=f4g+bsic52Ny| zIY!86p&eBpq!YH*R`-6)3C8|wp$Xyg%yU+Y{i{eA+~rx&!l~;j6)fO#ud09^-wLJ`nvU5^DS;JEJFD{3`R6 zcD&Mid`UJ4j=jS5(Ep7g%LTbINw<7rn!E+>kny3+H0GHvz>dVqbkQ!^K)7=WlWjy9 zFSL1nT@aF3HEZoyD4FMlLdWN6M z>>>tT*RGQv;#7QGycqo=!&r>1qPBUljc2TPkoV}m#`+Uw*-+=|{vqRW1nPLySi#iC zkCLcSlbIXnDt5PgkpoqdqHgl5a3@i~NE*XGr@>rb5}q&z9?!{bxe-~bin4|uk;GRO z#b#s80zHwnvrwISeBn&X(Y`VKLeb;yKBF184EjXWEz%MVc;ya4blnGP?P9}q=CL{G zT}7sRY<+_9aadqvi|9y2wN4gX5ch1j{SE2T(SZd@D}~Q}7Q54JT})PW;Xtc2CEOr_0E!(G zs2MPb0~ukUntNBS>1#RWuhHCp!K_#um5Pp4zjw&6D8029xu(>fWdM~DUKv(j1=lP{ z(&7UkIs4IAZ*Y5Z#n2h2miB1M{Oh%DmX1wzL`Vq_UGJ~UL;+*mycxW$VyJeD5$1IqjSMmjHNiED8_9=Wr_ ziRm{(=%~YZ6gbyIKi}nsjlDa~UV^<>ojn;VVRF;@7MpK+1@jKYR9>A*ogZ%D?ZMs% zwJj=-OlXSK5lluwBC1tKEOI*c;|-4B%w~v9VL)5Xw1wcwsm}mZ)VJg4imOuYsTKm0 z`x7wyOiKMx=qW1mBGLForgvD+488H4DnyrA6nIK|UXVdFu`>{xWp+RLc!=p2NH*{W zq$@4f=logZLc+KK7-rhrJ{a|CK2eusJd@K$@b$z@6>y+0(=(OLY=poQf=@>aFWYj( zk=h^Axb*^5xZ+dnDQ|%{G8U-)Oppo%vCL+HFJrf*S(@bKjLG!Bd<-PUvEh~%AlrKs zc73*UIwP^{4*A8Ix&g9;XiZ>hFi#yJ$1uX!m^7^UP^}LAZ35oNAgcX^kvG!Nw0WEy zH8*}v5(BNoS@#0E>*lC~s0x4AQ~~oF_QoB5nEVF;R-jLujgR8l4GYcytWxPbd}RSb z5NXRWj|O%BHM8xwVCUyWMcZngt_8A*g;i|`xa)qsdjN~3fX^g zZO8CjwU%73LsEyj(1 zRe!;V8NXU3w(~0V<}O80X6pHy5{BqE(1zwMgmbt|wH;RDt5cb>_2Yjf6wQ4vihz!n z?9$p!yUN~r=xKBE292}J*`nL4RhDx}ck7c@FXxi5?ybLoJLD5E8K@T_o%8Ia!sgo< zByMBzlj5r4UKD<(GR*|G*`V>4p@mTm;^B#1Rt@frOL-`tjHK1`=Tr$TNaJS2Do1Jv z#6fv=Ub^%s-$~lg<{Oky<-9a)5zS_cQR1{e>8KDY_T#<%h#$2e>fMqn_T%RiARnfS7QX5OTfe+cg_2~_bt(@7fX`G-pZZ(URY0awT(tO=CEF!5nIG672DT=>ornRU2T5g)?2+v zVzXp1_Pd@zI@;gmH@4#g0WZcv{dQ+clKYb_2xfHaDsjWfgeT&;xm9Z91ZAc#gRdKo z?hv39S{o(bWRWhkBEKCBPIkh2LvYwSZKl-z zQJ-g`&)(Z?JqGs}kul?rQ~OeP!_H7Rsy%5w_g>!3DHM$EAx0gka-2$Abl21G=U*-B z4mYy5>VX%YYUvl31Q@d`UNrcfaQ}?kw{%{}7;OiC9w~ z_~jUWq}hps=)*ScB|9@bW2#>D+^Y@+5^hC1&uq>U$~dSNx~*g*attvCZmsqS180Y% z`hUZRKA9OG48ybpW~3weoUs1c(Ihjzq7th?)5`(muzooqIUF7EQR}6$35&)}*45 zb*HnsYI>DVD3Dfk=bON4J}xoHc?2(A6syv5w+-TM5W4Ijh3THqu{fLrT9*bIRK9J6E zrS)O48tE+emP>>}u3^TL-Wgzv)iar)#8jWPhiHzfIB%^X!nViIs)Jyj+*;tP+8_*F zXjAdRvc2j);zoKR8y!8{BR)#KMDZB0$1qhizMVW5{=wJw zvSVt8#G2SzX?r4P|H+7#Wz)5izI;rDc7i{VpiflBefF#v?O z<84a=DH0WwK4gn+_88WM)Yx1Yg^2k}vIn2)03h&^g{9w*EkuTmpJv9;pY;xo$BjNd zzKs!K<~$<=hr}cvCw((R=Bi^XqK{!Dpu0Wz_}j8)!ay)*q7!oCISQ?qhn&d>42DWS zA;x0jeVULK@6Pjgu;thUNT0a2%eGQ5;p zB5c@-Gl$BRn8sIGl?(e^NFwkbJ~n#9=7Kt8zg(*igxuB%D}koI@WM?=?8q5DEHC`p zljvvoB{!yDVRLhRO_6q}r>b8D?)fkG0D4 z@jsg2voGqc#mluK>ElWO?3=ihOaqeQs#PJ!3IIS(W$LJQdrac!)M&JW_p4<%fC=!r z8B$uM9zA5tEKGMk1T7#j1Q(S#qq&Xgg&)&_AW2w|Bb)aA^Sre2V%29+H@|xDtvvl) z_jd6?JHU3yOx$d}A;`#oDtRU2!>%x`3*x4`P}@>rMnd=%vP+D8>Bodyje>!ahD~GO z%XUKhGfe_DWG~-w<^hBtq&R|;MQ#OXf~MpSMpt+z#LWJVciUW)@Jd2esE;$5BsN6@ zO3TjQj)r;C@a#F#HlElR1BtjjN+ow=ZC(Oi&&QvZXh^E;Oq-y$!t5`~bP0N7{`~}4 z^>|gkh+Ufj(8s zt4o^u5Juu!6D%)RFok698slnm^Lh21=yAc@M>ZFK_+5Du@ImcEJIicXPyeH{xWWg~ zE^e~Hj3bjrl7qP5%i4x~!%p+fBG_WVty3)LgwgMq(4}Eg&cs3YOmj8DtsD` zCO$;NSvNB6zPgVLVQp?t5l0eU*R{|-b@o3A44#DMLws)WwScTX60@uFGHg((cYZn* zHHE$91M^ZB%=e3D?#b`AghV?@D(wIb0cFld?D^;hvKn*NcDC2W^-^Nuk<1&UMhHzEKMQi4*VVm_T_7 zoymDC@Nge1VdVx)azZ?p5CX-20J!$BV$V_oiOK`U!+jm*!8@2Pmqt_5Wazv0Z=-e6 zS@G{%^bx>?JCuxhkE}siB%vW77GgVKpqDix`h2{@ORGl=1s6zU#m#SgQu(ftnL2Y9 zJYVj?5_`v5Iq`R7cT26|A!z=lu#Mz#S?mEqnR89m)kIJUuQC2oc;k)HoO8!pU52i} z#@^&=8hy_?f?*HbdrzOIBI+MJT3cbCw?^n?gT9j4`pUkGzbOcKgV2y3AwT*khnkgN zM71_Q=qX%?zRPidZB=^(VRlFi`T3pZh8PPrP5gu+Y$wK$eHtI-iqT`SQ%Yh{+8*zO zFR884#DkjDGpkfaO1Gw*l7+2ONoGfjot*{*Oy%wat*eU(RKQj(q39n`!P5`CddfSn zKrN488|;}Lu0k0)#F>ad6LKX7amb_u2A7g>2dr13 z5#3dZw)29;Wi&)1U}!Y+%%mwALTki8vc{txMKLk3v*vanEbT^LX(M1wmRZ$UVAd(` z$M#S9klu#qI)Dj*m3gn3ZdT6kp8BG6JAgV&%CYJx_V`nIzT_-|6_7yP5eo zYvcjJZ`1+qv=_~N?1YsUP2R+LeqaLc`~~9y)ih#KHh*I(z`tIq+@SI9!O4AYFUnm9 z7qhnJfnmyH%N-I70rpMqQ*^cc_?-M+QFhd!{Q6d@eTJ%J9;+V4GzP8GTQV~Ju2)# z7!~m(Br(*w6ep{fxz<;Kd{UbMP3*-Nbr-MZQ$tP@W2kd>+faMBq;rZV;Zu^1kW8d1 zL-_TM1UH(SgCL{wwNWA)wlgDiDibfQuAEv7O@GV|?a7*}dWo^4h7)&lgab;CRMf%$ zRy(Q;#8Lf`>TS#IP5_5!NX}K-3}q*ObN!0%7lPwKzsLD))$#DUm}Wb&uyQcwzv$ zh;o?-l>*iJm@f#Nob@U&bf=kSM19U36C8EUl~f!9U}Jo^c)}|>E1KG(F-TyTMPan) z(#6qPX>H~+>lmalEq_{e1d!s6xGfv*%__%>1lX3pe0L4UL}-_n11hY8d_+AG9A(E3p1FzhVg@0pRA7(*KJ7Eer54I z&sjbS$D4$wFAf)8w(Ep$u(}xObNn`)FC0sBry^utN?rjRw~V1B`yb{~Yb&?$j6jY) zw=I3<3UGc2fr2QUjfO*YQsL33P2z5=pRsEYJ5V3v)KadwioEMVo zE1e^z-ScqY#>y^e2NZyDb?Z-7}Ja$pW|dK6Hj`3**EH;*>WzgB?e@ z6=h@?NF#tE5zRdROo~4*QeRn{po=!OIxe`6H|-m_3XNAQLKC{d*|`XNLKEPjO+#tr z`5^LW%Ycue1n9|N>rpA%xq|}tqxfi?^b zHR1a*xt&2GSbyHY+d2SBYITri6$^z_cR*eu5E;Z#f_6K;mzBFM%APBM(3_ruV1gn+5DtS}y2uH+dIb0wo6k=e)x6#>Uzfu#%FzCJk@8e1>Wkmr()Hpw z@rnPJrU(+EwSJY#_m1u1U$EMX=PHfSnf0Cnr3e$ZyBoA;B%mP=#E-akfQv-F1@^5{ z=>b}~*jC}J5^$$Rr1=5Q$YE}uveO!G{iD}lRID>GdC2Xn`kk|DkdTu1=~7 zxA8G9LO~MzlR!C?n{1Cyy}Ws|(P$YWU%pwR%O+^CDs110%|;RTZfE?syUplF*WE>} zp=_APu0;cw^hWgO7RnFIHVRUAR+0R;9HVLU5KR_8JTnX%=(}lhcMiPEZD*HpjQ&Mr z>TuHPHMxv+rmo7&-rMEOo`GVZ%|eT!L-Ap$FJ=9ht~DooYW*JQLK75wS8ZHM^*Jo1 z1Ly0u8ZFnFb@l##CJdJ=&qinSlHkk5WKzZ1WM%c&^~_z%H^>Zd5}XDeZoc~Ga=qI3 zLLMU-P8#C^%0G$vGVQ{Fih;GIWDme%kgdUNg1~=Q`Z~#Sk(ztna&mHhcXPJ0QA2T? zGawXybe7wm8VJy23)in*TKitpaTU>_56YyWt=sSRtv@T`O#3}mHSi0yfh9YVizzj{Yov+y92>Du2%J6n^9X zWSEiHe?_1ESN(o*Fhs_T@`92H|%k(wIW zqfGe|22z$4dlbe77maxnQsrv&onAYU#G11kRXUk44)Y~}Uma@!qZ`1URqkM%d12s( zU#EF?{Ec$Wn460i!Ps;*n z;Cq!8^gJhPgXXvJe}7Uko3+8q|AndF_y9xQsmP)Amo87UL?WT-ugNN{&exWg_L`D@ zjEN}U{_r}|lTS(9-F5YV+fK0I1`U(*N`|%DpwW0r*(YBqJV-yS(z9SfXI^Yu^W+ z%HL+ErN>XTwgrI4eJ3vSMq8BSz2l|8#DZDHEUzEm7x+@sCzAvlZT`WLqDsK*j=+}* zB)~bJZsc_iO*Ai?m`6F^{d)xg8S#|mpg`H$h3De#|&rGuU5%E<%@IC(ZFVZ z+G(YOFo};%8}ZH~!Ql`cqXCVA3Dg^Djmt*jfQEQ1qZWI3caH--BT~rX)uNNp z?sbL$X^b4p4(;9Qk!C#*~ma< zfdBIzvgh5XnjdMvFz6>h_!>NKWbp;*=)|2Id<;+ijSL+=3Xlf#(y}3`l$Z~v)NlL(w>l*3B#!wqdv#(c%Jep5p!pLJXKPx`^liaMhcM4@?ht#2*qd`%w4s9= zROi_p&PLa4ZxxL-tvGF*)48?O31YOXR}~yHtL)=Sgtnmo$*QdJFoT zk}RvQEa}9khLJQ_Sb}kT&P3)SHfU)`P`=-Qi3!4?_(WrySX${iinHN`;?oCUo;5Y* z2P;BDJW0j&VSmmQGO~YA-fuy~9Sf;>YWk4^55auu)`WOZZ8i;V-+hFlkA=0mnw)6o zGc>ZpygN_b#c1_uA_oNvCgecUO=xR_Ppiuf><=2jmqQs?b8Ij^CVHbp%{vZJ9iHmx zV~!po-KnX4XOiHU!)sLf3X*Fl#PRw@QYh{aw@Z^bX13D*z}!g0rNq$fS0093+;v(k zc2OQ8(-gs)8Vdt`+Y3U-n~&{fqN8;VB;PklpIU6KR{P>xtafTLC zYk`vBFGw)qVyN2TRsW{^k)Ac5OvRd-pC&S__k_@<;h$!OhKP4O5h^014_?klO* zkW$g5MbMR)-o^O5ie$L1|5y_}*YOG1bf4Qsaf^TMuHnWQGDrwJ!JM0k8*^P?tX_l&EI3!66s6cgI(;&l^I4+Wi%K&NHVjwMNE-Xax}@oB=0$w< zQ{!O?O^Qhq)zp|eq(w+0!pArjS~eOhe{aPq1$UtCPv7HiXIUt~sytz3s{{W26T*he zwRWYzfs|8UM?oT{Cc#`qRO3=Pbqe9TgF_*HRJ_Aj;GK_t_09Jy_GG&IuF^Si0>y7uT0@=MPXxsy!9%_(#sj0bzw zaR(cRCc-0!!H=Fi5G5B1(Q$dqv5I=H*vIQ zu@_W0cOU4QE~KrFsPSGEt3ta|tE18H=cl8Lw|gOVJMpKbQ5Ztq6d(u~Dr>C8j~J{g ziE1KK=+)bpo zI;O^xiN&~DH!mA2k3poFM25D_uh&oW3U|gX7QPRUD88>IH*O)>4cAzS^ z_K@4znddgTo-`|0Mc<_FE}QBAylL(~Ep5leR);y^mi?utqTQYbrY+puGHyyC==x-S z^gKYgZT$O`L(;+T2aJ>9zM3f?$oPs@hZ@haP5QAU&FHZ<&@jOGdpqlV8r9bAZ1*G8 zw2v;Sagi^F4q9SwE2yl#1GlC$|C|FS`(1AG%AFRc8u?P|4yo`Kc0^Jc_7WAF8PECPR!&dn%%53N>c=0%wUK`FBYGm%Jq>2`-x;7PmSui~Y_m`6Pd9 zr{sf!!Xim}b#>Qn8{pGeDh}f}x!d;X^TAww)4trc6hRXzWOZGHe}kS;Ix~ac#d^jj z%=kXI9;+faFX=sI+J6z@7NkiW`34SbD)Zi?ks|AVWl1Z7R@mc*fU$RWC0?jGY}CMu zD6Tlua74T@u*_@{fc#E{2Re%Uk9 zMo^q{IOCQWn>PRb>Z*3K#$#uV4-+SRNd{Wt2)~^o>(kMH05pwebw2LsJO6QfaL<5y zO~e^h#GzvhD^cRJ(XB?SsHg6nYx+vlG`c|Cxb?xw+TX`DH|l5`-P`n_^Q^|v26VLc z0ZnG)cACfof8Uu}Xe3C3tn3$s;dXz6dTvy{(-w*N=B0nScuLpf>$Fk_$aIG91LubS zN-yuA+fL+}|LkcgZKzLX((0wJzy9_LR;%Q`^?lH+w_0WN)j#+0f9j4Vl1s-2r6|}H z;P?3+PUo)lGhqd1eTsn6Z<_f_F7}}uCf{vkmb5DX3ctU82XoMiThdQ|&<+ERR)Y;U^M^bG`Ft`Er2K4f#flR|1VI*qJFOPNr|f`MDa&#k z;K?Ys;-aD3^8K9wZl&a*A0gX}mYY8w?s9W0_Wj3FdXT>iwk_TM`elpJL+3*aer*-n$#8)c z3(}G#gjLYCTvgG4vgDjaEV+%mqUequ)Ham+QTFL|OtEgRezms7csomk%8F7mpBa4C!1FoU6i0!*aC>_}Hg#K)#L9S9vh$W!#piR4X3hi9 zrFVVbaimfd9I}YAuT?rCi{9!+dy%QmI?5@lS{>XG!8M<9uuS#!PA6Q-C90pH!Soz} z@$#-7+t}*x{f>RDOF|gYt7h}+b$%!9;J%zCy&FFb8Ys_KaYk;D_$==URB|-2Si~q6QdD6lZ}1o-4h#PqLO)dmoqNyK9l3`*N+C-hzFoy<%;)e~i6*Yukx+ zYfTQg#YwO5#)X8};6p-D?vA--*%auvws|5gP3_{!!6+J(Zl!0b_KH26wn<}L_(+TT>v#y{KgzZ%Mxb@pq)I*q%Eue{#&JZEDs8chjD!5De_Az(-xUA?!I z4$+r85cb?Qaf_=Lv4y9Y94|@NL!v(Hwp9-4s2YJvsCk4ust;DIed%n=v06q~;HjFY z38_i&9|x1njHVnPPWP`Am9B4Mi%U0s^xbtZ;fzdOrMqCaTO7~T{%ilz_s}aM($;DG zN(-`A{8-lg8v<|7nx|{mju~uB>45QB>Okq)NyBZ~zQw8szYwNt_PHI?L)=)F6!mn? zX3WNQlR79@&)kbbXfU2*VmP>r~zG}DIRG1?? z4?sBH?XkzRGgPv*#1(r;VE1`Uey);FyV!fZGkd1iF|GPCw>DPCT~ zsI8KgeH5;{IPqo6BObF_y5L!}+<1R+&;JFgU49O7;<0j#N|`l_x`dX5g@H3KK?~H1 zW!NC%--+I;!HQviUsZaMsbo(YRVvVybq9Vgi&@46)jKWsUF&_Nki1P5Dkh5JBU!80T)|wJHYT z> z(^HYa^vRq_cA)Y>h=bpvxSh^WClU6@RxJ~y@3tiPkZXQ!^&-fqCvu8*z)jz1AnD=M zi_JQ>5GT%NaFgN3&bn2%my6Ev{*ZGG_ac1$O*k&Y@QtRBmeE)U5PocywaGIHKF!)F zBSk*_1U0_d#0mP?Gh;pE{SWDRLqf{(c4%!jx|YcAS9_UCm^(cu zwpgR0K1Nmz{zqGhZ?U4uadF_};!%gY&~+L)^4o1yt5wEa^}jeDyf=}gFkiK_f>6hr zr^-{qPBD2`wT;_f3Qp?>w6EW~t@s*4E4B3u$MhU!80IPObeIGk+Kcd=5^>rYc`kwk zJx<^93mENkJ1fVxd5g7GM2aoD#fKcuV-}qST%Gp&Gvw{__lr&U9E|MgOU;i}KRkuF zDuz`WfcF-`&a&(Xdg%KWngH+YdjWk)(ZJF9=AMm?nB>Q0+y+Tnx1Wt zUZQw#2HM&N#&-P^{NqY61DDCYQW-mngLz+)Q+v-NpmBw*Z4&#>%_E@L(La2PgUGeE z;r4UQhnIKqlJfjWIOrUUxE4pZsy1~iGhd|w41&taOJ4$mpTH!5)oQfGA2o`WUJ&6k zcleh+Th*__ZIaczWkzP%}5dwFoo`ta8Yw^=-sN{r?sLbW(;J+(RtD&pE zy=4rJkz$SAe%EA&-TyIRdQY1!FMa6@tCL(fQAhAzJmYr~XZJiicPvb8^83U4yGMkb z1}~kJnF(lB^00={L*$8Op{q}@{gFh~o6Ivl)3M8xbz_fP9P0^#r>1{YiDW810pT`f zwX*9MyxQ8%KmE=O)1dr6^|n6zTAWa2gp=KK^cp&`Zc81~eCtWax6S#*iX9&$07|-r zD#ADJr#ZqbFS;V`TQc1CY-7LDD{y*n)UC{v!IBKERhej<582f3YI=pV&FBrnrL1M? z|KV71?74xh+mwCPCplv027OC}B6(raX6_Muu79N@8BQtPFtkc#(m>t1hoa`UhmJI)blRSdk8XahV@WS%I0i|t_mg+wC-L>BA2&L|$^N~vW?|^Z)#BIAN z%X3va)I0?X<#F^|Z1r_ftqy;xXr}P!JAHvQE)s&nEi$Mb9;X1y@PBezz zoWQB&2Xe+hdi?xlq}#4n`s^vb6K|1ZVTTE9+qX#G54&ae0kpjHKUVE@8$S3mwD8qd zX2AYl3VN5@aGv4`e2JC#jg!8`cl01rKD-{HzR+`d;8Dmb6}Zyt>3ygoNrInPr^y-P zbuFvR`>Y4P#WxpMwTpdsC2ng|-2HW_!;f3L-2Re@&r{{GS@O=G#(Mp4HJ@O7KPB~; zS|D#^s{ifw{U@nvCc~F(FgBI|9{79FdzCJwpPgIWz$lmX9cHn9X@a;fN@j@=Rcu~r ztgr?D{|cG@8=2@|L;t7n^j`w`mq3)7x%2-$f$=Yd{0kxfLdgGC&hK9;^M9%`KlaWu z@b%+D}zA|3_UpsmKw)0-zH9z(M=4q&H@_v1JP17Pl zd7!rB)vUN66;VN$kcFCmrk}ae7Q`K>pcMK}l&vo@TdsivcgtsK((;%pAJ29q->B8$ zN4F4GEJEok=7N)dX2`)CLwGf(kyT@uIP~AuX5)6s#jJcn()-$lJ4hTjt(PaJ4Y`R-*AWl~pyc#tvZ z3f#B+2D;Bd<G1P zBw+|ifkH%v2nYc}5+RTXAz=t4kdWlt*q-4#=lkC4{c+Cwo_}2XN;Xf{UTZziTI;^= zJ+^?i*z%=)X!OHU%xlfB-q{#I{rwqi!_j~Xt9$-8A%FjB1OIhM@*nZI|NX0J|0Qs` z52m<|-~aoJCtmfh^O{s%0t`-;j^Zw9Z4=n@^l5PK$C>!#?PfUOK8RGM2SfklJIZ_B ztUz@MqVu?HHB);yk9H7xo;zqjuaK)wGD zyC@D$OQ%CqD$%vv5s0IEPWyQnX53zpqS%kQEd(9f2?(il$*lyUOcar!4?$46 zN~*|=?WI)|qY$)-J$vS5Mp>r>aV)h=nFEHbCgHY*c_r=?V0xB&N8g!Cd^9cn%{ik> zHQWwoV80Us^MOd3^b~_&#p^RM-l9sm0{^R+y1>JdkFes3z@P|#bYN&4 zni$vNEWLt^PQFk?p3o^~-4g~Z_JB4brpq8lyWm~4+c722r5e=B8Oa|a>sj~19| zTQ!BE85c6;oP$}|8+A;09|UJLLVtjlrqelsiOsx2#BegY0*kiI`KqP)ftao#l5r7e z<>1w+3stsRa?Ac&aq$D&9J)U+(t~#eCOWXVOmm9W>Slw)vFJhBGzpD-mJAzw-=CzF zVOH1fz8wL_0D${)Moi)XTguycR`ejHLz{I6SnFN}vg6mm(a-j)4LSIjj&Gsig+<)&y^4h zog#eb+mYFg>YR{ePtBfC!vtT`IWEUO!b>%-IxB`1HfIr^v#v_-#o0U%OI~RpJXdFaUc{`m7Nn}A8Z!(Ki%>{{;JIo74w+Kvyg%~AU7X^E_xka zz;>it6;E`+Z7In3h9U@eRe%S8Kp9ropKda??4y+- zuLv#N56vZF6+Wh9_vd$3SkXx!#8S8>kYFRKbI|v6B0Wz zcY(s~Bu(W`1_z;9sa)pqc1o4a##$R^)0|Z5z$fekO=uUP21UX{Jw&nXnLLszM2axV z0(Gto%=Q<({``4hpdqq(aHA)-*_GVv_p#AgL>-@tZL4mdh{GxlYP8IKibowUf$Xk= z_nWN2uXMaPq04_~U2!lPP()mbk0f6-PAk1C%tG6$91784tOyzQgOvV;#i#vE>RhSO zFD}83m7!(#d9gXvP+q}wZ*(>QshaX<(ldIa-M2Fime-r;)Gew=*?W(c6J%G0l<~&j zb^?Lc1*jJN9%$1TQjG6aH5?CA-La;&Fs0ZOQPaK1``o~lBk!Hq{^?Q1VCCKJB7SfO z!v_~;h*-c*35(IPW1t(q#OU=1ykUwCbP4LqTgUz4;Vp)H<1}f9UY4~f21)0hhHl>O z{*-(?OYYwekRN>>!@H@2gqW*c(Ja$3k>pj7irS|t&0|A`A9ME$3`7+AYg zoL5>Uq9fkTj{p2osZ@I6%0GVpUwKhbyK}n|$@Ko)mY=E^RS&@boA>wY^GT~OC9EjN zWj!);Yc>oDPn|i=)>pUee_)!>sr}1pxM&c2T6$ zn31hH^(|*nK`NKmds7YhMSqED<_{qKq~f&n&zhob%l@#@+>}Uvi(q4<3dg#xdUk1l zfP896J)M_%#M{~#R3&$^%bi>=Y=GmX^=-lsXUGkTc z&vjwahhzhopJ5(c?f-offTXgGidwZ+0eyXSI@WQ0eLcMYbSVJ8M)(3%nQj&E_>GGP ztH@->>_fd5j(EQTph=(fay~NBE>9oXd`+iUnSGXYR0Tu|2dcw={3QU+%&HbBA9F7N zhcB=@?*a@~){`~+^dqC?O5h+l8}kpwN>gENBjW4_vFc#OkdtgkJl~RP!tlI6w&Pcfw zT^_ZRIu0as3DrS9!TS{(4{!t1VJq;kj)CJ;(d))Ix={}`+4k#6Y}e4?K+P?5=+Mdr_0FVOUL^# zif`778BMiIWpb#<;c8{u^hzfK1niI2&a{#;VkChb{Q7rxB&E=<-g)O48Nl&|}-u8}v( z=(|8JIz9ZHGVfb`tQDpFl+uM7ow9X1qnzn7QLbQ5jVg2RqJ3J@lye+`dwtS?cb(0=2|XoCUhwrjjqyUnFFZQ8K~&7a#2q#n-Nr?U3^4? z?L$7C4Oe(#r1$$-)E}&VmW!9K9LFFh%h>HLeXM6C{cFBm@nir}^m!M2J%o_>BiZpJ zC&spbYGf2ROb(YFg9dhkvQvhBibxPV1luvw8W=*2+~Xl9vZfP-^#_0CeHk&XHyY#Z zS;12myrdeI9Y|_NwzYb2?nhDO-wE1+P=!@KMIwdP%gCi06PDd*KWM_Fdu|^M8%gWs z#+Z!>6b|xkxu#(uD&+xkPB&)KDXH3Qjo$3^L3j@!y)Yw~Yn`PJ5Y+*C zD-akJ9nKnmGD5fhEdS-Ch4-xh4gJ||tA?y*m>0J1ck5@rQh5yML>Eb~DsKx|x8es) zKJ2l*htMS^|Gh0|$bCdRYPaia+=^nbE@1ss#1=Aa%0NKtO{+b23~g*)q&|1BfbRCp z=rk{mc997(*OnL_;N7(&;JBvWe?6fQIo; z{oNs=Ryy@*vE5HTWd_tM$m-+%&+W*T!ns1#{E!v|%>R;)aFPHCz=VyBZ6t@=RRNU$ zuYrvt=L7JSTN)LD_mYX#@_}Wxz2Pm5wyp+b(5c31oVL~y4ZH#fV7h9grC(-ubU1q# zd&KFe#_6V|kra{gRl?Vy`RlnmzOOJ1gar_G?P>YlGuNqF3=gxDRMifbEsNV*K;}TH z@?K98dbYBe3agrlqUpD45dyXO`9)T=JK~czt9z#c?piIPSh01>AED8=dN{ErxjuwD zS7ni2${z#JGVwaD0#p*kUh^ec|A-N0Q9sX0VCl^TA2ateydUBZg^cG<(9zQD80gaL zYYvZW3ZQl-$F_nqwI&KO|gY`h5SaIP)B*>$r5ow*Yvpv3{KjiwT_T>xOT z-CVue%}@O6S0TQ?`&T;vQOJHTJ;8nvS_FXHoT5g_hj^^F&&)6(UZ@K;nw0%+P(JI9 z3B|{8`0|ZOKR<8%xJB06vf#t0zjLtDk6OnT97F8B5VYHBmqG4vy4_orZ&N?N7k9U# z)0;kB_@rd+Jtu;1?p1pcoXD8oh(7CI^$5|&&*2GEp~Ab>=*%1+JFm9X!Xi|cg^R;v zNQUJPN>_CKR9Se^y!IJmsDt;L3oWV7G^54dYZI3Tay!s z`XTq|c6eJ%KG(}HUXm%vGc)0yN@6zaz3jd+MejqmUB)}yEDxYLO$CHihZ(lP`z|WT zivDbViJ*q*^f;*v{4$&gduN7#rK;;^cLIv`Y>k5N^4kaklsHV{Cg0S|m63=a8>xc0 zV#-iwGhw3)Ob;3=HqLmia=l?+u7n7heQBV7X%}doZF8Dmzf`kti2P%cT!T+Unt6MZ zSc=wJVNGB0@9}iN=p-!UDluUWpax>T4w_$r814M0nNSfQ1iDO(G%79wyL#GI>^dN0kOt?@($!GK_IO;k z+>T&e8Ug||n)`BqmuVzGmm=B{S+!BJdd#$RXv?t9Dhp+v%Lmd@)Cup?;0@+`R>}=@ ztEnDXuo>LUa9pd|xBg`y73e^zyX;j5XNbF}T_-CaDSVXgb5v4W#y$FuiN8iu{0o|j zA1whm_-$X(f~6l+6ow?;{BTN#oeq*4sIOAm_bH9jx04c;4kRV1R_(?>>}3jK3wA^0 zF_OogrAw9=CORxr$)y}M!2{N_0tD;tllf~0=(AXYTn~Q)`o>5AmmMXs#2AwGQH^ib zW9Ivq?YaPRMT9=FmgFV5p4G_j4khwpWtpoZ$?BoM?WOYpZS^8OJiRr^*F+WTIM08@ z+#z|)@8RXkALO{jMhuHfo=2+YV+Ggz#B01^?IY)8@vWC8dfr%HYVXyaxPXgN?Icet zXmuq{Aw8S~;ev&X@}*#apZ~hOn$d*Q;x|vJ0b69*px)#}0FeaUJo`(IY|t}`bg&g_+N67sJT6P&&2(7d}=2jz_h;bpCleXW(B)Q z5WJN*$hV^Q>*CAb=JuNu@1c{*GIn+t?LL^h#P?cb&pfhHKa!SIXzE|X&#fz77CC$W zWJ9Qmv&NMfbn|b{D*(kF|3u+tHOYbFKpgj2IFbL;=#gV~kyO*t`^mzbY$_!}YunUN zGErs)o>U2JJ*a*2M*OrDrQOl{v__O*vn$P%G8UcUmrAbAAp$RwnRCTwJgR&Z(;LY*&;L#wFpNl==#BTKrDUx}ZcoWbI}yrUD*_0|eD8$MGXZP^ zjD52MIJ*Xs!pv;$!*Fgq1$sW%9{QvXH$n>anGbFz8ao+Xmy8;t9ro;fM8DgeYM0aI zsHL$yU3~RM`_&3aBl%q2cZK+>;oQwcU6wckb~UVFBUfsm4*qZiPMrJT!|mBGw1o(? z- zfad<0JmS(R0Op!T@Hga9OHO#-0#mvyu&Xy$K22I8CuK+-1XrAK+tr&6mQLXZloeblGFVxChP#BaB^4R0P+1!uuL~x4boFzpSh` zCWFVM?;;q&0I7lF383byF@=#t-boNCe%iXta0wi-f_PY!eg$@^33m*YdbqXebatQd zBokwc1y@ANP^SS^C8cuG1|%_TVc(3ioHniw0Mm)Shol?S()O} zcP>KY>MiGqepe85BgmCs?U2!;uoEWJ=l9PGRvl_p3cOu7p>rLAo69g5C z+5o#qx5z&in-u$T6i>5bX20D8_Sx8|<{on3VMlVp)5WK1E+xaMwWAg$cEa2zrJJOp z63TWmNos+ftdABA8k4r;EpOKBpQ(!;r-4ms`?Cmu@AvLgeNiw%(~ zGS!#lK^Yb1fUujBh@mQ#l~{k7FU+;NO9?I3fDB6@6TnCMeu19jI{ zOEtRTj+#W}U`6WWA@JLk8As(ns_wp78Hc@=+1LpW`bqHyv+32FG_4tArUzc{f=^Gm z>`0q#EzjEL`D_okGp^GnCNU3Y_Zs4qq2FtLdOvats7<7}UupReQG-&gamd1BPj>obY_FA1Mu`7vo^SF|c z&CnuFh{*gd89HPTX){##gb|?ALmugdUx{1%g*|7J@C>BVznz6p2s1dy)GB8tL5pdZ>uMf4vADk z$@MrnI3*TLCG!5P@F^AS~hEa7*`@u>#2miKnYx!rA%qi<%ulaqI_@ zGycS;(xk!*1RHI($$|#ehH!~!2xvfzj3s>WQTREo>%w75MedFpzSf>d6Ym#Y-`6|s zwcNWt9$0>f@~ZL`!IQS({g+kj?@NcaMrUcHkC@#AYV6h*=WrKVTrXzEG%%FKCc)}> z!k>fzhm4v8-u|%(^oOZ@*1B86_qwXsr6(Sb)04(o7bw1%Y{p8bBeb6Alo@}o4ru!< zSZ4XekxvQ)(#9+DNql!|^oD-ta$M%&v(~X+VR}29o3CtKbT$6cy3#-Iod}gyz281B zjpP+Xq18^%NO0U{b4t0r@yV{3T}JUWSK@9505TuyAIFb@=bqEwx@4A@9gvxeUn9)C zZ%vkH6LABX;@g+08&Xepdh3!uAS58jMD=_@gfFc<#g1=G`PvM%+$Z1a%DA>%A4tAahqm~1 z@B7!LzZ~$b_XO=Hn9LI22Te;4o9(7@8V2) zCwbpK)zF>r4(HSe=$Iyb=br!>viv#=I`|LIu&?b!yl@-o4yH6~8-X9R(I?X*37%?V z?9^ni1?<%qSk`3KpN<};lJ2*v0upr_$sy=(+E%Zv7cM>CDx8oK;|donGR$kwqn|4P zm2n zpJtpQvWFAO2E7klx}*PKTYb*)dyMzAHlc#p?n896{ zd!a02X2RHF$Y6#UW}Zu*&*%Prj(d6T`+lDL`Tc&+aeV)nV~*>6z1QL2>b>9M9Zx1-@02dJ0Rlok*&nyz3q4^=A*u?Z5ay?6}O40HTM+ z#^lqUTTgr{^=XP06~rvfhkw#~s!x*B@^12eMde)$4(9)~yGmK>?SUCky0|OnKv`@= zW!0O?H#9 zD&QHLU2CEWs^ENZ8CgKqyf_VuNT-FUAeQf%(v0FG`BfC=q2#&FtXT`ts&OP&X#h_C zalJySGYjf@0I|vbZbVrxEtX)rk$KU0))X}9+Uaj3NRk3XByeIAViWMEv-|hur@N=A zyBgeT7aZA3_}Xq1qqh3n0&7E9Te;m}mL6!m;z2q?_OZZ0i$PVGTmVoYb(eT>GrvJi z*}VDmAXZOfy^b(YN19#e^rL77u|YuK(@j4W7_+LSS3?9f`WgAM&q;hOTY_B`_I;K2 zmNpY&XXomqMU z9!eMN6Qe+smj<>BRz9x%?&xNLSk%|SyIlU>TLMNryj30a(8H_f#Gs6B@W364VtzjMYyH8Nsd2Sj8;8^bD2d2 z`=9riz!jjTIAD%fo=@kcv$_kFZ_@Da$0c!hs>~f%nS;q=YGozW=FdMUBYK9+5klZg z(O6>5FlaI|f9~n~j!5>5GP1wsSYn;<_pfPhH5~OaUZPB^c_zE&2pi6+-wOj#T>HLr zYbOQ4c!Ql0{SvUWAfqoRoy<8()VDQmByBm&E!2O6?s+4T&(sK2gMIC<+HRQ1U%Ray z*KD?M0ov7W{UADh$-XwP7E;7o!xPObH9=?o`so|ptf9F=g@ijgO z>HxtHUg)!T_Bl1t&6thARc2ENo=w_|QQlQ5$QjI+8a8XeZ15E2*e9A^_%6aMt-K+RkMT$K&i_g{cpvgdBQx`PTmX2dD#W!S~~ zuEoA*MqOW0yMv#(R}>HFq_W&z8%@1^KNkR=)D_#58y*lNl?Lhs>=XNemE(+lxh-4EJ+x z%xvl@@a8F^PW42Y=*!&GaC5sbZ}J0=9yQQwzTi+?bW44@?~)!=s$1JE9e$f}b%Nd% z_`2Cu%XFY;K4@2^k?MSiTgXkGPb(khnAj4b1upLIzKr`^c3egCnRZ1_zt zzRIAsJu=X(*<)`);9yPbQ0G*ly=Pkl9d#itVs5i}qKam~qX z6Y7eZil8{wb=GnkuaF=1abj2lB}Y|Ofz{Fsc7O^`@x0jfus#rhHL2-l7u?v4%Hg() zST!qp?V@+KEfo@OP8&W4o!8phzFMZ}<;Ct>sCOoX6!#1DL(>RJuD?VtRSR()FJO|T zVlr$}D@5AM6L!NO%_eBOns)@;z~H@^B+2B*Nt&R5#a z1hNby~*AgQ^<1YbB|lx_VUEp60X*)6Iuql zS`n`}fj=QK!ssrT70>)q5+qaKcQa}l_dMJ>tIeAn1bQ`gmiyhgJ}nsx)~WXd(+^~0 ze)N1=D*1LzQbRC$>iw(Hp%COIVe-=H3l%|43)_RoSl`6WYOJ?vUNgIq@(#O-S{gjt z^F$dY@A>kDu$Li6V=A)v-NiH%6u+00Wq0CHhT%CbvAHuVAcAFrdGAH&tISM1wrku3 z2UkMAYk#&%+*is-=^I|oVCl7&wq#y~O4FnUlfTQ&rA=f~4E6Yo^uwvJGp5{LM8m@M z(=M@`wLF&`HI6}F^Fw$rnJJWF!M=ZLA`-J0rDL=beqbTYsH(&i?KL~pYi~V~o+=es z=lq#W!S;C+0Zk54)AH!B`37Xg&=bn$wH4I&w;_Ccd2q0!eN$5pRg*i&lp&{|FJPa=1 zDmYbpePFyl?_h>*0ZedSw=E=CO|gO8!@E4O{~L0LsZ_^`cXN~4(;;dE z>Lcpq21g-TWki`~Q)*xE^R;l#ce$J;`|-hdgD0~*9Q`FiXX=~}OlJ8Wgg(@Q(eEPSH_PlO|YPgUUh!C7&Fiwn)D%y>EO%b^=y~}0BK_3y z1Dn5zE*z9u7vinY_J$y>-Cuv~>Fi^S@)b-&-1ndLe0`ak`J#~h@x5A$6D!8~%<|dq zA3cEga51D==m{D{7ZDE29D1H>+8Xoo z%cwX-rI$sgmL0>ZW<+Ktd>FxT0*o=T7t5m#Sp26e;}tjW zHIzW4w(-NmiMQ}uBgn02cLUo8Vu&^auQuXD_KUcC+9caBMr(U)nt0ViW#79=lVgB$ zoC=eBh05a&v1+kKw|>j688(ST$yrFgB_#MvJUK#hUF7t?&Iz(u1vfC>I`h0i4rBCqy|m@v{v{V@h+{NOrrL-6?khYbOylT63dhP|cy)aI zT7PP$MgDIqb}Ej%nxB=%d!E6XFR@$f@gu9kq2K1Xy!0k&O}u6C@g6M8d899L=K^5G zdbJM`$2zO>gaZv)bSxM+#(~yeF6MZA442bu_<=mpZ%cjj#B{61N#|{ncGqxU{ZB`u zxIvUCgGYwqD$%+$#3MUMjz z-m#EyeP!mFbo};7p%!P-d3bvYgRBk3cD8+l=VYcY_rKbrTv?On4Bzy$_~FGzCNKzB z<6y~a!!j!muD5)3;zQ^w?eXSs-*cLZ9%s1Sn{~1X?_9wkYGAqWgi({K=)l-Wmq%~N z*)JKjrP;~jm(dv_0}IooOH&I09$u(kuSHEBRTg(4P7hsVMTEV)2zu1S7P~ECDQ_vw_Y?sz9rb zgRHjJ@K|=&_n%59T5{nNTLSDe11P%uLd+fFhELmNVOxhwXo#XT*@Z>MG2+mp^x~3`Ixk*Wqqb8_?zt=Xq0S5pOLRa?qvJL!xc1i1zcMjd=H2ghtPwN3XDZ8tJ{~mR!c69|(;xQ6}sZ8z@B;#anxks@bV^UC1 z63ac%_4UHX1(k3pM+lJVxq*vRCi8{lEwxkeXJ=>T9j)KJ&fEASV63na)sS{D*2Q_e z7xz)!%2xkL^HjLd#4!b_udLT4`j?_4x+vo1x)KG-Lf-uj%nK<9)X)#$?q zq9m%+j?^B8iO=rqb8|QPLoF~-ez%Mad)hU+3tF69PoJX?N~GzQt7!<`{SZcv?^#mM zydU`_m29XI&BUH=1!e5GRE6f0-t0Hboo2a}V8sC)ZKezI>hDS133JD~<*n89$QMa6 zhBnU9db$&mpNcA|7OTCvK*8ln2hU`NRY2dwFE8yt^q7pfs_Z|~a^dP&H7rG@TBYZ z>Xp838%YZ8m&$pQ3>`Uv)c+|=47d=+-th}Sh6>K6Wr%XD&^<4so`TyNJd z+o?FKxJyYr*n>GPGjSx4`Q>)ddPhH>)dOE1xXz zXNIAb{nv}ga{lFo#Fi*8Vdf!h*Z9%(1lpZ&?PuV%#KP4(F2yG6m0tVUAbM)=q@gdY zdrcg0B{Xt~esn#9bZ6neR=Qc-0u_?3DZhX!y&nR8%c#9tbtPOx?4;UjQYl*(k%q%jCPYVhf z+jQFLk9OJ5vp5YM^3CUU3Cs;I)JRgF1c@u(t0>sWsioQZ(Pqko5g&2KMb4-yRs4fZ zVo=ZmNMP_DaYJUzW6W8y+iIg*MS-{*cd$<&WD8R;zy(-`k33}P%urD5p-(cv(u;-Y z!apw13#A}K*Sdhaee2Z@F}2JHTg0zv{7V5zYUW^~I^tA>Ixq!8pk3!?#Qkc8?j^gZ zB|D${#0@i>*852S_v^{K%n=tl2Y{wr0mLR9abEq#nS;R1%Jo(c-1crn0&cxRJpp`2 zYdCGOjw(9U&7Xe(ynwEOfHqP;`1;>{R}rfHN*XoGxm=O0x^hmj(p@y|E&W@8WZ$P} z3l>;z@@#pZYn$OS;Eu)^y>;sy9MDw2u2afwu(BP$TBtYzS>$qvj>I3bN*Mq2|~qH?|RKB6Oo?;)>kDnejI0UL88rlpceY#AjYPecn^r zQ$J{QvjEpLJCAfP)9KxYAW}pkA{hhe+r`AmF+WBt`y+=9{Qs(y`>R3N+IT#+9WxYB z8Iph(PQ(&gV>df*+>aj8+3<;%fc0us`yv1*5nDP6e77RVyXjCjKw8Zk5cdxN)lX9s z@CE>!klsoczIB?aEr2kkvH-LZAe{hyy#YZMpbI0&;=of6JWYKeNQZ7p0Mnt6|Ez;E zP6%W#r3zk9rS+@fKKLa=V+e~wWY1(HuY&mA>>(GfYo9^nFVE14nl+`AK$j_2b~FS% zSEc!6X&1NC4^8IXX5Smcy;1W`&>lk7ApNLlvi~&hEXW#K>T!)6K9@sHmHR2_g4gvi zbDRj5Xr9`0gb*mR3NURoV706<^-evFQ2wbhH!WAr$d?4e zSm+9va(-?nchLEl{$L9x?a|E*i?LkAt;}#^eb3`3nVRb3iMv-m6jb_AWJJ{qX=yn> zLt-n#84`g?JG`sJ!Qa&FsLSClP7>R5-N!mUDixD8ACvp-2*)o%%O;?K!4UGqbm!ti zjB0#O45?yov-@r^862yLtiRGm?ux2J`c_aLM9drgL>Yc>p{PdAjjya&z(Ofx>};fA z8C0!!XO>pm0%|FQ&Fu2QDV?n?qOgNxVN!R9-&!!@cn!WI$2Dqd^?7*7{#ss8)ZN-| z)r-^2!Po&OG~cR{_Lw#it1(8yPkevk%}jN;LAfq{Mqa^NV!%j32qDkB9SWgawmJD< zN@M3Ty^g1%f;7iyLPF)qWoLISv4(Qh=Y%hpy-|ZNGtH7_Dfpli->Nrc|1OgKZGTIr zj(Klnw+8$}8tF?Rz4I#CR7NABJIdrnm61A%ChgO7_<4zB?m23ZrY32~2_5MkHmAu9 zk*WPstxEOwWO%HtPFLDhp$pm88xd9O3RswocUu6bo{5;@PW2SYUeR6Q_My4tzU6G) zkg1#L$e-FVFH_u}4~$yK(@RHvN^`zLE7M~Yo<6m2Hm zdrO`6`a#Hbex;?F<~svJ*QJQW~zl{mS{nNn^L9%bpzY+V90D(V;#bNywkU1 zUsh)X*9Do9KG4^lAG}5OJ;k(v8koq5^q=5Ppfzmg*V zwldOi(*na`cmDp7knNXkkJ`0e&dt{MB2SSIlkHmKq*MlKWy6)v{c!B&eW7!7CCJHi z#-q;RD{r!i!pvj*E709#mo5mpBbGeAhH&#bYqd9O^@15HUSo|4iFiW~Jr`Xi_m*vr z+nwSOjE0VEc7;JvGXu1AzA(<9SX~J>UYMQMG*v!#-#rTX4u#rCA`8mG%8eGrmCTe? zOrB4^v{Epu7gtrjAP#x7gI9!8oH?J@^{tWi&^5kyDRFWf-JFNahJz5 zW8zb#0mu<$l6KybDwvou8jV|4c4J0PZ6A`oNjNhS+{pBn3}83ptHNf}jio(v)C`J_ z3YiKm{FLf-p zN~Xd5N)Te&2S;geu9tXx2J71xWNgm|b81t;9mBQ>N5OSJ58Z^2nm5_A=8VZxJT=;! zJa6;vjJRjdvaqrhF2$gtZaIM6K8YFhC#lazA6)Atj>+acyIX>QBpM}GN zpD8M-(G24jN@5{t+G2OEP=nSEp|0-6WIjI9V%au#q}2)0o?CPD>=iZm=$%zV-f~VSL2^iQ*vvvWJ;8`XfiM~ z+gr6huGIEO^|6}FP3v8zQD z>$`CI6{+kBgP$}h&ol9XMo*0tj2431+aNfrP04%4x}pZN3r*Q=BNl0JCQdcocdVn# z*52m#t5|zgL@1GDKQ&*%EzEuruXxn=u$$1A%r68$ww6y%$J584`XPR3XzW0wJ+Pjg z5713BbyJdk?@>tth$!pGcf`iA8=k|d+BY^lCg;Wcye%e%J7T;dx@5Nf zxA#?x8W--|f~Y#dysa83zxiUWBlU;v{dLUnh{)IuAXXh&*u_mu+y;^q6Q>N|)zLdd zW8vS%PaPm$DoT350MuyZ!h+V-;3rv_N#fb~dpusiF ztL!~y5}w(gK1*vFd1n6&ZyuN5$!xHo8%K`s7?fXAUqe@HkQQ-xJZAYswUt?RK|uF6 z0xlXkw2r_3(?E8Y228_n$%axA#l?r#a-g)|IW5r!vj)qc;twaIQ}G~PqH<*wZOzC> zPZa3yg;HoO7nzBnXL_CAr3RxdT1C}=Tl$8l%~BB)S@{vX1?=25xd*#V6y1<)mkGs@ zL%Kc#Nv3U1uT_-oz`{)P^_y9?yB-j)-Xn^dY?C`v@NAPD?3pYKXtV9>&9T!YCnb{9 zdJnf9b$2suxBu6gTxGHfxe`9f zmE~(tGLWeiy;fSg)H3XK#EmmH`!WbcIE9OqdD*pkyJHF2@cQ@xPH-t7e{P>ev#^^~ zklN4rcNNNyH?Km3iW4MzfU7+B*&lQfBa%eR=-tA z_3I#Vi|~xd=UH)) zk^025PfNBIcD1f@BXQhowR0hw?~g@qHU84am8xZa9zJy{xDzIQ(%j$J$UVLT-B%Z; z>WrB!Pc?=YWlK^frVOA5+N9c*=tU!get=G4%(E+m>saUFh%L?cKw&w^HGuDeV{nc3 zs9$)NOCnMYxFQ9HtB<0V{rK_m1OBaFmhwSuogn0>uBm;qRG#zMuZ_vnhGa~ka{ysZ zFuKtgwr~L)9bn3&1+FmW?}-}iC(#-fnE7q0Ap8|pgzNIB=YcGtv-Ywhjjp+POru$@ z9b8EO^ER(L+XR8wa=vjPaLvzm=DVn`X-BhI6BehDjK@BXIA;>*JZUh z3-3S;bS;RhHU?D>VmzCOsF+R7c9j!&`yt-oz|p1s;IX4{>%W|GuEO0g;yT2 zIwHAcz^?6%QOIgolR?g<+;Itofyf0R(&}}ZkF!pleY)XErX;!?>(gUJi*J74pY{{0 zhV;5chq~*}Bp=`_7SOU$NrRWEspH6mx5rXLBJ$~ZbxTohkzqjf#Rrhf>PYpIOl>2X z^L^e}_lTwPcWqTIs%@C3b`^r{%ay+HN{dQg-B8pXI+W!)RcsIpeeQdl%W3y5TlYj; z-i)b*JB~k8Sj!knBH1Z@ONk@{ieonN7*56ecds&qsG+y zhYB;(5(%Pgog&UueC9j!EOyPiXpqFZ(Cr4%rORfTR1(e1S?as$hR?zH#~ zI5nwJ-;_u;c}Vxk29MU<_p^ZbztbP`Y~PsaIaP^Gs`5`lNfu9+_f57OA3gb70;EOZ zZ-;}0M~Z6$I)pEbCU=G!s24{qEnTh5mS{Sncwm9fD<&s(z9cMNgVu4<;i+oI)E$0D zU@f6-N(iZ)u56D4u<}K-l~PcQ;Knhs+~!et&4F{DO%jT4l}i%?q9!pnQsh$ z2gXKEHNS@Wz*Zw=26!^q8PBG=<0)CHhLFbgU_CKI{JWxOP^6Fr7}RebSh zskz9e)A=)HN&8Dqj>?f2`n*A4sd!rR~g2O^0-xaE}N)EB6F18Z@Rz2p0;kGO$oQ9{8^a@#v{I(Vx&lT=b)DH}?v7EEiDHZ=?S_9?U~h9u zYq9lB;&{_b2&H_$ykcSwBE-}ln#<=Rhfj65)SqXcqeBmdyLVm1o&3FoHVLNf>gynL zs=3^`Z2Jx&yV7F69gxj1%>lUUIqQhkEfX5nYr!DGFZzfE2J>xVq z+osOuud-G?*m+lg6#M)vH#?^`d4!$P+VOel`W)H{|FD49W<(3V{74rh)3s)hPj5jyKDgP7p%1zij3IQnYK?=>P^QowGZ z5$H)b>`~bGZ@=x-phB^rv#T65#lT#Ug!#xrE&gWTL1ilM3i}-~UP4DBfZ(BIxiY%t z`HFpT&qKJ`ExH=vSHw^Um-)1|Bgz}ZGy*b4ogbNb_Gi20Jwg!YHzqOq zCY$s%F3#&u#*AmX^)9g{^;n)r=e~#mmCFhEUki}q;h$X(pu-I5jaHYF@KZJL?&Rf@ z$NRpV;HS~m4yvFch%k^AcxLSfdxob1)EN6iEHc(bl&H5YESW%PO5d%!zCC;>=m+E81`;}$*6`R1c7c}w8kbnlUx zo0R1iDMD!l>}SYFYcqLp!}fugI%3+#AX$2m7@g5e>XGpOg*O=Oac^Mk5HsBVqtft9 zow8|_Rm&hEe*=SNBv3y8EW7m==R7tHCs{F7E{IS7VB=%! z_4$o2m!U(uB(iJd{sAn>(tnI^o4@Yp&1!m4s{=ljK8Bog-cr9iPS7cm-iA>5)oOtZ zM6yOHX`1BC^f&;Q%AH!j(e|UE=oe`3#=ot?+g`zcFXfB zW5jG$Au7TDk5T>*z!uk)Ni9klcKI^X@Nc5)80OWR@Lt;dP2jO#jOLoUeuoL3sQ*v( z?Eg{B@i#sAuZAiAZ1Ud??EWdSe@g7Xl?nK#!u(TV{;4qk^~~8n?d6~L@=tsD|Bbx> z5gfp@nKoR^5ebGEEL{P17HWa>bpCQ51WAsvz8eYEf8@~RVL^%VP=F$vaB{=lsy_?S zAfphP*O)SB3bim%Q`FW^u2e&^pM}-(X+?IF?B~E;~%8=SJ)yT zaM-vQ3?t5)vx{h)qWZVL!zCbW0r-t#^i$#uR=kc^e`fOq1TNllcKcW{PiO2janU7I z-dv~K0qs?6hr*a4g6nAv%8B)}f+@0n$(jGQoz~EWta_mC(~4@ISfxW1}@-`hlv z+lF$+tW+ff*BO=uvexqcNk9%!_aiZ8c>I(IQ0<4<+e$%D_mJ?3kH?11jymJD$YU^FzC8_}&ZGa&SZ173^W`Kv8O7EHUS?1RQC|-iKSlhE*$z2)iX6PutOJ2R( zWavSC+qx!vg8m=D;{6vkYTX&Vcr?V>_+GO3GBs!pwB28tY>LH2 z8%DpZ8+urMpUBw#zqKR*V-#&csn!dv)T^URR5cHvB*K<&hfeTbuHtsc7=?A0PsD76 zdE>Ed11QeV1&Vl1m*x;MU3XlbIA9RUZkZ+6!O7oco7;2^DAfs+nrz<+iQ$kxmzE%9 zv{kg^lKxQ%PJljB`-2ETDt-tsZ#TguSpZYh)So4tzlBF#({;ZLnRp<3D{*=I2U0ZZ z+dZS1g0@}vv~#mL2hFMD*;nFG;vBif^9hB8*z6vZyQ0o)!IcIkxxT{sDe7iJ535vt zE@mq_0bH?kEYy8Y7N$ox?=n7r_R`s>61ENl8td-MTC;Mc` zBFAlN$MLbB_R>2ZJ6(&oY`;&EF6^(>?$WPEBJU!!z#l6e;U6a--Zm;Or{LrMSp#av zy)bh9n3uFU^}~&?$L~qBP(P|AD&yV871~~d>gRjH)Z%>l4N>p(QbfNMa8UXXpg)bj z`Xj&(Ys@-6uM>Yc(iNDc0JFVUY)#FFmtK~RwF!d=krhL?cSCZ78w;YQmLHW~__{R3 znr1y<|EzfAE9$TOS1+Y-`y;YWBqw*~Dd!?phK;{6C)n>6|BBV_z0O{O%^^+ExlL_t;*PR3Bksqo4i!< z_x?r6;7b5!>{N$Uj7jSIJ3k-VNH~@S2o34rd_bsEEo8#=+ndvy_nRl;AfKkk9}Ur- zQ=9#_uS*i|NPV!{wUHuVORWoVl*K~yc>Kul-Mo+l98=X85; zbWHc9&8E7Wgg`A5HHgjQ>N6lZv;v_7KG}S`teyX9O)-o_uE~J_{=nxLQ`?1WOYMe9 z81S-_)4&S;n?|cO2y^L-W9zmAZ!^*sX71(xBI<=ye0?Z|Nz>w<@E=h`B=?!ioCMYz zZ3q=XWgAnrx^8113KcoVl$aG6j{K@cZEFW-+IAk=uf;C+)Js{{3PLqA-~UOAh46D( zyJ7EBxo1iM#xr>FCUSCN=U3FV%DExrzBZ?DBheA$lV^A)_{}h;bJ0*TO=JVGf-EO? z>D2A}J&>>6n8CA(h$&&sq17Zz(X*3uM(&paMoyPj%Iv04?BbjVFa<3#33EjGqg(=E zDV2sHSQl~2*XIqY3#C(H<~1f6EpdAgMMX=`TV#gU&Sz^5X(b`a z0Z(iCI>e0_ZF6wFbtNLa0yu@?-KnJ1&r!{eoZ;aqy}|DJSmyZSsML6=X4W55@T99n zGC^l<@r+bSf%66y@hTDbj`dz8TFlec?h=HM6RE9EU56pBFgXT?sxvyFpr}W$6k%U^ zB(l|S-`th(42+ul3i&)^&}=BzW{KTfv7CP9#|6Dl_3IB~i5YUnpC?@>Y?x|pVeg#u zuuiPieh>yaftAcaS8p8MSh?IVYLD_G{M~SG2JT|{EN*O6ezu)N)>ks#1+mc_$pnCu z^F~0f0ADHkgl_aqvYd*9vCN@-ez|v}yuyJD(2IB@oP)wKazG3saW9?jQ6|pOSx9u6 zgsjzW*Z9_)`Y)CMyh#$YCyuS@cU1hcF!70^9=e!R?uCebCI5m|YpkxRp$Rf>HVM5B zDoMbfXO)f}C^oCe`qNwHebap^gc|P4YDmd$-FwFLF7~75?(T+bmehBT+avr26WTgr3qkrnS0M}!rF((c z=)fvJkW=xn;{)>cKVLV4+4YJ7Uwbkx?NL=ilqG43Mp9d!T)!4B77Ta3?fL+H9+`_Z z&?BI~+3z<2xqd*a^#!QaF&+R416YV$QCH3)Xs^8JMWeF4Q9IvcGtX#t*J4-P5h{|n zPRz)M1^LCR2_IsTx%M$HNGzfHdB;xmfAxU=_rB`?)#&hN>%cx>7h!43H4W!i#5KAK zNaw^~zGRoh!#~&kKVRbIKU=dn7Fwko#SLU}YgZZ|8{e6aKW#slVLGux`rp>K5qF4y z3u%3F^xW0r+}crEzK#l#)oOcI21i&*~luGJO{RBpQPKX5EMNa0>bKwks5pc`_bs3QS8}JiFpEfh3(o zNWpmcuD@}WxO0wxQ!hhcu}9R817}DTN#vbdlff&5S3}o#1{~E)3xfLrG>2UTPri!^ z;QF-Z7T#5?qbWOsI4$z1awsHJqk>(1`XSpaFBjmI9?qW4PG;9dYKPE=Sy(Nu8r&dry489j_AV;zewUE(5CX?FSAp7U;2wLbgk4C-1i zit&XJ&}3)Q2g zIsRlkXGwR>-+t29uGlbSw|$ghB(0Ffm<~S&mqgqzI!)bqIn?@be8WHFuB&b&GGmC#o2$LMFvfLu;~1_Z209%UnR9XI@_?7>b3z8fM-_ zg4C!&oYzP@wmO=muQX?y}lO%hGs0p4|=APC6cE@>+cZ>mARur zD7Cc_R;*EH(W?`oiQxVn^bXnJi3gKsoj>r4_i{cOVAzDclK5+qd9tyt%O2ZfA9&gx z_GfwYgt>LKFuifgb>lVhU9_AoWHGGkXJ~yP%D~PRGP~+~xWk1mjN6FNI!n=&J0+Gj zQ|tTC5ZX14%6{DT%hRGQUM$vA4xRTBI6RMfMy!B3wPJ3Sm7LG==-ztVonIOOS1%<_ zg)H~=G-uYp7WhYoGb6$867Yq>rqv!*4Bb3v@qajBgstz}^^EyyjuB1AIL(7wSF9Qn2#%r=NcOl^NURE+QVjy`n zy(W%RQ$tfo<%G}ZbyY{34h+CA&S5QY&VFwpNBxYPD5<<|$TpcxZ)4^d%}KE)G<@)D z9g;OOQvM5eZj+HF47NBHWl>$g{n18=&JH7RhkmunggX7Hd#Xk}IBl=n;@zl4bQP#; zhL$wIvjLY)>Rn*h44q!RHA^DSn90+sM)A!xqDuT#*rpv?837 zCvvzjBkfRBCim0~{uf*qxb&Mq1DP7WMDxfjM-mecAUMbf2F&6xp>S6$xuU zg=l;B((JIiFG6S{)6$i?I_>wJW%ZI5eUq5*8&|{tS0V(Eg7Qywah0V%&nAATAC$!M>`9bBiMY(R#TZ@AVkoWoF=dTa5eGkDF=idNemT3q;Ai!M8nB#0IzQ?_! zf-CRqYKB`S+DXbW;W_t!d4GE>RG zC#*KGKU(plA3Y=QEL-zwtgBX6d$Rz!TGx|d1l<4FRyLkb&g;SM z$U31sHJaVS?GI|<3VhN9^x3M_>8M`Mao!QM*oj2!rAO}qmiv5-w5@PeAGn!^Va0Jj z*VZY3QU=go=sEHn`SrtKbLoSD`&&Z3VauSGxCE%Oeqq^PGyBHOH)P%}@k)d@zcT96 zW-kPkb^D|Co8c>O_XQZpO$rId7t~fcy=PxRVQB=p7EiaxbwqgcP(G_sY!SWei?85z_GhzbH6DtA{FVTtM3agZH|14q_It_pC!e=?-zo3U7e=K{EROh(o z@w92fp`p1?9u{3NMasaXS<6cDxP&9a>A!_IA?F|di*u=ssxYg$F9D{C) z;g`Q6oK|`6sGyTJ1LJxfD64T{V`sa9t;0u71@Qxws;oHgjiM(^ zT-LOwl=;z|HDry8*60t?HxOvF*c9x|(;rr<(v;sf}gv?OqaVFLJmZax4~I7V+IY!vwU31Pcrx{^?1lW9i=l@# z215sp{4s+vSw85b0|>^TChp|f1a&tLu4S!E{6Vt2tH=cKDK~URaa$^^(U-t0g)AYw zxj#O_)W`n=s6s$x??`rCj{EYO;Xj<#NRgI0=-o`RcKl3Y#zJOiR6qN|zmGiO{@4i#`lVe% zCR8D7LD55aH*fOtmBR`$6RqUM#T(&}*7Imai)EZaL8+P}HKKZ6SD3`hSa^a)x8Q)0 zj;h$C88lUQmIv$j7xMs)DA&0r{=w3JJXqC3lr5EMBF0D?7$-?b9Y?^S^Os+?0cXK- zUwd-L>X^2NqYzvo(F%1KIykFflk@Kb!wD9`-yNIhZG7F^D1Mr-0TGLK;g=S22Ya1T z!B>k1qvU%u9CD=6rwfL(UA_aHY3XQy1fkJB^!?=v_;l7a(N#2c1eYpX-#Ib2@;B-Z7UcQU>nK9pyGai3a?mKdpchl9 zAz}PEEx5S-+4$^vx5z$&(jZ;r*mEB>-+J!p8I~D>;66e-#e~c9uv}aV+{A_4V~z` z#~+&QJOu+}H{0NBsTMV@ub}cPLYiq<_P(4RlNo zlpFS|^L)%9Jb!~6_wpa>A}$Mlo|%h`FIF}nTkRZ#d9-tD)}P*8Y+CHa3~e+69-$w! zF9BZPgq7~;pC@N|`UH%|`lAP8tGvBTY|5J;^Q*w;uCy|2e7{O=s;rb|cltDNy&1Uwx+mi)I2;HOLSGzb2(^@x6i76 z<)n4UZ5t|Xi6c*>PFpozI7~g)#_BV*pkSUfcT?s>*$i9v!?V$9fPWhSsH5TT=05f; z*{xWGoETi}H2EkbM9=t2Wk@s1P03C{s;QFi@2E=GAUbJd871$ipGBJUB^SQsx(AXu z(c4oR$xmoFJUu7CyiX1$tEqrLq|k+9lU&59O+$05+}7cPZOUI*IlVefPj19+{~_bL;IQ# zD4H;%VM5q+uN?ZJQ7^7Iib78S)VbHrpNq}$F1Tzz9vUP%MY)*9pv0eb%Tc?~TH{0% z-P#0L0eKF>LVu6f`L1T5zZ8jR?T*-r38DPnItYr^v7Lk6q$@Qt<`O(y;-)*)-r;#N zUysd$J#MLn>r0lXPdF%WG9@w4SJ! z-aDzT)$|372-f08cNhmNYe%2M!j`{aUigy#>cJTfdij%VN6bTeu(eigw8v$a^nA<0GhiSl-_<%3uUMEuz`i!WBvk z7A+s4r{-`zPIYC~xEci8sRlAPWinEHLJ*X6#vEWbMgV9pb@el|eVXr1_5?H7P+@(Ie{eKbngCroN)H^>`D|o;?k&*M#5(?(_h*AL(d za5~Fu4mM=55$t7JptB?|awe6zx1;+eZ_MG{xxMwArMG6Wje^O%SUKXJ(VLyvdq@GH zPpiPAk#u+%DJ6*AYsKHgvw*>2;OX(! z!ju}g`NxI^?TdCKRfLRDmTB>9A@&PX01dYEK21=sU_Pn7(TAH11LYpfA{CX)LKfl9C7QKdUZ2gwo)L_3OL*h+$=tr?12( z7m%M@o8$_0OwL1=vp+PWs5^$z$ov&i)&weEVe^VVCFKrsbKK@(^=C{+2um8x+Kp6n zRL>Z+v@Mnm6h#f>eqqe?sjIw3#FPamMaB6Y>|UQqdXmf`+#?!BU1KS6&`@Ixy3F4! zG&)pYokYu$4AI`u1GE!#2JlDLHl)>2N>CM-KaD+&8=52(VP0X(7;ib>jwq-h)P=8A zV$_u>)Ann=qE`#5o$Bb_!>a5nLGgrAgh68ulx_cPR5)nD()U;K<8si)=3ht{uMnsh zBsgl6a_|fYykmwmsm~<&IBOX-waWHURfCxIDA9Xg2+E0cMf*1?{FhiA{cG69GPwHu zR|$SI^{>`TF^e3PUP;HG308#%r*$-&CRRsD1uxSFRYlb#3lz+g7v#lH)^G+>cfat0 zkP2qwgR8$x`p)<#-=g-TdNZ7=%BnAJ+9LkG3euqLIQQyOJvs5`S!tR~b7thEh<+g1 z*C&Xh;ACNwEu;7#+wzd)L(20x4pBc;cExWB%^9=KdO!UW?wF8|>vD z+nw<()AN@vu6GiLi<}%VGad|r& zMyx_D_HGZYJ(2ev@MEIsLBrUd?E_LrL7Nu5un4{ccs)>FoN@xQV*CfEvLfCXkB@G! zc7G&|$t$g?*1!{QKT|Vzuyx~h+(@!{!D+lO0xo$jktkZ0hdzCdjGS1RL&xiDIHu@m zsG~#CCk2J~snpT7Vwd{0L9eKk?1mg!O9RDs>FS?P61)CM4@d>^{M)Obf9zGk&Pij$ z^xQN3^IS&H;W!Q>7U5Ao1=ta3DP+0NC;fbU6B_FHj+PHgVB!@|wTbVi(iVye+BY)w zgGL}#jd@qwsB1cH5xV8u!&!sz#Cjyhxc|2EGWNFllErQ7 z@pu{A&qMYm77Scztw`Wl%~)m59`4BC5wK>D{?=}6D9kvOb~;yMyC_Nfgh=fnP&EO& zo-5{?_s82(queXFZAnPVZ`r!BUI*xBKrKakeCmgY`9nvDt6?2Q*8Hh{DFW({N$px& yZN}9LWjD6Qf0%wf3PsIHl`bT#{C;}Y{d)! literal 0 HcmV?d00001 diff --git a/school/a-level/Y12 2022-2024/Homework/13 - Dictionaries/11.3.4.PNG b/school/a-level/Y12 2022-2024/Homework/13 - Dictionaries/11.3.4.PNG new file mode 100644 index 0000000000000000000000000000000000000000..63f3c8f104f42dc30208865322f198a1515a70d5 GIT binary patch literal 18845 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%0DRCbA>| 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 literal 0 HcmV?d00001 diff --git a/school/a-level/Y12 2022-2024/Homework/13 - Dictionaries/11.3.5.PNG b/school/a-level/Y12 2022-2024/Homework/13 - Dictionaries/11.3.5.PNG new file mode 100644 index 0000000000000000000000000000000000000000..fbe5e84d38a2502ea8b29ed4b858e6624db4ca17 GIT binary patch literal 29019 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 K*8Ui9>puZs-@c~+ literal 0 HcmV?d00001 diff --git a/school/a-level/Y12 2022-2024/Homework/13 - Dictionaries/11.4.2.3.PNG b/school/a-level/Y12 2022-2024/Homework/13 - Dictionaries/11.4.2.3.PNG new file mode 100644 index 0000000000000000000000000000000000000000..4821eac65a4f27b44aef09be3438ebea2b858b09 GIT binary patch literal 16260 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 literal 0 HcmV?d00001 diff --git a/school/a-level/Y12 2022-2024/Homework/13 - Dictionaries/11.4.2.4.PNG b/school/a-level/Y12 2022-2024/Homework/13 - Dictionaries/11.4.2.4.PNG new file mode 100644 index 0000000000000000000000000000000000000000..5c7da179571c88bf56ba9e1b95175ce36303f72d GIT binary patch literal 11179 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
_r(8AM%*gX5lugXA~`jNnamM z%Qz$Yq^4EE7AKClZG(xgp6+xK#ig8dDb&bR(s{TuU_S$$b!`WstqQpIy~Eu!C;#2# za>Ap?tMfU!O-svP5RV5u3u};B$p%YQT_?A$l{+40ORnvUgiH_IZ+rU2Rl>zkq)QYt+{my0@Y4KW(T2lo;(#i&hTZ@tf3XBK`)?b>}z!QX#c|M#Itol9}2)-T8~ zFyZRDGT%KNuN8&8^||BPCgtxXcfTs7{nZ`>#f+}<>gxNam8HN3(w~G2kM*zOi_e=- zb<>!P`Q>TB)*WOBm#9TV7;2kB2fKp1GO*malrO@?Hz5)syhV+@h-e;r_V{5l2>8RY zgLtSHs(0zD4-NGVCR3eSHDXBWAK=#E&kvEh)_Zo#Dx^94#-rpCNG=cKcbpnbA;GW4 zGpBdH+Gku01Coj@A`oA|Wcc)Y8qD1>f$)ZV;WGQcheu&mTwOJg!v%y=`>;S_1E=pA z&oV|-h742sRek`w^vrXKj^aC`&aS5Et{@(#NtT%2)NBhsyGJ}H9-@`~qYv4!CE3AC z5&lr-Qag>Q&S~ZHR>K=kyL?mh(bw?GeoT6%AqI)7z8&vH2M=qltWJXEKGrZg!n3f4 z^Gfln0}iD%N#B|tL=fwpxVQH$N`a>ip(Mnm{J*fd7Qd=5`XEFif0$O@W;*K z?vEq2vi{B|YMpMpzcJDyTzVrq-xEkBu)WrQ8;U6NaalpUlJL9j^9U6wc+t{sD)n2* zhaDJIiO8=iXRrEpWr&KN91%7IOX;iHYj081q7=}7RCE-nM^Mg0L34y+Yxu!Yu%Kqw zfz$zgPdWU)?DCeRuE(^+W0WL0+&~aW#2}mtx-zy^&tTH>Mk<|ecoVM4v8^wlb^pJD e0DL1~a@WU?>uL2l9|e#DV1CK+VwEW@>VE)=ZmL%R literal 0 HcmV?d00001 diff --git a/school/a-level/Y12 2022-2024/Homework/13 - Dictionaries/11.4.2.5.PNG b/school/a-level/Y12 2022-2024/Homework/13 - Dictionaries/11.4.2.5.PNG new file mode 100644 index 0000000000000000000000000000000000000000..23b13d734b22f088e3e846c741a7d2ac28810026 GIT binary patch literal 12364 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 literal 0 HcmV?d00001 diff --git a/school/a-level/Y12 2022-2024/Homework/13 - Dictionaries/11.4.2.6.PNG b/school/a-level/Y12 2022-2024/Homework/13 - Dictionaries/11.4.2.6.PNG new file mode 100644 index 0000000000000000000000000000000000000000..59bbe0f3839ec427f21595afd530295ff38dca94 GIT binary patch literal 16592 zcmch;XH=8jx;7dch={1DL0VK)EEGizJqRd81QZKkr~(p%&^shiX(|HJMM~ra!A1`W zH9-&&X^~Ds2+|=0q$QA$a30>Z&Nue?*4bmNJx=+-U}QdJ&Ux4CzV7+FxMgY}vPWVM z2m}%_GQ4IE0&PcvK-(I23jiZ^ANk_Iziqze2D+f44yhU7$4(a=6CDt!G+ubaVHfaQ z$ji{m7X;eZxb?TK+4F-F2z1ri=$g*mAX_HQbNW<2ioOV0F?&GSm4{?JtWcbt6=M?t4(h`2L_^aNuPQRexZ6 zVP=Yxj?_cX#-HX)r#oNrZ`)Kvsb_YuGu1B9m$NRpJeto6#jrQf3&Kh)mCcS!Utpj! zy9yJ>UyJV81_F(g9H0Q}J$Dtc0|fd2$`Jv9-ffS7f7Im2>ZQOr^vz zXOHx?V+(!{gr3i~06lqkq3g&q%aFyC;3-SV3%p=i5^p-n!M(q|;&KzM2ovN?$eKzh~Dd#(n+l8)vk5U+Fp*z*-)n% z9cn{Jb%%NC7i{tjcjjfyr}!7HF)+DKn;O^|m5V;Zru@7Wf0} z#G6`#oX%gtw-*#;esABe%uIoR+5Js!k>bBG;AS`_ub-|upi zuJJu>@WtiTphq0nf$uBN2AJnrX|{Hf^8LBuzdda{UDL8n--JZPc+um?9hRM8gJaF7 zzj($QkWlJc)ASuLx_hE{$S%JhamDm6hubNqEO!-8) zbVfrV1c^<%a)zorB>}Pz6@y$ew5yzWctlZrW|z9q zp2>y-Y4LV*-NGp(@wNvlv?BTPq9T|44$fbfYp3Y8@C>`ft&(&ybIda)?<>E z;E_QOEX$&Fj#N&goRzBIFLnE#pynrp#PhPKrdYSK`Kqz=4l5RYNt~&lEh`Rm7H&A( z4l_6OGt>AbePMdtjhe=C34q(B4VA{V`qlWsPj@ul)Huz^XWNX%_Xk0?fuNTTQ0A_` z6O~*#F-%(f9HY0meXw&G{B$x>>!s2kG=KWKQXToE^C89LaP@#?N|~~MANVYfZ4XcH z+g4CF!oXkevTH1BW2IIj3YICH*@-2#rCP&W!68Z_(PRMqDoO|K0s4jMq;x2y@r-Q7 zEmvCo-Z20X9&VjuU-I_wTMi-44M6gXP`njrPOV4Aym%g$<=@5dk3vnh-s2r)<;Fd= zOFi#aPEN&tWu@ub?|71xz8m>Fa)|V!HKvp(-f~^Xc7z$38}zgXTw7@pviQSp<*(n7 z-`$iB@piSyL#&^SYNDPRr!j;rLoQyT{>1ImOE1GYSc!<`AH-v7g1sTU$Ok_=2qb6L zrQL>~hTOGcSYi|oX+k_AxGZ*#-RDhTFybZg_i%VOGbL%YuiApA*wkL_yqMY z)S7U2^{er}RNg7=VQqJ4?Q5v!JWJb|dNXTvmwV8~D_khpg@pFG*vrTW!EZaRVE3Z6 z1}5ZuikW#%R(VxE3LoUYvUF0@%7MoZ8VJen9^=7>O}{M{WlS+rijtDk)ri$hR#4Lt z7mvt+IZkCMooA&pi}Bg6aR0g}r1U~TlxM#sLK1(zum%~epj}9{r#Ja-1CA!r8bTmZifI`GP`-VjHX{=6y(CgD1oVkSnOf%ER*MlzZ7u!x_EORXqP<=d*&k*6}J zra^IeOua>51yfQ|7+8mN(391+J;+rJCRnWM-4R`ZBZV{Cxv$=|VL0GI_Vywl6TYF7*s^(j6Cy;Jqxp@#s8etnsvFvOA?B1#R( zNDnJY3){{hdssZA+?B3AL+zkHQK6G#Vf%s2&ozI_QQ+A>bZaA}jAsdI;k@IrIfU(sn z^!vfiG#WFII7a;QtAN(2maa{U{v-J* zp5!zY9pkpyP~9gSdWQWX?NVzs?*oeJ|Gjo)hQ+?8&9uGTI&QE$=2;B;vvNa;B0O7d z`fgw;$dA{(wr0Y9fuVnnjPy&Ct({U49I$l-C`6*cWTTQ9BHv(!; zx-W!Owni_0FE=p^A!`LKS_KwJ!`Q!D>54bQUqNg=`?ww&()wK?HVB5tl_;Mvj&z+h z(xp|Hb1=_284Z^_Ui^j|p9ixg9+a^CD3;|E*s6_Wk^&}Z;Lp66SBWnr9!1iBkd zZk=0J8#Il((`~^C%LYHbE`Feuh<>~j=DDL-l=S$n@`i!)8sxIBWC`YTB;M;OBm4=r zU*MVFioEoF_BP{P(SEelT6-!u3tAFOLbzY(Vr6B_H-Z%_g})aNv#nH&Syh*%@LwG} zc73Tkv-0)Zh8ZRSsYeZw1)t*UUfF%fM@Jah4_2uwBJB=9Rn%h3atiDIXm{IwtF7=j z5bvrqklSsmh^zQ2uR)87F2Zy%^;DmCPY{#*$I8StNBuBgD67J<$fQRRP)TS6F^lx` zgO|}>+~V5W%)nGvJV$)cwOy(PY8}{Ye_Ojl7|GGLXL-(a4`ImTYRW-{0ws4CkxMGG3`N9g`JA z#QqZ9KG|@(r%4`6Nd%R?V4+~B8a?ef<-HLg=e>#pjp&zP&RuIcdasXg4-BR*BvDnv3s+X*Wi{?PT1q3xI6>-BaQ zOm3Be2iC_e73#Dk^v~Y_6NC2l&#-ZxVY?BE9u5>1TwQ@zX7WaaS<>8PTdPcXPNfF9 z*|h0qn5atsh`>W}lid0*o()l21svDzDJE=m#R(x9@pcylT`_fUw|Mtch3p#FKM3p& zR)zB&Jj!Tb&)1u5w`v=VX2V6h^SD^L%qjuq3mGceR68ovv;>*s5sBLe><}?Zuc0TW zMa3?+I@QcS>nGllTZxIc$`%QwE$Q)(=?3X6=towAr@azhEjMP=wqGx<^NR9si>yJ6 z2d#mp`KYVe=VR&A3 z?UTqe7%$yVvowi7ibHQLgOi8Fa^N;OI!#x5SENEpG7NX3UCgmvV#Al>i~-o_AD ziF&oX&#iGJ^SqWt_k=4+ldicCC`D-tmhzwST~dE7+5`lgO(5VbN4)l`#*Sx1;k(B# z#FdN4{C-w-vd80`^+^liLXG1&NC?V%ElkzUEsy!?IBpx4Kp+P|ZKd2Q?H5efE_^>; z`_*n3nJ}C`;SAe5bP41~2<-BvRWU)58MAQv3II05a*FhK;0?;Rvy*mWRzBC~F zzACc`=yXYC_8Udw^(r1>ws4N>fzUljrRw-^@O<6aYwN$%($Ql_+4BMGHQ3N@cdV?= zHFWT?F4EQ4QOUnM&%dXB$4X1^d-^u8?_cJ=!lN44#+Me#XZsd2e;IC4(JCCsv3};8 zqR&joVM?{#N5nX>*Lw3gMmE{C)h(UbNO&*yW*f+odM-ynNIol?=E94l4lBFwu;!u( zCCtWonpxyTMqHnfrQr_a-TPqEC%@`8#O^yBqAn78yjGs8_DP&9kW=XDyE}K;GbieG z-yBKgb{8zYKl(#yb<~rTsJpbudO>+f3I!F*&mZ|_C<%!832lI92-kR)Z_v3Cl0gzJ zLYdu{T0CF_63V$gxvEp-te^0gxVhh&arlVlSdId#wTwK;F5Yehq3rRO-uZbwM?ppD zEAuu8WcuxC1YY%=3RV<+PBYIzHtLYZXwPfV-96GaSIcC5mgg?vV*646h*JNtJerNG zAn4V+P9$knU&a{)8R@;v^3Z!J3RN$O@UIz3I_|8^zb0mSn;Bl1-5f49zbT2gPnp0dZPDguJVw8)$W%WWwxI_IYj>2^h&;E`t`oYE%=6r z*8#j=Y=7qnyd+X1@F?Z`tVF{d1bs~Dy{vbLl|eKC-*#ruPH*-#tw;x;q3l%vJ1K|~ zRT#@P5`3Ruy&d!<_5ekofq6}%+V9QdPv-&46v#1|@!$@!gQefSodsw*yutr~zq)&X zqK}a=KB=8>Wnrph#mp2nKCz(=Pp~`thL=0L4)LYG-B>xSJ+}{#)9qkHxwby(+L{Qt zS1)5Ti+t+1y8*y5@pRU*f*ZA#7ul79iUts$&Y{*qKpfE9Z04_kWG1b%F5S)+7ehXR zzW=yIw0%JthrEwX8!Au?8=!5NdJKknqG$BxpBAiF0D!U2XCQ|;(Mm(M%^6Znb>SKz z{awzj&*=u)cLGHMhAkgh5Ln@5iU8Wiv)RZS@zJ3zij!iyYgtjSJYa+ZKu4X_daYwCKzsQ%rdwKbOo_txQDl)V(Gnrv(n839aT7D+>7Rm$7xo-6XsuPuH2Sb-xh&Ty zM6y`aUVS50P=AnpI>)4T-ov(fMA5psYE3Jg&q63x0@ylsKgAt!KJ0@-H~EpLGiT-` z4tV&t!l11#d?tJ+ZTi94H%JKzRNU2g$U995L#caX1Bfy81nv~Upb^<$x|FX=9Y9!w zP|Kyaa{Htwx22oKbAL~L0XqY`y(iEdJ&$+&x@W<)H4e8`B|M3h_Cp9ev=0^a$T~ zCvkB{$Hc!57%)9gb}N)pWC^*iU{V{Sv7Dg=%gNa@lUrz^t%ap#QcG%4q+7 z{HKC-tD-$$z?7dT;;*W5hVS=i6`+jic|uOLfyI%b&fR4EZ_n%^`_GPVw`!e$sWt#j z{hsp>zJAW>Bq6rP>{|MIQmZeRq7{j6f#QGv1@G%M+Mf0n;;+-F*l9DzK19hQWrS!m zFh~Cyq#GkQx%h~X)4z>4w!ML50~<+y`Z)C$Pa+chGjo2~9C3cd&8OqrYLAcaa1)fP zewzDp<;5TBRGchmgnXeZe~K&ohDhG0N)`k1JJ8d4ncIB(yuKl5zPFa=~q?;8=n48PYKU@iBMk!2m zGF!ul6wrJET;S4fnyzvNU@*2UsYO7x|#xW!`IpGEZB4!IioMxbBJ9*ij08I8zzOwG?J zBp3V0Z`8J-Yn&gDvR911#P9*@_&?{_{WfNHhl(8$&-kW+{n=INMBN?dACU|KL_G`@0O-d-dz`d zQ+ncvH9@lwxRpKspJ^BD;W2LE?HU{qI zoMirSK%h0cVB$a7!55AIQ+(<;DmgzI3_WtNv9xYl26G}%vgV4?RbEfHNwQzh*^{;E%%HUT6d5l4q10sQbzA_AHTqcOiXAis+3 z_qc~ATnv;L=D;f_*ku*|0EW7H_}|p&|FyDzx1_V*%r9+%Vmf$I6>V_x4O6S z?3Yb9{Y45lfHUrr3_z!-*?mYQyX>LUyo>XQ}bdc$l%2J6XRI$Dro7Y<0|+_i2&fh&hWtqT&ugCjwk=%gj!?;A#<~pE)UdHv z0uEE=&<7_#$s+eytm%;eS6Rtg-Q9CPm#Kgb|M><6v7j(1t~y0GL-b(_J{J1MBnltJ z_tL9&cehYHa5ns_g%r0T?Eh17K zD9FQZ__gTub*79p9Z;@P__WzksG+Y*U1Ux!3^9L|lD{he&DvX}x>y{oF5jRZFLJkv z+-K;KB@kn<3{1U`oITtP-RtW5yqsZnR0!D;I{5(YWLgM_;a1K=1f1EOn|`2V_%!6u zk4XGlOAp$1!+!gMD{#5ud=#|wI~zBl-8%@E`J|jvC>+)J&*^Gf$fr-fZZUj2v^{pg zJ84V!X(UUPxF;fX(h<*u@9;Ovp6QeNlu^wX(G$QvIPH6ox*n*Xp?%|x0x{^&%fwE3 zw$bfN>UbMO_p(y<0a{S^IH9x+}5;=SlA(c zifcL+4gqFkq#vdX2R2rb79)H&S#iFYKlo+Qb&GswqI@S3u%;*eH>03JPMhQO=y#{% zH~spnI>WR!Bq3#)BLMy?(P$!{CcvCen#j;O3mv>HvnY6O!p+vO;2$B5gc}RC8Vhl8 zab+DgHCWoCE@2DZqg&?Gy8&fXB+vMVaOZu{7Hs zo+|VBnnMJOuktmJXIlc=1(+Mm{n&y{5{z!|Dl^I|bVvWht_ZYf;i%che@&6*E7N6iB^eP_!F($(EyfcjZi)wt0 z5akpy{=$9$G)w(e7l(6Js6qu7i#$H~ZIoWc9OKe<1H}DEvg&g-u3gw-k>wIvQ+|l@ z;5YPftqo9(+$si4iQAnUPJMSVs6Ci&C8gE+7~dIDY2rcp`;`w7Vs2q(Q~=JZ90Y5} zJ}v-!eD=ywO2kg(qeff%AHEX&gQTpmTtKu8oM-;JF6$VXP|@@1DiB1xMjk~%j}u@M zT5d}YJF2dn+x)pQpl}-q%01jcya@6H4g3^{6`A|W^#Cz}O!sX?j(^+J|G()d{I{)= z@~yD8ks8XOObzA6!)9fI#}8~4-)!9&;s6s`c77qV=D?UQ-XnW1$oxq1ZBqIIIjq+?HWhWjHJ_6iwEBzrNNmTM1yTnB6AHfKM z_p7g7D1!9}6pvA7II<7_)U4>DC4jf#&P74jlcy7-zhKY1T(+jw%y(${(P+KP`c1D3 zp4mwX03CVHtsaJ|4eLTzst{bVimBN0!TL0=UHT&s89wyN40i*q2s}h$%MG8De-@|o zaaItEtm(M}svhw`{kk>u?Hs)ux~dbAzTh?%4(M^@%iFz3-R&$gYceWZZpL2$ zGd?|mlIhS``WRH*r!P_)Id2GrzN>ZrMd{%tm{7mjR)0CY48v!Vc16My^j(uEXbvg5@T=efU;$PaG`0%Kk@5eDkN>yM z|F0M7^>dgEI$xR{6JJN?wJB|U;m%+-x(56KtR2Cg?&h6iIcK=2QTk-W4uNu^OMmj{PtDA*i@;&Ou?e5nobdh+nbwWz%;mL z-Ne+QCF?ahiJ!D}YxIg|5q%q|eh}}Ch{<)|iD$}mVZ3oBGFv-)UG9xYdUrg?eUpqb z+Jb#*5%?WJTY{@Uq)XkVx#b`Bdvchdzwf>fNe%#sZfX6EE<)pp;Fb&C9P~tRX=c?} zZNA`7IhqRP`cma)ubq$fW{X`Qn>up^LSNG@Cn-hP$(+%)^~EA)Sx<}OdLKSsU;5|s zaDZ?)3+{@;w9qz)Z(+$~R*Rhvc8wNrpIy1&fmYsWx;5iK0WSio-H;H_XlmM)JBsB9Ya+jy=)5@GXPS zpF0J_v57shp68ygKk1AACenb7_|RaOl|9cO3*dioa5>CC=eplNMg)nRw{)T?(wi4h zrhsWNl={bZ^$;15hwjricHBPG9QS1%83ro*NNZvp+^B3uc&f;O9c$I zT57IXP9bDnIbJQtN`p;qA49$mzlA-i|Cxn{}elJj=sJ`MnNsGcyUflg; z(Shx%_u$btC4m}*j(yTUb?Jr}OZc0`{*TS)I8M6$AB%LCq71JV1+Kqa?1Ou*yUJu} zZTZ1_?TIat6r?5@jo+#wVD8qnK?x)H-+CMqjv41R=gvP3SrzvWU;KsL_)*8AxY2-9 zAhNtOytDroKO(ISaA_8{oR^TpiSLffUW*{K88-CBdMKh$?8JIOZR|#0G>Hz?RJ~e5ee5PZXQC!T1T_6}3mitSb z^8e-W4LKP~Hik(ZTnFZw&O#u#2AeD3A+wEfv#Ja`Ug4Y%Fuqgn2ynK9SA|(CpxK3R zI%}|NpS9H_hR}>8!P5a_2?Z#CvRZnT7}DG&A%M zPi4r{x!$RBq(#bIG53ug3 zo0+zY!LVN#z7%D89oy%->~kN_VT?a$@a`ZD&$BA{_ppUJ4cSiz~dqEuUZD*O9O`7HeW7U*oH$64zOg0pNhJV@Cu&7G|cC^AAvL;oY{<< zcvT^*6&IUlJF~>rVqNsDU4c>1_ju{4S^;r;88g&PeteaqKYw)!b%78cg`#;#PNnzv z6>A&sl)U1hJvHRpgstyG!*6*UIey+e)k&chWm&&{NlpeEI5y(;Ng zZEd}}4By*G?8^G|dJ^6&t-mvaz7Xz<9QF5}s}{@SiQDSEAC_b-MBNuf9whQPoqUB( zfztNv@Xt(l`U}3Nf7!syXiQX=qL5%NTqPSpGdlRQOzw_d0DtG4VO{Ujy=GUr*W$XF zFVsVxQBdiw-q#))J0cDUrN7eU~~N!J55_=^<#CaQZDaZ{8Kgb z9VQ~an5kD+d<%Ss;1OIEMk>-8=7^uv)!>w^taxd+EN1nR9Kdqd)Y09 zoBKLi@pE%%{nWvk6R3`FGcP!zvjd)3MNjHLiVH`Pg{l!SL8q^ve)8@iH$Y>wV(K3`rq!*&kQSI-$(qE~eY) z6@>&lg0@-4%-r%Nmj%DKWw;DJ{exlf0`;>kIo~>y74q7Kl2lr;*O)M-*yC}d)RowCcG$Ln zEZZ*&B_60cYA}so5Z^yC4n^fMpm~f$8B$BYE2$j`GSo1eN!A^8B~P+oLw~VWT4ME$ zsw$MYBTwU9tD6(&y^>=HCUw4bTxyYfn|j_`Yw-Ri4eQHv)2kuEzy*=e73v#Sd`UCa z6RQ=?S=xX$P36ybepJs}l}at7T*>uRKxI!a*A_4+&$%+088eII)t)KcPgSguk1H#^8_2atB&@XlC zy7*?!ou^0(mBbJS<2a@OPve;L2edc?Z1;VIFHb7$=}*lV?7ZqDbC}b?W?r+BrV4bU z8zEEU10R{?$m!PBY}v`Gqc^d#`0U2Ag4ruNvlDEjtsvFsy~mKy z+I?M_%KuTMJrw_k`;y_pRZ~W`t)vw(=0XUje87HSG`e@j-zLOMn)4jpFv@qP5wpX6 z7uVu%zy3-ZZH5Kd6>VcgTXxiUyHB@X%7-GHp zHD$>UlA8+2AJ+1<~jL z{^@M7m*V%}R!*R#h7j^$EW2dFuu)JN>z7Ry`~f?gFKX*K^K>`2%NcB@?7PJAXI`($ z$PV!lrKa>K45rzr++=LtTSo;lAEzEn@FWPFBD+<#3& zpt&D^{wAYZX-1Az1Oq3+a1BHb4A(7UXZO*J!j9nvUS++?{><{sl?ljb!(}lX317(^TnOAm#YGE?) zG^0%*geBCKF54NEZpewgKyv;ro(ERU27+4&*1G3Hl?&JzVzuevQIKO|=mkGt!qoRY zCL^gm4chmrw!Zk!sNmgjU;dvpd+6S-8vHW(^gfl6D{ti**EZ|7NlC0j7~{JSc)j%M zz~T~aGsJdxg#x5UNktGm;(%c0;mqaeMtTD>?z*3DbHx9E&HA8%YYEIhgeE>zTVK*# zEf-72<_r|B$SJQi*Z~CS0gAfZ-`@kFtmuEJX@3&{j}gn-407xtn&GqP&7=D^cYH3> zj5@xYi-SfCdLD}-EvK|uka*601Z}m8LzqLDjr+*{DEwG+k7(Ol&I~JLRx;7qYA(Do z>~e(j_P>-eJih`3bzv`1*hX?;SDUWp>cJ0|Q0k$a^IX`InPc4o=j*Ja&ya}c=sRk^CykiZyZ+T*$t^!c)d^UyRQgmPJaT`=t&QT~zD-S?08Xwe7 zSa~b}z3m`?;`92HHOKtb5Lz2{M)|m#CQgJ7aVeApPFOnq zf|gk%SmR)Stb5aH68Q+B_qd#hPt9&5%Fvx!wrEH-3~u6V@u5x?%lKE)7V^f{sRe|05?NQ?Gh@X z=ZbU_AS;(n;M|zAei2X~m6YD2cjp`6=a?qIFL#f+1gLM#>-w$EM7H$s7IRns;9m*O zf7dQ~nZs1cAhVcl`oK#E0A@dQy)bYHs1D_7jsqjCt#;i=7G(VwRLJAiRpH6zl{m`0v3> zj7a|36qO3i3AQA+Y2|jAdqd$^{;)B}>sYq07B#Anb&+j7M2;!mz;k0aH!9}JQ0rNA zuIIe)=3?u7;U;f$1J`3@R(z`e{$TVR!_K;TPJt=>F?5JU4`cbx^EWrN2UqhA)j~qo zEoLiRg8@C z_?u$vW8aJRxSYA1<@6=aNVz@&{*ZgsnK8sFKj+J}uaqp_JL7DTr_6uE$fJ$jrss7vrbS_S5 zygbx+b7aSLFiiJNiOz}n0=v%C1gfdvFFPb++3~>BWih>>V$6ZWj{pro^e&ZBXd}og2|goLdLOBW>wX z$(5!m3T*k>(*zy7_Em@A+#Z^ow z%m0}nn<_?yOf`??aHZbFkfV0Ufy-H=sZ}GQ;fdMzsXvt~co%-WV#+BvmeBtC^^Q9K zSW-Y>;xf0Ef_K=j`uzvdSqoyAN>i7i8Q|lMA7YG43>n9ent_F`%fM-{)O2ER>ju3Y z-R;9&KIV#LV$CJNIQl|kwj>QrdDpvInr_MxOI_8uZANvTSk`+Mxl>vC;7QeQ^#^z8 z?KQgS7aIw!(ezMaOp}<(>3AKZwDYZgx5~TAigs31+SOR|dBvVlu+rnkeHA)Jee{z- zLN*ISOHv=hd(K*bk2}w*@9;f9@ggV21U1^0%q{f8FTd$|N7U2FMkxwU&WC9>bJEEPg9H!HE~Ps;?JHQtf=!J% zQgPb3^Zm`j93QVtKdR5f^u!&8e!l2-U(<635Bk;rh*Vw=^#CHb@Sy3l-+`n}(nd&G zoUP1Y^*5i*l0g^XO9P^xw3E6;r=h3Z96Hh+VgMeiJ!@|2amefCoQ1xSv*cM>Fy;H? zjyt=Ns`lx^MOF1FJ50}dy?4<4*&-+$`n1PCk+cl%JX=LRkU~B5gJpvP?~Enmb;<5& za{kK`@fGEwNHo>bbDf%&!1ARKo^GxGbjh@H75RM{+c}EkPdHLx4N;nI{pxLwG^YHz zJ=HZ{4SZ1enfqh0KN>?)vJdSCFmKLw5SB-6N(?K-;UILSccAXc255^Q*>_KuKT0Q8LkD<1}oa+)| zn8{s{AJHART*4~-;IfmSPwNo&EKgFx$ zdqWJiSZO#HTwyMLr@Oz)>vfUJUZlf%$|H>{l!{v)haH)58+c@pNqWd*Bq)2IQaY<+ zA2P?|H_E;Am2?!e8&jRhUofZnP7?h8RX^=`^5fr);VM}ae<3ax&xOS?mC(rph?=4uD@Z8{GQ8tl#XrbHE0xm(>? zetH&&dwE{BWrR;u3EN+i{wSPDT5A$6sVa&2+GO`;HBosbV0OFA8_=ECbeMR=)3)nc z7b~9^tUh0bJm+>sJQ+~Zp}3r-K7#k(r1AJ1^`S&m1=EE4UgQRozgqSua7{hIGIc(X z8todo2Q~PDD?@+el_@Y~5t{v7`6c5m@6=ROVQbLUH2dQOn!EUGkeC5#oRuXrk$^ds z{6ksj;8Myl^$Rl-59iCoaSumIb#6X09_ont3#pgkE=O%%VlJI6+bpeCxOk)^Z{xlH z_MJH*15YBJ%m`}-oDvBnpWK_QpK|hvm)rcf;k#E@#dZb38^Brmhsw{)B~T4T2Pof- z#L1pfoeFZeEUBX?$7GQV;OM3?j=&Ok*074emvu1-DT*LPK?o&)bd@GSdWj;vLkPWC5S0?71wvI? zNJ5bkS_lXvAYFP1ffL^TzTZCk?z6`}sQuVbFMj`XU@4+#C=_jGYnT4 z=;-LqXx>%Vr=vRzqWyh7d7So3g|BHn?c7PvhY9#F1bs2BTKTHje*w@?S$`$^ zL`8+;xzu{8YrOWa85roNtlxxGBwu-WlI2+aw`j%r4ppz0?}vrfFBhQi+);fyFRDp2 zCm4_RBl1CZxY;~5CvFVUUJN1?Xcsuic0SEVawU^_JA3*FBQ+bAmXL5hfwhZmdd;kB zxA%m(mykbcf9vk1>)!Xu*XOmNq#b&?;Yq(Sip8cYaM$X^tLu~eve^iQHkQnoUMzlc zaRYDYMMk;p*FB~*DNM?sixx)>e0Keabs0N#2tUZak(bA`+gi3VsJd>tn>Zd|c4xUZ za4cfMjkx5=*n+(6VG{JIspABZc|8#972p!{q^U%#nsIMt=G9{B{eD9)O2VMbZKTUG zirsxZW9qYGmde_bp0lA9&Ti`Q0OKPNk3(D_XSbUu2=jtmg#7qr0g+W-`_db*tn@Eo z7#XIEpbc-a0GF`yJnn&@P`S#i=Piy37=}0cgd*bz-=USz0o<(Qy>o{|ujh*`qogf7 zLy`Ic-|bWfJdA|3JaB8EGl(2@;NVVYbQ-;O0}I8<*^Hf)#L)i&Y)&T)S$A0SbQ^^h zQS{QNx~&Dk4VD=xvy}ajx}Ewl&~)^Gn9~M`tRK>$#&%XK}lO-oV)XS)M5p&)9K#z1?2Ow)t9tEIg+uF_!?+( z{Q%;-Vif?Dmf&^$A(x946x_JS~tE}j}281NL<^pnpiMZ7as{PhGF5^g@wUY7%e@27amxUwK^BDqyuLt z%su4~W1iz;*w$3?Q_7y%Aq78Xb*np_SNL!uFZb&>0>cnj_`&iF``pEij7yQ_F7;QN z{XBCR&aGTF%e&I>QNThXE`k?{Q0pqElp^~AfAs;tz^C`=RG^wR)oKA22G6X zfW9krZ(9{Qn_Qr*MjYAewFc#}pdv>%)e|L4ddk)9Cl>7Awik<_=)o@TuvvXnsfUn- z0YVH{GCiV>xRWSZ)R*pfea#M-zWDBzX(fBfNa5Ft;t#;FCRJcni8N8BY@xhVG!~N& z2LMre#acdYSDL?`YUu^NUGRO6t1}83?~+|~#A2gVct8Q6zQYhL)r9jOnX1{>ha=(j zi&lQV95v8BvG+GO2HokG9~M~a&bAI9&g|~(7*luXejOugrh1$0?b}QN&p+h06w{f! zk$}L$Glqcd8R!6!AqV}&!+fZf#5~(4ricmOj;Kdz2eS2dP_|DvY{TE!^E58&Sy`ig zJgd~Qz517I@wE6=)p&&u0ZVtS?d}r3!R0G%O5IaYJ+95!q1CI85BhAxaWFY zNgL+J+#3|Un+D0HOLNqo6${bYD|DOg_b4BjA&XqB;0RcROTJe@h`m^c@SQA>m6?g` z=2DV*7k-yMfs?+P1p(HAkZ*UfFU?ID#kN!4vxta4K&e|lS0W1w=)Y5hA8W01;C(A% zW#3SEYaRC7W#z_nM^*vvohRGA(zrS?-CAZ3`QV3-APdQs9i=2&&pU`x=M3&5Gn3uq z$X-R1yS8%_!I9k(k|TMKFp*ja2Sk{Oy0N~$20tyN5OMT!;mIlt^uqCL7w(+Z_L)TX zFu)YUc88q1!n@u&C+-HS1>m)MyrccP7E^TO>_S~WOoR&ha9QrSTgGnK50@7A?NBYL3PN&=U;lSxC1U(Po(fX zI{L`Eg)3_fJoG-IcV1k8NE*2!%B7`0za6!nfxvO+9`1cNn@DuHwfWLdsoZ?yCT@Zc zlLe~8Jtt0eqxC9l#w;siW-F~59+tOA45=cHzlA3}RLz}l$KbchgwS;ku@dCEm2zHA zX$aghK?{@O77xDd(GyLXs)Wxjr6vO^a&%ClA8yg)LbE^qmQQUjoVv!R^^ocO^2ADW ztvEJA5U8Qsnkg9bHYE`Y|4RQxanl11c*Pv^vpX((aD;RT8ONOF1J%-<=LL|2#Wbw> zjSRxvg76-R>eJ;g$3cF669sxS`dIWAodG*VXy7_uYcf0`VvBucxLljHZ+#Y?`s1cy zT~eE-mPc8DR8k6XHPvkNE7%8oLdpqcbH1{^oH0om)EyUEZXP?0G$qaT3G~pDQp;kCQ&EVhP zy-}W2H9)@+}%&*AeCGGo(-~4@>p&1v5j&cYUB+Ui7L_Sd~?psNj20={w*0l?I~wsmH@ay3{AWAZoo>-Wg ziXr+>pU{nZ;?=ts&hlmNI`eyzi0iPtZLu@A&Ppk_%b^~YNP;uLhiCwootboijvuMT z185&F&Zr=0A9ONDQHNL{&Ej!zakeXU;y(pk!<0WYxJhC}g6tL;)map-c?B6V{NCT)0)+fqw+}?AnQNNx}I|e%zW6xYws<#EWWE( z%J!KGS$qS{aEgE93>>c8^4hE8j;nU{|Di_2Sq7jREE2t{8}__7XX}^E_gC1rF`()c zitj$=634bIGPfXuGD;OtJD5s~`TE@n*&5gS zXmFN@&cL?SrmAO)aI;c0(}PmRfgXmtG?3m`HK%~|AB>p76>ozG&AMD^o@Gm%| zEwd(v%*MPTV+)_H!G7KouksDpcmuz-x_Syq_L^DkO;Nttr$F86EJ}67o~fO2aRVF2BabKS4IM7h=|<2G_jM9M9L1wnb71}pGyKY~(Z zJ%NHSN^WMn_I(yI)_gc$glb0mdA$#PCYnsB-rj_r2=xiym`)_m1(25C2k=j#8^1Ql zsrwXBCK?*>0q^s|k4OSQo-6bV=ZlR~ZFDGYo;W>=Nzb8d1FEzolHKNIlhMNws@Im% zqm|B_QHZ`>^LIgj=xRxT02y2E!E2TmW1CS$F+iI1ElO=pC03!{EMCICai-4Mw8j=U zdZau1fSnd`7>R0(Q0Y?PTTl3V;y4d~4J&hm0GEoXnD zg1vQ3eedkFxlNmAP6b=2^NF!mZpGn9PIQH!M!EZiHpw zNkB$c4yKtBe#|SouScLAO>O4?G`2KtmTi z&2ElgV! zWn&A~!Mo$s_dyvGA^`&EnZC=GJfNrT)1wL&BU?bS#>95pblNt`wXEJ;M}hkKQX%K* zMizmqP1d_PDu~!+#Z#-=ohHbms4FC4fxD6}?|HR%RZjDunDnjqYyha0>DXX_h?IPb z(h2HrWTr7Wvg{V3uR`y3Wz#aOA8I(S!|pQsgl02XQRd2RyY-O6pY71hK>#&HbxHYM zt8(yBejD_U5pSG>CtkP^auGdQtxkQ%yzZP%GM0WRKsC9GXyC^gO`EW7isaXxU;uy? z%Zu>x*A@l^kSg>n2Hr5{4i_dA{QQ#K zhLNrNvql<Q@^pu~MKUm7mZ;wX6w| z80B;vmU~)88?t798=TtGSiGlGbTrgq%CoV0-bY69gg-@ut!ctUuys)maeFM>p;u79 zcQZ_})$VQa5qMYGbrAVr0%{=A8p0rwuYC;Id>~i<@~D~AS9Sq+z^6+|(aoq$QnUBe zR>Ttmyx>$Ei&3`8s(k0_X;l7ERCQ7~3nnU#A}Zl~d3#KM@KH=4%8D*3-%_#p0Fi1Q>f5jR{Q9Lv#5`G$DNDsMv07Y0y`Aok-ng1<#!L4qU zL3_-VCac!<_r%BQH+yiN6yiIo%2%6xiEmBVxIGijz5diFDz4|l-gFEEvuhZ*TG`3J zr+KwECu5&kEI6LXr#RqF14>7gPyHN?xT`MT#-9Un?E^XQ(y?8N~kDM_ex+5$DYr{82@htrCrzQNqj#}5Y6`! z#_>|(UW}6awc5sbhG4uXb?=J<8Tj)-`Z*m!!?(I0gw=QAN^1+(C{AyIPT>6*=lo9Q zn2_DvT2lmKQm$;^#vD5i`(^fUY1pA4v4Zcic*LwllcSt0YI z(RYfCXtOVwf`LR8&|5@nXKW#*SGWbxm_5N-j$?V^mPju|!%pFB%G}M)W|WisY%OfP z-#KwjuTBoto>cbnv}&7&&d64KXL=oTeY@0s~Vy$_V@Z&_05s!f-U4o#njj&`u)^4s7 zVdEAn3NhK9OyHa|V)kH_T3?jfFz3V{U-T9-dy>4~q74+7<_iYvH}0m=6n&@&T(=An zHxdslqiEV^a0`GoWF0L9Fk4*7jP|Q#spa!(^6tBLVA&CcV|~2tg@uU#Si?^1R>Ig4 z)nhXos$iQBRPq=OpsGugjcYj|}M%5WdF3 zWwvxIKq5N9NpgWEg4AFK1DXhIQy_LN`9E)O+|oo$@x!bnr5SzYB?eFIH@nudY5Ur= zm*51H%^b%1nS_|`m6{^dwOLI+$Cg4oou%F4I-J2TJtZ1JYK3?ee(fd0j+uIGmf31yGRJ2KF`CZhnTwqZuD>eiKt3 zNzwM*_^Rw4$mWG;fsNjw#UJKV2H{}xD4TxfygDTUd9}qZ5BSh5V>0*IaD?ev3L$%= z;|gk+Dp$7N)%Uf2iGs~m(`whQ3jo(Z%PBv=8Cdra-hu3Uc}lhy;VLIl2>M^_%TNk< zNc=M!O5e8L3l0asuDhMiWvlg&p?IrEz6=6Cu4kLVlQ zacf6k*<#{$kKe&)?ZzxO)pgX1&t}Za5;2O-geFnvt8-!;~#SbM}c> zp>G1x-+~i1-U>KF0&K`n11xLc#fggYC;%2jM$vOq7!OQaMe(3vCakDGVYL~fN5nor zMbAi-Kf*_ygDm_)y%t2J3eFZaLkn42k)d&!kn^0ETzI~v#i{BvX#2B2Hmd!>rh3=g zXqsl>e`RrC_5TAx_un$I{~1I4_XGcHj_TiY__x5qzt!g7YV+TSNBvuE{;f9uR-6Ay z|M7g|!h6!v5$l?FzX>TFkw6z2B_Rly;q_#Om26vNUpg2LU<4 zNk{iRHQw_VH%V)g=bG+NSgP%%4i{6?p)4m3nE7G47w)$@Q@D(#8c@H)?&;{Boo(~s zX^DgvT%#pm4(|F8cM)KOh&>9SmETOi$dr*Uu_n*nrDbvsE}emd8>jtw=ik5Ht)XQB zBp@x8k5ACOFle-V?5aTP+Abl8cI(rv%43AH5JOB{;Mz4xF|5p&_V^E9+GXuWxfiBP z+wjG^*oM+e%Q(wj9>6Vha~nK@^~aPfJ?|+xy4aToll02CBJ1zziUPgeFg9XGoPRE* zcWmnnZH8WyK~}w#t%Gxz7eSwcZq_XYFw%PcJ@@hniQoH88`LE$u^;OL zmP@1FlfRDn5x7|nBXo4`Bg9VRd4LSLT=g%K1T+2rMT7z=1rFIhwA#Ygkt4f@zcDx@6pT>(g4k*}hCeI) zU>-abZTR>q>FKeN!S!#U3o1EZEFKlA&T)YN-&+x3GER&;M>h`Ju$Z1enI4k$R4TXf z`zG-D(&d70H{0+GRV8z8&JbQHzpVRW9MZ3XF!~Z>&geYIu|_|CtW~)DETrPF%e?R7 zrj6HnkHoJVz43@IV0mUUpvHzg5pdY=WeG#kD{#^G)PbL*y`sh0SuBL|ATZ|%hgW6s zq9gPXR zz`k^4bZ(J&LG{_sqfX6O_9!r4IS=Sgp>{w#;06A-Ua&7*360oX4CWO&#Fon)jt@`s zZ<4-1D3De&8v$^kNXHh7!Jq9`t;p6be@rS5RZ!q+%$KiC;U zJ+k5-08~^*d~dY+b<*VerSHnOMFlYxykN~NU%ol&3x1dR|TBNdux7dT!hHm!4gcP%0(*_mPSA!HGs;86G?heXZ*O!1tjegfmMJ?9g5opoBnGid zze*zL9axRW;GVjs!8OphahG&*!4K2-wP)>)nt0rOBb?Jz;V@`%ffL{LN|CSXCJ75$ zXT=if_(lHEk7=e?&Lph`sY?9{HB>r0_L)wyvE;OE-iV$ZYoxIVXn9-fpSNUKs@)iJ zIBCtyZ_j;nnPip>ph`R(6i6ukOdZDJw@OTJVQ0DYFbvi+HeXZU)P-#@Os^JLX(1Zt z60d(C#}v4ix<)n0nsZY7bsfDUGwQ%PTF2y?Xfj()^z~9_&<%ULbJG1ercY6+vzTq%^o!9AASu;Hs4gUJRk*4hO zHDDHyuCEp+oINB{J=HMORyu;s@06)?lL|uSVv5q2Dvs_RC8tw>xU^|i)@yz5zNsnE zhLV*>#y%_6)WzYO)skpykd&`rt@(1qe0C6u$ z7#7OdP?4OTFCX|e=3bUkzK~FWe0{K3Sv9j|RZ`2rPf8dDr?pfN4Cr8o-jTA?v^A|9 z0~NW$BPD%f|5`t^tTT^j|Zm>pvLYi{ca(mqZ`&j_761!75dz{6+x|*XEokH zy3&98`pblr-s^gca$u#cvVdWD0hjzmD%5~}%{A%B@>6D7waYK&4t<2UeJmS4SSa?N17G+ z#kxi3cJZyBvKU86Di;Kueh*>6T8P|Z?t1%+n)Lp-G>krB!lM?sb;xMgLOIX~A+qe6 z^vAeubMCFAol_T3l)Zrw59M$N&s;W}+Wl?ju!dbfx$Z$HPc@@+8Q*_esO0SMpB5hG zL=9j0rN;@o?wX3sB;mwlzPiS8b!_N#tkt5)@dKSG!{IsPN2Q|~@oSZRpVKczS;YQ) za2wY!lMQ7D>zav&(4YF<27i?(wldBFP&W$3x?X@qC-sMYg|vOZazIAayW!EerY$jYyM>wN!L=KA#cBa?fC zUaVYIFw%nIFBa*YrP`J;RFl-*+n4_5Wh8GbgSz^7>D9nr})Z8V{vre4Dmlt}{Zf!(!t z`IEhUa#d5#br=3(y*{9hZ$m#};-VXabM(`Hu4|Ycu?ori$v4LbjeI2P9P?_9*niKe zG3a+k_AKA=GXGPhWi0%n)RQoJ!qNu;f9mwn#0Fj0Z?O6i&!eVnCk9YODUHF$e)nT9 z{y*YU-7g;C_>bJO4Rqy=CZt(+SAWlefAPBiZ}%3xqwG^$6fbHawu-m z6C}&|TyJ+S%xh<5QBilZpw+x-L1S;d_XIJf;J^Vwa*o_zcL|O3y;{7$7&d+4FA!re zUoU&4p@PWkFR7`5*f`q7_!n5?21fag5R(f`x;GkSt{rZoxUAnpWLK>!h8uObj6n60 z*or?A>n)k`yn$w+DFpX-?-^3CF`6UY;$lk?nuJJq6=8xA>Xlu zMNDbahErYM4j(^aU}Z9KXQP?=Tuu@A`cIgHUZxd4G&kkP=Qt6M0-*hboq?zC`4Rvo z2>1y;p{5e6An~F*sD))L-W&1k%o_{0Atej&+v>Ij2D43)x47bpLsVggi#VT>)OzgP zdz=<7IeJ>2BvuBH&tt=KaH;X0sME`kRuLhE?Fw<%aw2NbrMEaGe18X?iL6>fOB9u*TIRf5Cg~ z_Ym{BPDTc_%8MANUev2ZdLafFgfE2my8NeN7{DxS-1j0DF6yUvhbfp3rMvAuRi$!e zdbVgz8ov>ln;C*WHorW6nZ$sQ{{t~jeuVH@TuSJ95dTvB=GzGBbBMH-u3VU@b2_|$ z74><=8XG$Yw1SfHS$ZF10-&OpOo!^B*e_EC#m7%+CON}wionPCv0Yfh*WTbfTBT(b ztt9+6NQy2Y35N&m#&!zc(S1ll3b7iCfda>@Y81MXA=3TwNp%kq{={pnnjyICVyL(n zI_Dm;_(H}jl9pxIFz7-3-lxem57dCa$jN~};k26~YPJMcpY~8m|8gGk6UJC~!X3i* z9vxqJSSa)7*2*;RZT$AeHBqHiCM#SN_CCeGfimY`Db*T91*>P3PBc3>Dv z&d%EQv8Z3I69Sa;!%(Cy=!jn^?LnQ3H1jaFJV*wL3AYz%N@2D%R_yaPe z6#I93QznIiFx{xY+5%PM{erTFxMO^( z`Pnr~qii6=3gv2f5#8U}NKJCVh_VTaVGu989kLlhxbVBz{*}+nTOyh@d^grVABG1O zKb@r*!}Rn1PH-H?I8TL&S4G9GXFl3y5u}=nY!mbUr6awC;EL0~zj-bmnt6jN;KQK4 z-^$6(@DG+WXS|*=mQW!453XdQ;X~G<9>J-6dE3C=)!sC4(z;D69*bk7nPLya%E`7fh!BWne+r}{4m@1}(wm}nc5 z&!_(}qCcqF--Y_;68^tSLpx0lVpp$2f1$sHf7p%xv6o(#HnI%Ze6`qLne&`8kle9Y zX}Qh)h3BB!x-~jyr0V7c8okz5{heM5#u!RTq-(AWG(0P&;LUQD_SR#%4v92IUy^cZ z-x^Z=OtVPW>G8jj(3sdk#X4l-^sX^4ZiT^XX|6q zsmnI44_y4O9;Web{x=7_+ZZo!;8j7O+cYmH4jmC$^4N5-@Tlb69?;`_E{kxXl}=y- zWE#Q0?4R4;8PBR;^y2tH5uI@Jq8P6is#Z*Q3dI<%64OS4>7SjnXD7D~aMNM~w@%N} zi2u8KJ>-QbW-J|~LLnX?$KQre`?Z1Qh}KDaq9y4pu3fI~Jm*F$3oN^_a9~#e>Zxa? zpI|3z(Z}_P=f%9*-PjC369!M*V;>LT<3ox~B1=Z|EJAE}Ca9slcA)8p8ToKkpR)!_ zY@3|6v++;50{1@!vbuTTrz3`Y`V`uplsGq+G|Au{PP_nrm7rBi9ksrH5P?9)0~B6H z8FCAp2-JrI1&Z-n_jo{5l48;vnLF`dV<}4j5$R-G!Mc@4T zAe4ekDX4vX8n)gXoZWWo4x&|4G5g~}SHj(G&AoG|9)MKZ+{xy|_=c&+mgbCR^^PY* z+20L*-1ynHk~gPx4P?-^Az?RKOCZ(@;mrGGc7~tcLVQo<0y!L(_(+Sw#C6bWT^Fgr zIVucl-r^Te@Eu7I)W#Xs_DtMuRx8y)fUkx+UWv^~2AClgUA{!=Lb8^n9pcQdfnd(X zpUKfH4#WMKI1U>mU*iqD%s3UoCQ93a@R!cVUIXFyyC2+Skc_{JMv|BJ$H_j!PAF_KN-Uj=1X{Qq!~h3dnUZp_zrkT?t>dFtxnWVQui?foI`hvfVZQd7JuRU}Th2 z#@gj3Qxrry#dVfcFCuO<=ybKEq7xZ2^=(-q=x>rG;NUsncX)bk-`K!8D88VB+JC;CuZU)qJ9DcuaA8^c6w+osklj*jMPLJ zEJ5iqu=pmg8tc97qD4k`bSA909#1XwYoK(3qzEp%w>Pt(8y=wTaW&MKBa!jl=7?j) zUi$uS$0qeuz=++8KV%=v4LYtc<7e`%@p?r^gvoyW`OwEJISBx@)WI`U%Cc~LYgCXp z)KvdrR)_oos%N2PmEPwHHhja4Cy6=kjgI09ZD(riu++RbHd0-T8{SCrAFsP_-y<_# zeb|P0*3KRE^ub##k@y1j@OcU5w-+i@-bA08Fva0lEq#qff`j4$YW7M;4{BtP*6^?9U&oZpS?)VWpg@$uYyr%{13Ry%J5 z6+SEIih`hzL6F>UTP$xYE$5&z1H|=RTO(!5ZSdzzk8!LgibQ4>@()mnKV; z#OoGh*S3cUOB`aL<7Q#cM%~C*b3!U~dB1`cp;qXWHaO==PM?HsOqn%#dbv~tU91Rm zEta**h+eQ-mb}bVseuyfB_z93$+NvV+N1k@A1IpS_8^Z`@TW0$a&S%>`+{xla<0#f zK52FyXLJH!xH@!>2c$`0S4khQ%``=vHhQ*e>m0&+KJLM}`Fg7w_!S|wK&XjPj!Jmn z-UE|Y<%RJDT+$nIps*jAv+OpkPc0jiPR1296zbIyxd<**fdM*C{q}YZJi4cK=1P*H zk_x&4<|c_{pe~ObhT~+QBfw2ZA*H~eyn;o}GS0nXT^|tzcHUlQF2_tk4Da5M2#f0DF&;#eq zm|hD#kkZDeccsT2gE{Aq(4$J%*_zQdbKh+xKS3WFeaS55@>D8~E?4RcY^g3x5jsOF zOPd{9WFBK6)LkE%%wAGnE-6?X5?5NP#0(e^R88#qvG6pmFig4JI6&f@T`u#}Jq0oM zHpqOJJx^TykDJM?#f!n3I9FMZQ|qVgL^FTJiGqsCJ$OJ4G$jCYqJri+Y28e1m-d7# zG3$NTXD9h-L25J4nDBs160lj~pXtZ?hwQHt7=9Feu6<(%`_J({Uh$hg&{r) z0MP(WGZfTWq!@Wh-pLHjIhUYjIyQ118VY_>n|a}h$&m4A&x8o zbU9cj%M~F;U*>^ve+d9Fa2s|Jy_RACpl#~eVWaPZ5Icd+b`8TO89%W7dmCr0;M=z2|w%2lj ztqd>4#o@4r$|Kw6J>q@$`cR=isCapPa=u1jyFJfrM*rA%Eax?XSY3VY=>TP+yUZSG zBc60^@F5NVTn9@=!2Oxc{Ji=&X(78v8!S94noQAT9gpf%vT7mUO2)wvdU9UW;4zwC zd|Q-)!!Og~O>HdmAv)yz^oJK8je%>yXDpw|!gAh>jnOAtzU&!mNgOLmr^(MA!q>(5 z4d$J9TA^fv5~^vU*Mo3cJ`eL16_`TN1DQ^*)>BvMW+wq%+{}9zGIjtsanv~=9DKFl zSHT|mORyvAX_^k{Y4M=ra2j|4PLsUQB>?D7IAD0?a)8^F=#jY1_H4wFUwvN$E&)(i z%2eF^IKJRY>_GoL6@(<=BF(C2BWY}vjfQ6Av=Jj3ijI4-d;H%xKiLWRExYxbkg@oe zNDB=|h#eX7IBx5m(PqLYA7I-{Sg$^z#V%suK}Ov4=eH8I#qZ6t=Zw54ozY3*B~QZ9 z4q#VQN8k7zXqHvY`6cOrY#`J>TF5U6AlnLAPg;TM{sy5QJ2MSmqXkOK`viPhZr6Lh zX9MJS*Vv5dMk~H6?2qbBmyGl8)QSUUcVQ4R=nI%FEeA(+JNq|`XfpsYyl_&; zPzA|vgs|@<=7M#=l(h{Z)JkzjNuF-VoWiB|B|GDw(fPpj{^>Gi{=dWDUt!+DT0|me z$i>jYpQqbcQojU)J2DB28D{4Jnfu?J-|miVG$8_9DCM*zUo+4!)}s*=+GAX|z92v> zhK^f!_8c`1Vg>#a)V^2NtXE_w_?iH#4sQ7oUoA4YloF)BRB9coKWJM1A37=qs}! zA)H|x!t73LBeIlN{%rlmh^L!>m9G2f$TnoD;!B^gH1j(XpX;#P?ZwlyIij%+`%@*7 ze}ME?%7BH1^YjgNBql64Q$r&UcetN0Tj*6Uo?mU=REv7!@|TAs2!v#c_03kstoBl zn8Gw(DD~84wPoG<_M+w37W*FrPW0%hf1z87sq~VvK8HoVMsrHVLMG?V{R?NyKLRki z|LQN=^@u6|w{)uNlfv|+P7=TN3z}y9E1mmomHc`A;olbVpA_;pZV;sT@%JQd8w+jI z?5y^myzzH@|0@qX$iMyu&AbJ6;9Gc#xPqV2o373YYE?p4B3DH$;8BKe(2KOqZ^gE@X@aYHKUG zjzEhkA3iWvv*n-7v+yMR99`LSHAQd`D{OW)uGMwKY;L8exZlkwZYqZ&MhVO@no=@X zYL_al4N$&YE}(W`1D(7hVW!8uLgxq!A%@e?bleP*XbNd_Q{02{=D@{il_^6jBbFD`fTa#Ri z8&TFTBM8bj>jm!Oj6>Dq9&8WiIGz)x4#&id8(XGSx$IRpA{$G>@TfC1%5xkb7g&l^ zO$Yb6t>%#H7n;2j9`< z+EDUZ@YHXMY!kdHFCR$)yc)??2o&n}nU@ZZ(7_}%W=k0~l#9)^ei0+(?+;lleY0ON zT^&%u7h{mN+AZqN=9i(%+X6d%kz<0=Wdzc;Bq7QJ2k!MIPGm0=M)of8gF@7q-M1bu z=uk^Cvwt?#^BqcOl5R@UUMt)-zCM(P&58$@HK_P2BG2mb!*(?6jp270$;=`PmC3E#2#r>f`*6#v0DMBw}=` zHZCjCQzGo;MqTx0At&{B+q)(*AJiF|YiE^F)6*V*2!7jaK@wgot5KF8UFCr-fVw16 z5b{}SBJ<@EOaHy-TJOBp`+*rkV_D)g=E#IXv#IpfISw2FV zD%PS>|A7~c8;a+Hz*#HC-TDBu$+*0tODi1<(%T z(0HX7r@-G^oaPAkFvlWD`Dmn$_;K0L^2oM;y4}<0DdbG` zr-hbkzV)PmtOQ^U5CT7^j)uAgB)xigG53Or+kNI;YgD?BpSSBH+V-J*-7Skj2yL(I zdt1Nf+3dX#X^(nTHE(-AA0xzW<2>ig&;V8K>(!J$!sE9Pv+~v8?VNWJQt9!1xek>v zlsR`)L~SkgQQtPZFHbC`CtGTGETP|yczG}bd?sL|a_CtR(mdqukAX-U7n}sFnS9i^ zW4b1R-2JG>_XPN4hIK9(s>D7QB4}2rtwi>yDXA;(bbjWGf;662K3fi}WnwXDO;SYJ z;0P7|%>;9$vwNyFmKfGCOEHj@<@SS*g$AZjOAVo<1QIRyRc(%>J~Sr9+dW)_|fU|%3G^Yf}%BB++L>$Vq>n@c!N z!TfukOdOUUR%`?d9|zNeGi8U9lP39_sv2~L?A{2L08z8c0hi68eWASzTzpM$)p^51 zTQbLz&66*_ViQi?sDWMpapk6YR`1-?2%3+%EFj^T z7;AJZ_m(%Sw^S%xiT%L&5D_Q59VtSkBHo^s9h~b+F2yOMC(dU zpi1xUo&j=+d+{(*-GAic+kQ&C-mcPEcM~?l(M}e+Kq(pDDtR<#ZTGLp!x_T@mZgRK z{*EgS$UMI_&q@?4L2~{{qMnjKMQDtk`cBR4V6WT|boks5OpN1GVgNl9opN z^U?RO6jatzb1CcMBRJi3x_j3r(b4Zlwr(E%N6Z}$8l!$e+)SlUWD$`&DrM1LCGj6# znR=zb-uecB(LV9USk@sLKM=PcapE>Q{tagA{ljc~4CN9*A>iF3c2$dB!d$lw`$3z)h z;JAovnU?S{bJt;bFz|fj`PD5@++v(k28 z>tEOY=G(ZKW^5t>bG|XIqx&&%1!}voOvbEUe(TPf`?wi!Ygt{PqKI}Ni-3{e)j&dw zLS1;c_ z(jH{guujU=y4bl-l)DYb>0Si5*Nc}EFduS)-_bh;uIQ;hdI`P_xi0l4mOMQ-kvewq zR7B=S#$toC@D&ATUv2IgnQo$w`r6<85WX#%q(PZT1lv(+Pi#5a^Aq z2Buin4BI25&U1Aun<987+zF5bA-WfixNVvj(e>}RxJNjioU3|F%iSQ6wV5c$3t`Z|78lnDX$#&ad`ldF*e#cJG zT^$)kmG_!|rVL8?8935fO|&!bUsIq7z1@T?oYiMw@{Qsw3{s_Ql!vXH(Z66{NiOCd z1%f_E!<>A@2u3F7*~wZst&Mb1lp`j^N@8HDOG&G{eJ^c}BQ6H2`=BRL$h8)k7Kn*& zGt^{a*~qk4Jnhj9VR^Px6Oe+~I7D}A?gl?-JHk7YYcfYPgnl?7?S9MN%(fKyUY_z! z+WFLknVT(?&IBQVfrd}k%sQNZ&&|wVbSiVZI=$3f-Ysp4>hDJi7EpHB9&{TU-_k^3 z&2cxnw^C;*A}jv++4Lw+S|xE^PbzqQP*YnwezrpCjyA+|MIbQ1&0U$kq!8b%PDz9bb4n?!~<0U{RlsJ7w{_?p1gz{FL8D^POf z^(MV{N!2xMR5OoO< z4pzG6056y{NIa;oe=+&u?*;Dz;9t&Q(mnN`*{1({)$x?6KW*Ob#^K-CDTf8H)}5tJ z?EHd5XTYk;ruu>b`rz155OF~RCqNLRq51ltA)W>XlxC!sa^Rv!M-UF z7b_7wxiavOc1kL0Lk*YO2p1@Rhn#NKI)NrEV=i zqer2u`;@Rn+9?-yxc!ZWh9sw)i8{;OxWxwQrt4|6cu}#kt~G)%Z-X6P**VlnJI_m@ zRqu;e^dlX;pI1ad1%qJ3$T~@2hwBKAEPS^k32efBZs1XziN6j)w|8YK_~%BJ8dh3c z)1J?w?OkaOEnVMkfxAIFe&)iNJotwX1yMFzD=nJ`^#|3T z)!uAMPDt3jN3!qJrP~3b<5yhP2reRUfWdS|fC&r$LV3DNmXp|#7VeD~j`ks~5MWT) z8_}Z7=)@<*gnnq@+_w{N*$IJ7e#^^lS8+Cc3x0;NHyzGNR@S*XnioHgzR)>?(G1xh z3fC|uVl)#+#6bShyQ!PnX?FriZubAHm2>}Q`vAjuC^d&OCCXUcqY+kVSVR3wO|OitZSD?*v1Q|VkvP@zQ-t09q8vDPI)gnj>r{rdg` z?>W!&c|H$mTx-l_Edk9H_b!}V{hsa^VGv;z0pIt2Sqn(fx`%bUkW0lyQN5+m#GE{j zeG?&g;IGZ5GS76WRG8!0wP&LZX2N?8^mbh`G|5O@0+E+~uq>sD4jmJBXk=jeTn#KS;?SHVl!dI97 z9Wol~5TF;_YF)5xNpA7QvH&SinTv)3*Z_I@p#xoV8mP9gQF=|uG~^24`g=W-B!I9P z%}Ss8_T7%%K)=M&z4_6v=0ij{y}S7qhTXXf&b(fwwAtINjJP||7YD()|K!CZymFf) zX3G&!1PcLm5BCpBV8I0R%6fZQ6@@UiHain;GU7&jBL*pe5J&}Kpy+{Pg~PO1KkySK zH&Z3>7#6L{`cNLht+9+1Uy?zEQ|=ACLkDIm?7;{sZ=q9;5kxH*Y<;7U<@0I%5=VYr z%WqClbDi3DOE!D%m*zxG|4@R9Aq0}QV@erW=c7^qnu^-Mf+A$@yDp+CaqrFn2(Qf} zTP&Y_w=Ox2o($p{f%hf(MgI&|{L9Rf6xrJ*{2Dtbi*v>)o|_a!mC=N@VDgeU9iP=G zO?~RyvzW#3y0;eZ2;IDLE@&l&A@A4c0Zm=h5($Rr0wVuw&E;mKQv0z-!l{fKBoH1b z)zx8CeN}$-R3ns&PBD+a6bkN{hnG8bt6!;g)I8JTpgz=#BH(qG%)HU8@p$$qc0EIqzE-~^6)c1GsV%BPW-l%56wrL+)jAc?G`shg12SU z=ww?IDT^-_b+o-nqs!^$=Mbx1hcTggL8lo z5_o4n5d<759}SJ3L~|_daIyn-Sd5pRl~P)b|ISrR7}DAqs=YYYwH@cg{rrF4SeeBs Zk5Bj!@Yu0E;Xd%`KxjWKitTfi{2x!7bjAPx literal 0 HcmV?d00001 diff --git a/school/a-level/Y12 2022-2024/Homework/13 - Dictionaries/11.5.2.PNG b/school/a-level/Y12 2022-2024/Homework/13 - Dictionaries/11.5.2.PNG new file mode 100644 index 0000000000000000000000000000000000000000..d35107e034d4b8de7f5f0fefbb31636f3b027f11 GIT binary patch literal 17243 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 literal 0 HcmV?d00001 diff --git a/school/a-level/Y12 2022-2024/Homework/13 - Dictionaries/Letter Frequency.py b/school/a-level/Y12 2022-2024/Homework/13 - Dictionaries/Letter Frequency.py new file mode 100644 index 0000000..0b714ab --- /dev/null +++ b/school/a-level/Y12 2022-2024/Homework/13 - Dictionaries/Letter Frequency.py @@ -0,0 +1,17 @@ +from typing import Dict +import re + +def letterFrequency(text: str) -> Dict[str, int]: + output = {} + text = re.sub('[^a-zA-Z]+', '', text) + + for letter in text: + if letter in output: + output[letter] += 1 + else: + output[letter] = 1 + + return output + +frequency = letterFrequency('I wish I wish with all my heart to fly with dragons in a land apart') +print(frequency) diff --git a/school/a-level/Y12 2022-2024/Homework/14 - Code and test a program/primeList/__init__.py b/school/a-level/Y12 2022-2024/Homework/14 - Code and test a program/primeList/__init__.py new file mode 100644 index 0000000..85353c2 --- /dev/null +++ b/school/a-level/Y12 2022-2024/Homework/14 - Code and test a program/primeList/__init__.py @@ -0,0 +1,92 @@ +from time import sleep + +# :eyes: +def clearTerminal(): + print('\n' * 25) + +def findPrimes(upperBound: int): + """ + Implementation of the Sieve of Eratosthenes. + https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes + """ + mask = [True for _ in range(upperBound)] + primes = [] + + mask[0] = False + mask[1] = False + + for i in range(2, upperBound): + if mask[i]: + primes.append(i) + + j = 2 * i + + while j < upperBound: + mask[j] = False + j += i + + return primes + +POSSIBLE_PRIMES = findPrimes(1_000_000) # Would be better to hardcode this list as it is constant, however I want good marks and to show complex algorithms I guess!!! +inputtedPrimes = [] + +def getPrime(primeList): + while True: + try: + value = int(input("Please enter a prime number to add to the list: ")) + + # Ensure that the value fits the requirements set out by the brief + if value > 999_999 or value < 0: + raise ValueError('Please ensure you enter an integer at most 6 digits long!') + elif value not in POSSIBLE_PRIMES: + raise ValueError('That is not a prime number! Please try again.') + elif value in primeList: + raise ValueError('You have already inputted that prime number! Please enter a different one.') + + # Mutate the prime list and return it back to the caller + primeList.append(value) + return primeList + except ValueError as e: + # Check to see if the error was raised by Python or manually, and print messages accordingly + if e.args[0].startswith("invalid literal"): + print('Please enter a valid integer!') + else: + print(e) + +if __name__ == "__main__": + while True: + print("""Welcome to the prime checker! +What would you like to do? + +1) Add a number to the list +2) View the list of inputted primes +3) Exit +""") + + while True: + try: + choice = int(input("Please enter your choice: ")) + + if choice not in [1, 2, 3]: + raise ValueError + + break + except ValueError: + print("Please enter a valid option from the list (1-3)") + + clearTerminal() + + if choice == 1: + inputtedPrimes = getPrime(inputtedPrimes) + elif choice == 2: + # Only print the list if there is values inside to print + if len(inputtedPrimes) > 0: + print(', '.join(map(lambda x: str(x), inputtedPrimes))) + else: + print('There is currently nothing in the list!') + + sleep(2.5) + elif choice == 3: + exit() + + clearTerminal() diff --git a/school/a-level/Y12 2022-2024/Homework/14 - Code and test a program/test.py b/school/a-level/Y12 2022-2024/Homework/14 - Code and test a program/test.py new file mode 100644 index 0000000..292103c --- /dev/null +++ b/school/a-level/Y12 2022-2024/Homework/14 - Code and test a program/test.py @@ -0,0 +1,18 @@ +import unittest +import sys + +from primeList import findPrimes + +# My code can not be unit tested much with how I have structured it but here's proof I know how to do it I guess :D + +class SieveTest(unittest.TestCase): + def test_sieve(self): + """ + Test that the sieve correctly generates a list of primes up until 100. + """ + primes = findPrimes(100) + self.assertEqual(primes, [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]) + +if __name__ == "__main__": + sys.argv.append('-v') + unittest.main() diff --git a/school/a-level/Y12 2022-2024/Homework/15 - Logic Gates/Worksheet Program.py b/school/a-level/Y12 2022-2024/Homework/15 - Logic Gates/Worksheet Program.py new file mode 100644 index 0000000..c1fb938 --- /dev/null +++ b/school/a-level/Y12 2022-2024/Homework/15 - Logic Gates/Worksheet Program.py @@ -0,0 +1,16 @@ +def intInput(name): + while True: + try: + number = int(input(f'Please enter an integer for {name}: ')) + return number + except ValueError: + print('Please enter a valid integer.') + +A = intInput('A') +B = intInput('B') +C = intInput('C') + +if (A < B) or (B < C): + A = B + +print(A) diff --git a/school/a-level/Y12 2022-2024/Homework/18 - Code and test/Diagonal Difference OOP.py b/school/a-level/Y12 2022-2024/Homework/18 - Code and test/Diagonal Difference OOP.py new file mode 100644 index 0000000..28611ca --- /dev/null +++ b/school/a-level/Y12 2022-2024/Homework/18 - Code and test/Diagonal Difference OOP.py @@ -0,0 +1,190 @@ +from __future__ import annotations +from random import uniform +from typing import List, Iterable, Callable, Union +from functools import reduce +from operator import iconcat + +class OperationError(Exception): + pass + +class MatrixRow: + def __init__(self, length: int): + self.__values: List[float] = [0 for _ in range(length)] + self.__length = length + + def __getitem__(self, column: int): + """Index the row.""" + if column <= 0 or column > self.__length: + raise IndexError("Out of bounds") + + return self.__values[column - 1] + + def __setitem__(self, column: int, newValue: float): + """Update a value in the row at a given column.""" + if column <= 0 or column > self.__length: + raise IndexError("Out of bounds") + + self.__values[column - 1] = newValue + + def __iter__(self) -> Iterable: + processedValues = [] + + for value in self.__values: + if type(value) == float and value.is_integer(): + processedValues.append(int(value)) + else: + processedValues.append(value) + + return iter(processedValues) + + +class SquareMatrix: + def __init__(self, n: int): + self.__rows: List[MatrixRow] = [MatrixRow(n) for _ in range(n)] + self.__n = n + self.__rowFormatting = "{:^10}| " * n + self.__divider = "-" * (n * 12) + + @staticmethod + def From(rows: List[List[float]]) -> SquareMatrix: + n = len(rows) + + if len(set([len(row) for row in rows])) != 1 or len(rows[0]) != n: + raise ValueError("Rows do not form a valid square matrix.") + + matrix = SquareMatrix(n) + + for i in range(n): + for j in range(n): + matrix[i + 1][j + 1] = rows[i][j] + + return matrix + + def size(self) -> int: + """Returns the size of the square matrix.""" + return self.__n + + def populate(self, minimum: float, maximum: float) -> SquareMatrix: + """Populates the matrix with random values.""" + if minimum > maximum: + raise ValueError('Minimum value must be less than maximum value!') + + for i in range(1, self.__n + 1): + for j in range(1, self.__n + 1): + self[i][j] = uniform(minimum, maximum) + + return self + + def sumCorners(self) -> float: + """Computes the sum of the corners of the matrix.""" + return self[1][1] + self[1][self.__n] + self[self.__n][1] + self[self.__n][self.__n] + + def values(self) -> float: + """Return a list of all of the values in a matrix.""" + return reduce(iconcat, self.__rows, []) + + def averageValue(self) -> float: + """Computes the avaerage value in the matrix.""" + return sum(self.values()) / (self.__n ** 2) + + def diagonalSum(self, left: bool = True) -> float: + """Computes a diagonal sum of the matrix.""" + sum = 0 + + for i, row in enumerate(self.__rows): + if left: + sum += row[i + 1] + else: + sum += row[self.__n - i] + + return sum + + def diagonalDifference(self) -> float: + """Computes the diagonal difference of the matrix.""" + left = self.diagonalSum() + right = self.diagonalSum(False) + + return abs(right - left) + + def transpose(self) -> SquareMatrix: + """Transpose the matrix.""" + transposed = list(zip(*self.__rows)) + + for i in range(self.__n): + for j in range(self.__n): + self[i + 1][j + 1] = transposed[i][j] + + return self + + def __str__(self) -> str: + """Represents the matrix in a string.""" + out = self.__divider + + for row in self.__rows: + out += f"\n|{self.__rowFormatting.format(*row)}\n{self.__divider}" + + return out + + def __getitem__(self, row: int): + """Allows indexing of the matrix""" + if row - 1 > self.__n: + raise IndexError("Out of bounds") + + return self.__rows[row - 1] + + def __applyToMatrices(self, matrix: SquareMatrix, method: Callable[[float, float], float]) -> SquareMatrix: + """Returns a new matrix containing the results of a method applied to the corresponding values of this matrix, and another one.""" + if matrix.size() != self.__n: + raise OperationError("Matrix sizes are incompatible") + + newMatrix = SquareMatrix(self.__n) + + for i in range(1, self.__n + 1): + for j in range(1, self.__n + 1): + newMatrix[i][j] = method(self[i][j], matrix[i][j]) + + return newMatrix + + def __applyToSelf(self, method: Callable[[float], float]) -> SquareMatrix: + """Returns a new matrix containing the results of a method applies to the value of this matrix.""" + newMatrix = SquareMatrix(self.__n) + + for i in range(1, self.__n + 1): + for j in range(1, self.__n + 1): + newMatrix[i][j] = method(self[i][j]) + + return newMatrix + + def __add__(self, value: Union[SquareMatrix, float]) -> SquareMatrix: + """Add two matrices.""" + if isinstance(value, SquareMatrix): + return self.__applyToMatrices(value, lambda x, y: x + y) + else: + return self.__applyToSelf(lambda x: x + value) + + def __sub__(self, value: Union[SquareMatrix, float]) -> SquareMatrix: + """Subtract two matrices.""" + if isinstance(value, SquareMatrix): + return self.__applyToMatrices(value, lambda x, y: x - y) + else: + return self.__applyToSelf(lambda x: x - value) + + def __mul__(self, scalar: float) -> SquareMatrix: + """Multiply the matrix by a scalar.""" + return self.__applyToSelf(lambda x: x * scalar) + + def __floordiv__(self, scalar: float) -> SquareMatrix: + """Floor divide the matrix by a scalar.""" + return self.__applyToSelf(lambda x: x // scalar) + + def __mod__(self, scalar: float) -> SquareMatrix: + """Modulo the matrix by a scalar.""" + return self.__applyToSelf(lambda x: x % scalar) + + def __pow__(self, scalar: float) -> SquareMatrix: + """Power the matrix by a scalar.""" + return self.__applyToSelf(lambda x: x ** scalar) + +a = SquareMatrix.From([[12.4,3,15],[4,7,8],[5,6,2]]) + +print(a) diff --git a/school/a-level/Y12 2022-2024/Homework/18 - Code and test/Diagonal Difference.py b/school/a-level/Y12 2022-2024/Homework/18 - Code and test/Diagonal Difference.py new file mode 100644 index 0000000..dce65f4 --- /dev/null +++ b/school/a-level/Y12 2022-2024/Homework/18 - Code and test/Diagonal Difference.py @@ -0,0 +1,79 @@ +from typing import List, Callable +from random import randint +from functools import reduce +from operator import iconcat + +def getInteger(prompt: str, err: str, validation: Callable[[int], bool] = None) -> int: + """Fetch an integer from the user and validate it if necessary.""" + while True: + try: + value = int(input(prompt)) + + if validation and validation(value): + raise ValueError + + return value + except ValueError: + print(err) + +def generateMatrix(n: int, min: int, max: int) -> List[List[int]]: + """Generates an nxn square matrix and populates it with random integer values between two bounds.""" + if min > max: + raise ValueError('Minimum value must be less than maximum value!') + + return [[randint(min, max) for _ in range(n)] for _ in range(n)] + +def printMatrix(matrix: List[List[int]]): + n = len(matrix) + rowFormatting = "{:^7}| " * n + divider = '-' * (n * 9 - 1) + + print(divider) + + for row in matrix: + print(rowFormatting.format(*row)) + print(divider) + +def diagonalSum(matrix: List[List[int]], left: bool = True) -> int: + """Computes the diagonal sum of an nxn square matrix.""" + sum = 0 + n = len(matrix) + + for i, row in enumerate(matrix): + if left: + sum += row[i] + else: + sum += row[n - i - 1] + + return sum + +def diagonalDifference(matrix: List[List[int]]) -> int: + """Computes the diagonal difference of an nxn square matrix.""" + left = diagonalSum(matrix) + right = diagonalSum(matrix, False) + + return abs(right - left) + +def sumOfCorners(matrix: List[List[int]]) -> int: + """Computes the sum of the corners of an nxn square matrix.""" + n = len(matrix) + + return matrix[0][0] + matrix[0][n - 1] + matrix[n - 1][0] + matrix[n - 1][n - 1] + +def averageValue(matrix: List[List[int]]) -> int: + """Computes the average value in an nxn square matrix.""" + values = reduce(iconcat, matrix, []) + + return sum(values) / (len(matrix) ** 2) + +n = getInteger('Please enter the dimension of the square matrix: ', 'Please enter a natural number greater than 1.', lambda x: x <= 1) +matrix = generateMatrix(n, 1, 100) +# matrix = [[12,3,15],[4,7,8],[5,6,2]] +difference = diagonalDifference(matrix) +corners = sumOfCorners(matrix) +average = averageValue(matrix) + +printMatrix(matrix) +print(f"""Diagonal difference: {difference} +Sum of the corners: {corners} +Average value: {average}""") diff --git a/school/a-level/Y12 2022-2024/Homework/18 - Code and test/golfed.py b/school/a-level/Y12 2022-2024/Homework/18 - Code and test/golfed.py new file mode 100644 index 0000000..3ac2ede --- /dev/null +++ b/school/a-level/Y12 2022-2024/Homework/18 - Code and test/golfed.py @@ -0,0 +1,34 @@ +from random import randint as r +from functools import reduce +from operator import iconcat +a,p=range,print + +def q(p,e,v): + while True: + try: + value = int(input(p)) + if v and v(value):raise ValueError + return value + except ValueError:p(e) + +def g(n,a,b): + if a > b:raise ValueError('Minimum value must be less than maximum value!');return[[r(a,b)for _ in a(n)]for _ in a(n)] + +def o(m): + n,r,d=len(m),"{:^7}| "*n,'-'*(n*9-1);p(d);[p(f'{r.format(*x)}\n{d}')for x in m] + +def s(m,l=True): + s,n=0,len(m);[(s:=s+x[i])if l else(s:=s+x[n-i-1])for i,x in enumerate(m)];return s + +def d(m): + l,x=s(m),s(m, False) + + return abs(x-l) + +def c(m): + n=len(m)-1;return m[0][0]+m[0][n]+m[n][0]+m[n][n] + +a,n=lambda m:sum(reduce(iconcat,m,[]))/(len(m)**2),q('Please enter the dimension of the square matrix: ','Please enter a natural number greater than 1.',lambda x:x<=1);m=g(n,1,100);z,x,k=d(m),c(m),a(m);o(m) +p(f"""Diagonal difference: {z} +Sum of the corners: {x} +Average value: {k}""") diff --git a/school/a-level/Y12 2022-2024/Video Playlist.py b/school/a-level/Y12 2022-2024/Video Playlist.py new file mode 100644 index 0000000..90bb770 --- /dev/null +++ b/school/a-level/Y12 2022-2024/Video Playlist.py @@ -0,0 +1,215 @@ +# note: On Windows, pip install windows-curses +from __future__ import annotations +from urllib.request import urlopen +from json import loads as loadJson +from webbrowser import open_new_tab as browserOpen +from typing import List +from re import search as searchRegex +from pickle import load as pickleLoad, dump as pickleDump +from os.path import join as pathJoin, exists as pathExists +from sys import path as sysPath +import curses + +class InvalidID(Exception): pass + +class Playlist: + def __init__(self, nickname: str): + self.__nickname = nickname + self.__videos: List[Video] = [] + self.__file = Playlist.getPath(nickname) + + if pathExists(self.__file): + with open(self.__file, "rb") as f: + self.__videos = pickleLoad(f) + + @staticmethod + def getPath(nickname: str) -> str: + return pathJoin(sysPath[0], f"{nickname}.playlist") + + def getName(self) -> str: + return self.__nickname + + def addVideo(self, video: Video): + self.__videos.append(video) + return self.__save() + + def __save(self): + with open(self.__file, "wb") as f: + pickleDump(self.__videos, f) + + return self + + def __getitem__(self, index: int): + if index > len(self.__videos) - 1: + raise IndexError("Out of bounds") + + return self.__videos[index] + + def __delitem__(self, index: int): + if index > len(self.__videos) - 1: + raise IndexError("Out of bounds") + + del self.__videos[index] + self.__save() + + def __len__(self): + return len(self.__videos) + +class Video: + def __init__(self, id: str): + self.__id = id + self.__url = f"https://youtu.be/{self.__id}" + + try: + with urlopen(f"https://www.youtube.com/oembed?url=https://youtu.be/{self.__id}&format=json") as response: + data = response.read() + + data = loadJson(data) + self.__title = data["title"] + self.__author = data["author_name"] + except: + raise InvalidID(f"{id} is not a valid ID!") + + def __str__(self): + return f"{self.__author} - {self.__title}" + + def open(self): + browserOpen(self.__url) + +# Initialise curses +screen = curses.initscr() +screen.keypad(True) +curses.cbreak() +curses.noecho() + +# Initialise colours +curses.start_color() +curses.init_pair(1, curses.COLOR_BLACK, curses.COLOR_WHITE) +curses.init_pair(2, curses.COLOR_WHITE, curses.COLOR_BLACK) +curses.init_pair(3, curses.COLOR_RED, curses.COLOR_BLACK) + +black, white, red = curses.color_pair(1), curses.color_pair(2), curses.color_pair(3) + +def selectMenu(screen, options: List[str]): + selectedIndex = 0 + optionCount = len(options) + + while True: + screen.clear() + screen.addstr("Pick an option:\n\n", curses.A_BOLD) + + for i in range(optionCount): + screen.addstr(f"{i + 1}. ") + screen.addstr(f"{options[i]}\n", black if i == selectedIndex else white) + + c = screen.getch() + + if c == curses.KEY_UP or c == curses.KEY_LEFT: + selectedIndex -= 1 - optionCount + selectedIndex %= optionCount + + elif c == curses.KEY_DOWN or c == curses.KEY_RIGHT: + selectedIndex += 1 + selectedIndex %= optionCount + + elif c == curses.KEY_ENTER or chr(c) in '\n\r': + return selectedIndex + 1 + +def addVideo(screen, playlist: Playlist): + hasErrored = False + + while True: + screen.clear() + screen.addstr(0, 0, "Please enter a YouTube URL/ID:", curses.A_BOLD) + + # Display the error message if necessary + if hasErrored: + screen.addstr(3, 0, "Please make sure you have entered a valid URL/ID.", red | curses.A_BOLD) + + # Fetch the inputted data + curses.echo() + videoId = screen.getstr(1, 0, 50).decode("utf-8") + curses.noecho() + + # Attempt to extract a video ID + parsed = searchRegex(r"(?:youtu\.be\/|youtube\.com(?:\/embed\/|\/v\/|\/watch\?v=|\/user\/\S+|\/ytscreeningroom\?v=))([\w\-]{10,12})\b", videoId) + + if parsed: + videoId = parsed.group(1) + + # Attempt to add the video to the playlist + try: + video = Video(str(videoId)) + playlist.addVideo(video) + + break + except InvalidID: + hasErrored = True + +def viewPlaylist(screen, playlist: Playlist): + selectedIndex = 0 + selectedPlay = True + playlistLength = len(playlist) + + while True: + screen.clear() + screen.addstr(f"{playlist.getName()} playlist\n", curses.A_BOLD) + screen.addstr("Press the backspace key to exit this menu.\n\n") + + if playlistLength == 0: + screen.addstr("There is nothing here!\n") + c = screen.getch() + else: + for i in range(playlistLength): + screen.addstr(f"{i + 1}. {playlist[i]} ") + screen.addstr("[PLAY]", black if selectedPlay and selectedIndex == i else white) + screen.addstr(" ") + screen.addstr("[DELETE]\n", black if not selectedPlay and selectedIndex == i else white) + + c = screen.getch() + + if c == curses.KEY_UP: + selectedIndex -= 1 - playlistLength + selectedIndex %= playlistLength + + elif c == curses.KEY_DOWN: + selectedIndex += 1 + selectedIndex %= playlistLength + + elif c == curses.KEY_LEFT: + selectedPlay = True + + elif c == curses.KEY_RIGHT: + selectedPlay = False + + elif c == curses.KEY_ENTER or chr(c) in '\n\r': + if selectedPlay: + playlist[selectedIndex].open() + else: + del playlist[selectedIndex] + playlistLength -= 1 + selectedIndex = 0 if selectedIndex == 0 else selectedIndex - 1 + + if c == 8 or c == 127 or c == curses.KEY_BACKSPACE: + break + +# todo: add custom playlist names + +if __name__ == "__main__": + playlist = Playlist("main") + + while True: + choice = selectMenu(screen, ["Add a video to the playlist", "View the playlist", "Exit"]) + + if choice == 1: + addVideo(screen, playlist) + elif choice == 2: + viewPlaylist(screen, playlist) + elif choice == 3: + break + + # Exit curses + curses.nocbreak() + screen.keypad(False) + curses.echo() + curses.endwin() \ No newline at end of file diff --git a/school/a-level/Y12 2022-2024/curry.py b/school/a-level/Y12 2022-2024/curry.py new file mode 100644 index 0000000..bd93fc4 --- /dev/null +++ b/school/a-level/Y12 2022-2024/curry.py @@ -0,0 +1,25 @@ +import functools +import inspect +from copy import copy +from typing import Callable + +def curry(function: Callable) -> Callable: + # call functools.partial recursively in order to curry a function + def inner(*args, **kwargs): + partial = functools.partial(function, *args, **kwargs) + signature = inspect.signature(partial.func) + + try: + signature.bind(*partial.args, **partial.keywords) + except TypeError: + return curry(copy(partial)) # there must be more arguments to curry + else: + return partial() + + return inner + +def add(a, b): + return a + b + +x = curry(add)(2) +print(x) \ No newline at end of file diff --git a/school/a-level/Y12 2022-2024/curses wrapper maybe.py b/school/a-level/Y12 2022-2024/curses wrapper maybe.py new file mode 100644 index 0000000..c9d146a --- /dev/null +++ b/school/a-level/Y12 2022-2024/curses wrapper maybe.py @@ -0,0 +1,50 @@ +import curses +from typing import List, Tuple, Callable, Any + +class Application: + def __init__(self): + # Initialise curses + self.__curses = curses.initscr() + self.__curses.keypad(True) + + curses.start_color() # todo: check for colour support + curses.cbreak() + curses.noecho() + + # Default colours + curses.init_pair(1, curses.COLOR_WHITE, curses.COLOR_BLACK) # default + curses.init_pair(2, curses.COLOR_BLACK, curses.COLOR_WHITE) # selected + + def selectMenu(self, options: List[Tuple[str, Callable[[], Any]]]): + selectedIndex = 0 + optionCount = len(options) + screen = self.__curses + + while True: + screen.clear() + screen.addstr("Pick an option:\n\n", curses.A_BOLD) + + for i in range(optionCount): + colour = curses.color_pair(2) if i == selectedIndex else curses.color_pair(1) + screen.addstr(f"{i + 1}. ") + screen.addstr(f"{options[i][0]}\n", colour) + + c = screen.getch() + + if c in [curses.KEY_UP, curses.KEY_LEFT]: + selectedIndex = (selectedIndex + optionCount - 1) % optionCount + elif c in [curses.KEY_DOWN, curses.KEY_RIGHT]: + selectedIndex = (selectedIndex + 1) % optionCount + elif c == curses.KEY_ENTER or chr(c) in '\n\r': + break + + options[selectedIndex][1]() + + def quit(self): + curses.nocbreak() + self.__curses.keypad(False) + curses.echo() + curses.endwin() + +app = Application() +app.selectMenu([("yes", lambda: (app.quit(),print("i dont think so"))), ("no", lambda: (app.quit(), print("no need to be a cynic")))]) \ No newline at end of file diff --git a/school/a-level/Y12 2022-2024/golfed full adder.py b/school/a-level/Y12 2022-2024/golfed full adder.py new file mode 100644 index 0000000..fc99204 --- /dev/null +++ b/school/a-level/Y12 2022-2024/golfed full adder.py @@ -0,0 +1,3 @@ +exec(bytes('ⱩⱲⱺⱬⱧ㵡湩ⱴ慲杮ⱥ楢Ɱ敬Ɱ慬扭慤砠洬戬⠺㩹氽獩⡴慭⡰慬扭慤琠椺琨Ⱙ∨∰晩砨㴾⤰汥敳ㄢ⤢稫砨洦嬩㨲⥝Ⱙ祛椮獮牥⡴ⰰ⤰潦⁲ 湩爠ㄨ〰椩⁦⡬⥹戼ⱝ⥹せ孝㨺ㄭⱝ慬扭慤砠礬⠺㩢洽硡氨稨砨嬩㨲⥝氬稨礨嬩㨲⥝⬩ⰱ㩭椽∨∱截㈬Ⱙ㩰朽砨洬戬Ⱙ㩱朽礨洬戬Ⱙ㩷〽漬㴺⡛幷愨扞Ⱙ㩷⠽♡⥢⡼♷⠨慾戦簩愨縦⥢⤩嬩崰潦⡲ⱡ⥢湩稠灩瀨焬崩漬愮灰湥⡤⥷晩砨〾愩摮礨〾攩獬⡥Ⱙ㩯漽㩛ⴺ崱猬㴺‰晩漨せ㵝〽攩獬ⵥ㈨⨪氨漨⴩⤱Ⱙ㩯漽ㅛ㨺孝㨺ㄭⱝ獛㴺⭳㈨⨪⁩晩漨楛㵝ㄽ攩獬⁥⤰潦⡲⥩湩爠氨漨⤩孝ㄭ⥝ㅛ崰','u16')[2:]) + +print(a(5,-6)) diff --git a/school/a-level/Y12 2022-2024/main.playlist b/school/a-level/Y12 2022-2024/main.playlist new file mode 100644 index 0000000000000000000000000000000000000000..0ab88f53ed170a84508d207d0f5e808e577555ae GIT binary patch literal 327 zcmZvWJxc>Y5Qdegghc%X76UfgyHq$_~g%G;nIJ{Ho4Qb=X zQ`e+!3f6EuQr<7zWs=ksd>CbzY`_N{?6o(@@%Wxr@Hk1q6O{5DLBgvn5$2XkaJiK} zR~!$!FB!Zd%dz)XC=QwGt@YGi9Hx`A^y7SWA+sk|{eL_*fI+;TsTv+2IE0y8B8)?o jdrcMGk}-18)QwVZQF;V}OEeDVWTC8EL00>n1djdyGkkUF literal 0 HcmV?d00001 diff --git a/school/a-level/Y12 2022-2024/q13 sol.py b/school/a-level/Y12 2022-2024/q13 sol.py new file mode 100644 index 0000000..faabd7e --- /dev/null +++ b/school/a-level/Y12 2022-2024/q13 sol.py @@ -0,0 +1,10 @@ +from random import choice + +def randomDigit(dateOfBirth): + return choice("".join(dateOfBirth.split("/"))) + +def getUsername(firstName, lastName, dateOfBirth): + day, month, year = dateOfBirth.split("/") + return f"{firstName[0:3]}{randomDigit(dateOfBirth)}{randomDigit(dateOfBirth)}{lastName[len(lastName)-3:len(lastName)]}{day}{month}{year[len(year)-2:len(year)]}" + +print(getUsername("John", "Smith", "19/03/1989")) \ No newline at end of file diff --git a/school/a-level/Y13 2021-2023/Advanced Data Structures/Binary Search Tree + Traversal.py b/school/a-level/Y13 2021-2023/Advanced Data Structures/Binary Search Tree + Traversal.py new file mode 100644 index 0000000..3330870 --- /dev/null +++ b/school/a-level/Y13 2021-2023/Advanced Data Structures/Binary Search Tree + Traversal.py @@ -0,0 +1,215 @@ +from __future__ import annotations +from dataclasses import dataclass +from typing import Generic, TypeVar, Tuple, List + +T = TypeVar("T") + +@dataclass +class Node(Generic[T]): + data: T + left: Node[T] = None + right: Node[T] = None + +class BST(Generic[T]): + """Full implementation of a Binary Search Tree""" + + def __init__(self): + self.__root: Node[T] = None + + def findMinimum(self) -> Node[T]: + """Find the minimum node in the tree.""" + current = self.__root + + # Keep traversing left when possible - smaller numbers will always be on the left! + while current.left: + current = current.left + + return current + + def findMaximum(self) -> Node[T]: + """Find the maximum node in the tree.""" + current = self.__root + + # Keep traversing right when possible - larger numbers will always be on the right! + while current.right: + current = current.right + + return current + + def insert(self, data: T) -> BST[T]: + """Inserts a new piece of data into the tree.""" + node = Node(data) + + if self.__root == None: + # Ensure there is a root node in the first place! + self.__root = node + return self + else: + current = self.__root + parent = None + + while True: + parent = current + + # If the currently selected node has a greater value than the newly created node, move left to a smaller valued node + if node.data < current.data: + current = current.left + + # If there is no node to the left, insert the newly made node! + if current == None: + parent.left = node + return self + # Do the same thing but to the right if the selected node has a lesser value than the newly created node. + else: + current = current.right + + if current == None: + parent.right = node + return self + + def getNodeWithParent(self, data: T) -> Tuple[Node[T], Node[T]]: + """Find a node containing the data point, and return it alongside its parent. Returns (parent, child)""" + parent = None + current = self.__root + + # If there is no root node, there is also no parent node + if current == None: + return (None, None) + + while True: + # If the node containing the data has been found, return the (parent, child) pair! + if current.data == data: + return (parent, current) + # If the selected node has a greater value than the one being searched for, traverse left! + elif current.data > data: + parent = current + current = current.left + # Otherwise, traverse right! + else: + parent = current + current = current.right + + def remove(self, data: T) -> BST[T]: + parent, node = self.getNodeWithParent(data) + + # If there is no node with that data, just do nothing + if parent == None and node == None: + return self + + # Determine the amount of children that the node has + childrenCount = 0 + + if node.left and node.right: + childrenCount = 2 + elif (node.left == None) and (node.rightChild == None): + childrenCount = 0 + else: + childrenCount = 1 + + # Remove the node from the tree + if childrenCount == 0: + if parent: + if parent.right == node: + parent.right = None + else: + parent.left = None + else: + self.__root = None + elif childrenCount == 1: + nextNode = None + + if node.left: + nextNode = node.left + else: + nextNode = node.right + + if parent: + if parent.left == node: + parent.left = nextNode + else: + parent.right = nextNode + else: + self.__root = nextNode + else: + leftmostParent = node + leftmostNode = node.right + + while leftmostNode.left: + leftmostParent = leftmostNode + leftmostNode = leftmostNode.left + + node.data = leftmostNode.data + + if leftmostParent.left == leftmostNode: + leftmostParent.left = leftmostNode.rightChild + else: + leftmostNode.rightChild = leftmostNode.rightChild + + def search(self, data: T) -> T: + """Search through the binary tree. Returns the data value if found, otherwise returns None.""" + current = self.__root + + while True: + # If the final node has been reached, return None + if current == None: + return None + # If the node has been found, return the data! + elif current.data == data: + return data + # If the currently selected node has a higher value than the data being searched for, traverse left + elif current.data > data: + current = current.left + # Otherwise, traverse right + else: + current = current.right + + def rootNode(self) -> Node[T]: + return self.__root + + @staticmethod + def inOrder(root: Node[T] | BST[T]) -> List[T]: + if isinstance(root, BST): + root = root.rootNode() + + out = [] + + if root: + out = BST.inOrder(root.left) + out.append(root.data) + out = out + BST.inOrder(root.right) + + return out + + @staticmethod + def preOrder(root: Node[T] | BST[T]) -> List[T]: + if isinstance(root, BST): + root = root.rootNode() + + out = [] + + if root: + out.append(root.data) + out = out + BST.preOrder(root.left) + out = out + BST.preOrder(root.right) + + return out + + @staticmethod + def postOrder(root: Node[T] | BST[T]) -> List[T]: + if isinstance(root, BST): + root = root.rootNode() + + out =[] + + if root: + out = BST.postOrder(root.left) + out = out + BST.postOrder(root.right) + out.append(root.data) + + return out + +tree = BST[int]() + +tree.insert(12).insert(14).insert(8).insert(2).insert(8).insert(7).insert(23).insert(19).insert(6).insert(22) + +print(tree.postOrder(tree.rootNode())) \ No newline at end of file diff --git a/school/a-level/Y13 2021-2023/Advanced Data Structures/Binary Search Tree.py b/school/a-level/Y13 2021-2023/Advanced Data Structures/Binary Search Tree.py new file mode 100644 index 0000000..3f8fc2b --- /dev/null +++ b/school/a-level/Y13 2021-2023/Advanced Data Structures/Binary Search Tree.py @@ -0,0 +1,171 @@ +from __future__ import annotations +from dataclasses import dataclass +from typing import Generic, TypeVar, Tuple + +T = TypeVar("T") + +@dataclass +class Node(Generic[T]): + data: T + leftChild: Node[T] = None + rightChild: Node[T] = None + +class BinarySearchTree(Generic[T]): + """Full implementation of a Binary Search Tree""" + + def __init__(self): + self.__rootNode: Node[T] = None + + def findMinimum(self) -> Node[T]: + """Find the minimum node in the tree.""" + current = self.__rootNode + + # Keep traversing left when possible - smaller numbers will always be on the left! + while current.leftChild: + current = current.leftChild + + return current + + def findMaximum(self) -> Node[T]: + """Find the maximum node in the tree.""" + current = self.__rootNode + + # Keep traversing right when possible - larger numbers will always be on the right! + while current.rightChild: + current = current.rightChild + + return current + + def insert(self, data: T) -> BinarySearchTree[T]: + """Inserts a new piece of data into the tree.""" + node = Node(data) + + if self.__rootNode == None: + # Ensure there is a root node in the first place! + self.__rootNode = node + return self + else: + current = self.__rootNode + parent = None + + while True: + parent = current + + # If the currently selected node has a greater value than the newly created node, move left to a smaller valued node + if node.data < current.data: + current = current.leftChild + + # If there is no node to the left, insert the newly made node! + if current == None: + parent.leftChild = node + return self + # Do the same thing but to the right if the selected node has a lesser value than the newly created node. + else: + current = current.rightChild + + if current == None: + parent.rightChild = node + return self + + def getNodeWithParent(self, data: T) -> Tuple[Node[T], Node[T]]: + """Find a node containing the data point, and return it alongside its parent. Returns (parent, child)""" + parent = None + current = self.__rootNode + + # If there is no root node, there is also no parent node + if current == None: + return (None, None) + + while True: + # If the node containing the data has been found, return the (parent, child) pair! + if current.data == data: + return (parent, current) + # If the selected node has a greater value than the one being searched for, traverse left! + elif current.data > data: + parent = current + current = current.leftChild + # Otherwise, traverse right! + else: + parent = current + current = current.rightChild + + def remove(self, data: T) -> BinarySearchTree[T]: + parent, node = self.getNodeWithParent(data) + + # If there is no node with that data, just do nothing + if parent == None and node == None: + return self + + # Determine the amount of children that the node has + childrenCount = 0 + + if node.leftChild and node.rightChild: + childrenCount = 2 + elif (node.leftChild == None) and (node.rightChild == None): + childrenCount = 0 + else: + childrenCount = 1 + + # Remove the node from the tree + if childrenCount == 0: + if parent: + if parent.rightChild == node: + parent.rightChild = None + else: + parent.leftChild = None + else: + self.__rootNode = None + elif childrenCount == 1: + nextNode = None + + if node.leftChild: + nextNode = node.leftChild + else: + nextNode = node.rightChild + + if parent: + if parent.leftChild == node: + parent.leftChild = nextNode + else: + parent.rightChild = nextNode + else: + self.__rootNode = nextNode + else: + leftmostParent = node + leftmostNode = node.rightChild + + while leftmostNode.leftChild: + leftmostParent = leftmostNode + leftmostNode = leftmostNode.leftChild + + node.data = leftmostNode.data + + if leftmostParent.leftChild == leftmostNode: + leftmostParent.leftChild = leftmostNode.rightChild + else: + leftmostNode.rightChild = leftmostNode.rightChild + + def search(self, data: T) -> T: + """Search through the binary tree. Returns the data value if found, otherwise returns None.""" + current = self.__rootNode + + while True: + # If the final node has been reached, return None + if current == None: + return None + # If the node has been found, return the data! + elif current.data == data: + return data + # If the currently selected node has a higher value than the data being searched for, traverse left + elif current.data > data: + current = current.leftChild + # Otherwise, traverse right + else: + current = current.rightChild + +tree = BinarySearchTree[int]() + +for i in range(10): + tree.insert(i) + found = tree.search(i) + print(found) \ No newline at end of file diff --git a/school/a-level/Y13 2021-2023/Advanced Data Structures/Huffman Coding.py b/school/a-level/Y13 2021-2023/Advanced Data Structures/Huffman Coding.py new file mode 100644 index 0000000..4d72aeb --- /dev/null +++ b/school/a-level/Y13 2021-2023/Advanced Data Structures/Huffman Coding.py @@ -0,0 +1,39 @@ +from __future__ import annotations +from dataclasses import dataclass +from queue import Queue + +@dataclass +class Node: + character: str = None + frequency: int = None + left: Node = None + right: Node = None + +def buildTree(message: str): + frequencies = { k: v for k, v in sorted([(i, message.count(i)) for i in set(message)], key = lambda x: x[1], reverse = True )} + frequencies = list(frequencies.items()) + + subtrees = Queue() + + for i in range(len(frequencies)): + subtree = Node(None, sum(map(lambda x: x[1], frequencies[i:]))) + subtree.right = Node(frequencies[i][0], frequencies[i][1]) + subtrees.put(subtree) + + tree = subtrees.get() + current = tree + + for _ in range(subtrees.qsize()): + subtree = subtrees.get() + current.left = subtree + current = current.left + + return tree + +def encode(message: str): + tree = buildTree(message) + print(tree) + frequencies = { i: message.count(i) for i in set(message) } + frequencies = { k: v for k, v in sorted(frequencies.items(), key = lambda x: x[1] )} + +print(encode("Hello World")) diff --git a/school/a-level/Y13 2021-2023/Advanced Data Structures/Linked List.py b/school/a-level/Y13 2021-2023/Advanced Data Structures/Linked List.py index bf5a84f..b0a8db5 100644 --- a/school/a-level/Y13 2021-2023/Advanced Data Structures/Linked List.py +++ b/school/a-level/Y13 2021-2023/Advanced Data Structures/Linked List.py @@ -192,7 +192,7 @@ class LinkedList(Generic[T]): return out + "]" -names = LinkedList[str](["Harold", "Janet"]) +names = LinkedList[str](["John Doe", "Jane Doe"]) names.extend(["Alfred", "Sophie"]).insert(1, "John Snow") names.remove("Alfred") names += "Woody" diff --git a/school/a-level/Y13 2021-2023/Advanced Data Structures/golfed huffman.py b/school/a-level/Y13 2021-2023/Advanced Data Structures/golfed huffman.py new file mode 100644 index 0000000..eb0cb91 --- /dev/null +++ b/school/a-level/Y13 2021-2023/Advanced Data Structures/golfed huffman.py @@ -0,0 +1,3 @@ +# node -> (character, frequency, left, right) +import queue,operator;b=lambda m:(f:={i:m.count(i)for i in set(m)},f:={k:v for(k,v)in sorted(f.items(),key=lambda x:x[1],reverse=True)},f:=list(f.items()),s:=queue.Queue(),[s.put([None,sum(map(lambda x:x[1],f[i:])),None,[f[i][0],f[i][1],None,None]])for i in range(len(f))],t:=s.get(),c:=t,[(operator.setitem(c,2,s.get()),c:=c[2])for _ in range(s.qsize())],t)[8] +print(b("Hello World")) diff --git a/school/a-level/Y13 2021-2023/Cash Register Problem.py b/school/a-level/Y13 2021-2023/Cash Register Problem.py index 24e7e1a..e9ed952 100644 --- a/school/a-level/Y13 2021-2023/Cash Register Problem.py +++ b/school/a-level/Y13 2021-2023/Cash Register Problem.py @@ -27,12 +27,13 @@ class CashRegister: for coinType in self.__coins: # Set an initial value for the change - if changeValue - coinType > 0: + if changeValue - coinType >= 0: change[coinType] = 0 # Keep attempting to provide change from the tray until we overpay - while changeValue - coinType > 0: + while changeValue - coinType >= 0: changeValue -= coinType + changeValue = round(changeValue, 2) self.__coins[coinType] -= 1 change[coinType] += 1 @@ -44,4 +45,4 @@ print( register.checkout(5.99, { 10: 1 }) -) \ No newline at end of file +) diff --git a/school/a-level/Y13 2021-2023/LMC/LMC Higher or Lower.txt b/school/a-level/Y13 2021-2023/LMC/LMC Higher or Lower.txt new file mode 100644 index 0000000..739c2d3 --- /dev/null +++ b/school/a-level/Y13 2021-2023/LMC/LMC Higher or Lower.txt @@ -0,0 +1,30 @@ + INP + STA toGuess + +loop INP + STA guess + + LDA toGuess + SUB guess + + BRZ equal + BRP small + BRA big + +small LDA higher + OUT + BRA loop + +big LDA lower + OUT + BRA loop + +equal LDA win + OUT + HLT + +toGuess DAT +guess DAT +higher DAT 1 +lower DAT 0 +win DAT 9 \ No newline at end of file diff --git a/school/a-level/Y13 2021-2023/LMC/LMC Triangular numbers.txt b/school/a-level/Y13 2021-2023/LMC/LMC Triangular numbers.txt new file mode 100644 index 0000000..5654c3c --- /dev/null +++ b/school/a-level/Y13 2021-2023/LMC/LMC Triangular numbers.txt @@ -0,0 +1,22 @@ + INP + STA quant + +loop LDA number + ADD counter + OUT + STA number + + LDA counter + ADD one + STA counter + + LDA quant + SUB counter + + BRP loop + HLT + +quant DAT +counter DAT 1 +number DAT 0 +one DAT 1 \ No newline at end of file diff --git a/school/a-level/Y13 2021-2023/Operating Systems/Operating Systems.md b/school/a-level/Y13 2021-2023/Operating Systems/Operating Systems.md index d4cfa86..dd4f984 100644 --- a/school/a-level/Y13 2021-2023/Operating Systems/Operating Systems.md +++ b/school/a-level/Y13 2021-2023/Operating Systems/Operating Systems.md @@ -1,41 +1,41 @@ -# Operating Systems - -## The Kernel - -The kernel is the central module of an OS. It is the part of the operating system that loads first, and it remains in memory - usually in a protected area. Typically, it is responsible for management of the CPU and memory. - -The kernel connects the system hardware to the application software. The Linux kernel is used in numerous operating systems including Android, Ubuntu, and firmware for devices such as routers. - -## Types of Operating Systems - -### Single User - Single Application - -Only has to deal with one person running one application at a time. For example, a Nokia brick. - -### Single User - Multi-application - -Only has to deal with one person, but must be able to handle running multiple applications concurrently. For example, Android tablets. - -### Multi-user - Multi-tasking - -Must be able to handle multiple users running multiple applications concurrently. For example, Windows as you can stay logged in as many different users who have different states on the computer simultaneously. - -### Real-Time - -Real-Time operating systems must process tasks in a set time which is critical to it's operation. These are not needed in computers, but may be needed in something like a car which has to react incredibly quickly to prevent accidents. - -### Batch-Op - -A batch is a small job repeated many times. For each iteration, a small change is made to the data; for example, printing gas bills/bank statements. They are designed to be left running with little user interactions. - -## Process Manager - -The process manager is a part of the kernel. Jobs can consist of many processes (one-to-many). This is the job of the process scheduler. - -### Process States - -- HOLD -- READY -- RUNNING -- WAIT -- FINISHED/FAIL +# Operating Systems + +## The Kernel + +The kernel is the central module of an OS. It is the part of the operating system that loads first, and it remains in memory - usually in a protected area. Typically, it is responsible for management of the CPU and memory. + +The kernel connects the system hardware to the application software. The Linux kernel is used in numerous operating systems including Android, Ubuntu, and firmware for devices such as routers. + +## Types of Operating Systems + +### Single User - Single Application + +Only has to deal with one person running one application at a time. For example, a Nokia brick. + +### Single User - Multi-application + +Only has to deal with one person, but must be able to handle running multiple applications concurrently. For example, Android tablets. + +### Multi-user - Multi-tasking + +Must be able to handle multiple users running multiple applications concurrently. For example, Windows as you can stay logged in as many different users who have different states on the computer simultaneously. + +### Real-Time + +Real-Time operating systems must process tasks in a set time which is critical to it's operation. These are not needed in computers, but may be needed in something like a car which has to react incredibly quickly to prevent accidents. + +### Batch-Op + +A batch is a small job repeated many times. For each iteration, a small change is made to the data; for example, printing gas bills/bank statements. They are designed to be left running with little user interactions. + +## Process Manager + +The process manager is a part of the kernel. Jobs can consist of many processes (one-to-many). This is the job of the process scheduler. + +### Process States + +- HOLD +- READY +- RUNNING +- WAIT +- FINISHED/FAIL