From f5fec0e46b858b7e2423d97ffa13a4eac9576dfb Mon Sep 17 00:00:00 2001 From: foamyguy Date: Thu, 28 Aug 2025 15:22:28 -0500 Subject: [PATCH 1/2] add Spell Jam project --- Fruit_Jam/Fruit_Jam_Spell_Jam/aws_polly.py | 295 ++ Fruit_Jam/Fruit_Jam_Spell_Jam/code.py | 131 + Fruit_Jam/Fruit_Jam_Spell_Jam/hmac.py | 93 + Fruit_Jam/Fruit_Jam_Spell_Jam/icon.bmp | Bin 0 -> 4986 bytes Fruit_Jam/Fruit_Jam_Spell_Jam/metadata.json | 4 + .../spell_jam_assets/14segment_16.bdf | 2432 +++++++++++++++++ .../spell_jam_assets/14segment_16.bdf.license | 8 + .../spell_jam_assets/background.bmp | Bin 0 -> 77146 bytes .../spell_jam_assets/background.bmp.license | 3 + .../spell_jam_assets/letter_mp3s/A.mp3 | Bin 0 -> 3022 bytes .../spell_jam_assets/letter_mp3s/B.mp3 | Bin 0 -> 2238 bytes .../spell_jam_assets/letter_mp3s/C.mp3 | Bin 0 -> 2865 bytes .../spell_jam_assets/letter_mp3s/D.mp3 | Bin 0 -> 2708 bytes .../spell_jam_assets/letter_mp3s/E.mp3 | Bin 0 -> 2865 bytes .../spell_jam_assets/letter_mp3s/F.mp3 | Bin 0 -> 2865 bytes .../spell_jam_assets/letter_mp3s/G.mp3 | Bin 0 -> 3178 bytes .../spell_jam_assets/letter_mp3s/H.mp3 | Bin 0 -> 3335 bytes .../spell_jam_assets/letter_mp3s/I.mp3 | Bin 0 -> 3178 bytes .../spell_jam_assets/letter_mp3s/J.mp3 | Bin 0 -> 3649 bytes .../spell_jam_assets/letter_mp3s/K.mp3 | Bin 0 -> 2865 bytes .../spell_jam_assets/letter_mp3s/L.mp3 | Bin 0 -> 3178 bytes .../spell_jam_assets/letter_mp3s/M.mp3 | Bin 0 -> 3022 bytes .../spell_jam_assets/letter_mp3s/N.mp3 | Bin 0 -> 3022 bytes .../spell_jam_assets/letter_mp3s/O.mp3 | Bin 0 -> 3022 bytes .../spell_jam_assets/letter_mp3s/P.mp3 | Bin 0 -> 2552 bytes .../spell_jam_assets/letter_mp3s/Q.mp3 | Bin 0 -> 3649 bytes .../spell_jam_assets/letter_mp3s/R.mp3 | Bin 0 -> 3178 bytes .../spell_jam_assets/letter_mp3s/S.mp3 | Bin 0 -> 3178 bytes .../spell_jam_assets/letter_mp3s/T.mp3 | Bin 0 -> 2395 bytes .../spell_jam_assets/letter_mp3s/U.mp3 | Bin 0 -> 3492 bytes .../spell_jam_assets/letter_mp3s/V.mp3 | Bin 0 -> 3022 bytes .../spell_jam_assets/letter_mp3s/W.mp3 | Bin 0 -> 3962 bytes .../spell_jam_assets/letter_mp3s/X.mp3 | Bin 0 -> 3178 bytes .../spell_jam_assets/letter_mp3s/Y.mp3 | Bin 0 -> 3492 bytes .../spell_jam_assets/letter_mp3s/Z.mp3 | Bin 0 -> 3335 bytes 35 files changed, 2966 insertions(+) create mode 100644 Fruit_Jam/Fruit_Jam_Spell_Jam/aws_polly.py create mode 100644 Fruit_Jam/Fruit_Jam_Spell_Jam/code.py create mode 100644 Fruit_Jam/Fruit_Jam_Spell_Jam/hmac.py create mode 100644 Fruit_Jam/Fruit_Jam_Spell_Jam/icon.bmp create mode 100644 Fruit_Jam/Fruit_Jam_Spell_Jam/metadata.json create mode 100644 Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/14segment_16.bdf create mode 100644 Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/14segment_16.bdf.license create mode 100644 Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/background.bmp create mode 100644 Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/background.bmp.license create mode 100644 Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/A.mp3 create mode 100644 Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/B.mp3 create mode 100644 Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/C.mp3 create mode 100644 Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/D.mp3 create mode 100644 Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/E.mp3 create mode 100644 Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/F.mp3 create mode 100644 Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/G.mp3 create mode 100644 Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/H.mp3 create mode 100644 Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/I.mp3 create mode 100644 Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/J.mp3 create mode 100644 Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/K.mp3 create mode 100644 Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/L.mp3 create mode 100644 Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/M.mp3 create mode 100644 Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/N.mp3 create mode 100644 Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/O.mp3 create mode 100644 Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/P.mp3 create mode 100644 Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/Q.mp3 create mode 100644 Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/R.mp3 create mode 100644 Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/S.mp3 create mode 100644 Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/T.mp3 create mode 100644 Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/U.mp3 create mode 100644 Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/V.mp3 create mode 100644 Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/W.mp3 create mode 100644 Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/X.mp3 create mode 100644 Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/Y.mp3 create mode 100644 Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/Z.mp3 diff --git a/Fruit_Jam/Fruit_Jam_Spell_Jam/aws_polly.py b/Fruit_Jam/Fruit_Jam_Spell_Jam/aws_polly.py new file mode 100644 index 000000000..a428713f9 --- /dev/null +++ b/Fruit_Jam/Fruit_Jam_Spell_Jam/aws_polly.py @@ -0,0 +1,295 @@ +# SPDX-FileCopyrightText: 2025 Tim Cocks for Adafruit Industries +# SPDX-License-Identifier: MIT +import hmac +import json + +from adafruit_datetime import datetime +import adafruit_hashlib as hashlib + + +def url_encode(string, safe=""): + """ + Minimal URL encoding function to replace urllib.parse.quote + + Args: + string (str): String to encode + safe (str): Characters that should not be encoded + + Returns: + str: URL encoded string + """ + # Characters that need to be encoded (RFC 3986) + unreserved = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.~" + + # Add safe characters to unreserved set + allowed = unreserved + safe + + encoded = "" + for char in string: + if char in allowed: + encoded += char + else: + # Convert to percent-encoded format + encoded += f"%{ord(char):02X}" + + return encoded + + +def _zero_pad(num, count=2): + padded = str(num) + while len(padded) < count: + padded = "0" + padded + return padded + + +class PollyHTTPClient: + # pylint: disable=no-self-use + def __init__(self, requests_instance, access_key, secret_key, region="us-east-1"): + self._requests = requests_instance + self.access_key = access_key + self.secret_key = secret_key + self.region = region + self.service = "polly" + self.host = f"polly.{region}.amazonaws.com" + self.endpoint = f"https://{self.host}" + + def _sign(self, key, msg): + """Helper function for AWS signature""" + return hmac.new(key, msg.encode("utf-8"), hashlib.sha256).digest() + + def _get_signature_key(self, date_stamp): + """Generate AWS signature key""" + k_date = self._sign(("AWS4" + self.secret_key).encode("utf-8"), date_stamp) + k_region = self._sign(k_date, self.region) + k_service = self._sign(k_region, self.service) + k_signing = self._sign(k_service, "aws4_request") + return k_signing + + def _create_canonical_request(self, method, uri, query_string, headers, payload): + """Create canonical request for AWS Signature V4""" + canonical_uri = url_encode(uri, safe="/") + canonical_querystring = query_string + + # Create canonical headers + canonical_headers = "" + signed_headers = "" + header_names = sorted(headers.keys()) + for name in header_names: + canonical_headers += f"{name.lower()}:{headers[name].strip()}\n" + signed_headers += f"{name.lower()};" + signed_headers = signed_headers[:-1] # Remove trailing semicolon + + # Create payload hash + payload_hash = hashlib.sha256(payload.encode("utf-8")).hexdigest() + + # Create canonical request + canonical_request = (f"{method}\n{canonical_uri}\n{canonical_querystring}\n" + f"{canonical_headers}\n{signed_headers}\n{payload_hash}") + + return canonical_request, signed_headers + + def _create_string_to_sign(self, timestamp, credential_scope, canonical_request): + """Create string to sign for AWS Signature V4""" + algorithm = "AWS4-HMAC-SHA256" + canonical_request_hash = hashlib.sha256( + canonical_request.encode("utf-8") + ).hexdigest() + string_to_sign = ( + f"{algorithm}\n{timestamp}\n{credential_scope}\n{canonical_request_hash}" + ) + return string_to_sign + + def synthesize_speech( # pylint: disable=too-many-locals + self, + text, + voice_id="Joanna", + output_format="mp3", + engine="standard", + text_type="text", + ): + """ + Synthesize speech using Amazon Polly via direct HTTP request + + Args: + text (str): Text to convert to speech + voice_id (str): Voice to use (e.g., 'Joanna', 'Matthew', 'Amy') + output_format (str): Audio format ('mp3', 'ogg_vorbis', 'pcm') + engine (str): Engine type ('standard' or 'neural') + text_type (str): 'text' or 'ssml' + + Returns: + bytes: Audio data if successful, None if failed + """ + + # Prepare request + method = "POST" + uri = "/v1/speech" + + # Create request body + request_body = { + "Text": text, + "OutputFormat": output_format, + "VoiceId": voice_id, + "Engine": engine, + "TextType": text_type, + } + payload = json.dumps(request_body) + + # Get current time + now = datetime.now() + # amzdate = now.strftime('%Y%m%dT%H%M%SZ') + amzdate = (f"{now.year}{_zero_pad(now.month)}{_zero_pad(now.day)}" + f"T{_zero_pad(now.hour)}{_zero_pad(now.minute)}{_zero_pad(now.second)}Z") + # datestamp = now.strftime('%Y%m%d') + datestamp = f"{now.year}{_zero_pad(now.month)}{_zero_pad(now.day)}" + + # Create headers + headers = { + "Content-Type": "application/x-amz-json-1.0", + "Host": self.host, + "X-Amz-Date": amzdate, + "X-Amz-Target": "AWSPollyService.SynthesizeSpeech", + } + + # Create canonical request + canonical_request, signed_headers = self._create_canonical_request( + method, uri, "", headers, payload + ) + + # Create string to sign + credential_scope = f"{datestamp}/{self.region}/{self.service}/aws4_request" + string_to_sign = self._create_string_to_sign( + amzdate, credential_scope, canonical_request + ) + + # Create signature + signing_key = self._get_signature_key(datestamp) + signature = hmac.new( + signing_key, string_to_sign.encode("utf-8"), hashlib.sha256 + ).hexdigest() + + # Add authorization header + authorization_header = ( + f"AWS4-HMAC-SHA256 " + f"Credential={self.access_key}/{credential_scope}, " + f"SignedHeaders={signed_headers}, " + f"Signature={signature}" + ) + headers["Authorization"] = authorization_header + + # Make request + try: + url = f"{self.endpoint}{uri}" + response = self._requests.post(url, headers=headers, data=payload) + + if response.status_code == 200: + return response.content + else: + print(f"Error: HTTP {response.status_code}") + print(f"Response: {response.text}") + return None + + except Exception as e: # pylint: disable=broad-except + print(f"Request failed: {e}") + return None + + +def text_to_speech_polly_http( + requests_instance, + text, + access_key, + secret_key, + output_file="/saves/awspollyoutput.mp3", + voice_id="Joanna", + region="us-east-1", + output_format="mp3", +): + """ + Simple function to convert text to speech using Polly HTTP API + + Args: + text (str): Text to convert + access_key (str): AWS Access Key ID + secret_key (str): AWS Secret Access Key + output_file (str): Output file path + voice_id (str): Polly voice ID + region (str): AWS region + output_format (str): Audio format + + Returns: + bool: True if successful, False otherwise + """ + + # Create Polly client + client = PollyHTTPClient(requests_instance, access_key, secret_key, region) + + # Synthesize speech + audio_data = client.synthesize_speech( + text=text, voice_id=voice_id, output_format=output_format + ) + + if audio_data: + # Save to file + try: + with open(output_file, "wb") as f: + f.write(audio_data) + print(f"Audio saved to: {output_file}") + return True + except Exception as e: # pylint: disable=broad-except + print(f"Failed to save file: {e}") + return False + else: + print("Failed to synthesize speech") + return False + + +def text_to_speech_with_ssml( + requests_instance, + text, + access_key, + secret_key, + speech_rate="medium", + output_file="output.mp3", +): + """ + Example with SSML for speech rate control + """ + # Wrap text in SSML + ssml_text = f'{text}' + + client = PollyHTTPClient(requests_instance, access_key, secret_key) + audio_data = client.synthesize_speech( + text=ssml_text, voice_id="Joanna", text_type="ssml" + ) + + if audio_data: + with open(output_file, "wb") as f: + f.write(audio_data) + print(f"SSML audio saved to: {output_file}") + return True + return False + + +# Example usage +# if __name__ == "__main__": +# # Replace with your actual AWS credentials +# AWS_ACCESS_KEY = os.getenv('AWS_ACCESS_KEY') +# AWS_SECRET_KEY = os.getenv('AWS_SECRET_KEY') +# +# # Basic usage +# success = text_to_speech_polly_http( +# text="Hello from CircuitPython! This is Amazon Polly speaking.", +# access_key=AWS_ACCESS_KEY, +# secret_key=AWS_SECRET_KEY, +# voice_id="Joanna" +# ) + +# SSML example +# if success: +# text_to_speech_with_ssml( +# text="This speech has a custom rate using SSML markup.", +# access_key=AWS_ACCESS_KEY, +# secret_key=AWS_SECRET_KEY, +# speech_rate="slow", +# output_file="ssml_example.mp3" +# ) diff --git a/Fruit_Jam/Fruit_Jam_Spell_Jam/code.py b/Fruit_Jam/Fruit_Jam_Spell_Jam/code.py new file mode 100644 index 000000000..69f629ec4 --- /dev/null +++ b/Fruit_Jam/Fruit_Jam_Spell_Jam/code.py @@ -0,0 +1,131 @@ +# SPDX-FileCopyrightText: 2025 Tim Cocks for Adafruit Industries +# SPDX-License-Identifier: MIT +import os +import sys +import time + +import supervisor +from adafruit_fruitjam import FruitJam +from adafruit_fruitjam.peripherals import request_display_config +import adafruit_connection_manager +import adafruit_requests +from displayio import OnDiskBitmap, TileGrid, Group +from adafruit_bitmap_font import bitmap_font +from adafruit_display_text.bitmap_label import Label + +from aws_polly import text_to_speech_polly_http + +# constants +LETTERS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" + +# local variables +curword = "" +lastword = "" + +# setup display +request_display_config(320, 240) +display = supervisor.runtime.display + +# setup background image +main_group = Group() +background = OnDiskBitmap("spell_jam_assets/background.bmp") +background_tg = TileGrid(background, pixel_shader=background.pixel_shader) +main_group.append(background_tg) + +# setup 14-segment label used to display words +font = bitmap_font.load_font("spell_jam_assets/14segment_16.bdf") +screen_lbl = Label(text="Type a word", font=font, color=0x00FF00) +screen_lbl.anchor_point = (0.5, 0) +screen_lbl.anchored_position = (display.width // 2, 100) +main_group.append(screen_lbl) + +# initialize Fruit Jam built-in hardware +fj = FruitJam() +fj.neopixels.brightness = 0.1 +fj.peripherals.volume = 9 + +# AWS auth requires us to have accurate date/time +now = fj.sync_time() + +# setup adafruit_requests session +# pylint: disable=protected-access +pool = adafruit_connection_manager.get_radio_socketpool(fj.network._wifi.esp) +ssl_context = adafruit_connection_manager.get_radio_ssl_context(fj.network._wifi.esp) +requests = adafruit_requests.Session(pool, ssl_context) + +# read AWS keys from settings.toml +AWS_ACCESS_KEY = os.getenv("AWS_ACCESS_KEY") +AWS_SECRET_KEY = os.getenv("AWS_SECRET_KEY") + + +def fetch_word(word, voice="Joanna"): + """ + Fetch an MP3 saying a word from AWS Polly + :param word: The word to speak + :param voice: The AWS Polly voide ID to use + :return: Boolean, whether the request was successful. + """ + fj.neopixels.fill(0xFFFF00) + success = text_to_speech_polly_http( + requests, + text=word, + access_key=AWS_ACCESS_KEY, + secret_key=AWS_SECRET_KEY, + voice_id=voice, + ) + fj.neopixels.fill(0x00FF00) + return success + + +def say_and_spell_lastword(): + """ + Say the last word, then spell it out one letter at a time, finally say it once more. + """ + fj.play_mp3_file("/saves/awspollyoutput.mp3") + time.sleep(0.2) + for letter in lastword: + fj.play_mp3_file(f"spell_jam_assets/letter_mp3s/{letter.upper()}.mp3") + time.sleep(0.2) + fj.play_mp3_file("/saves/awspollyoutput.mp3") + fj.neopixels.fill(0x000000) + + +display.root_group = main_group +while True: + # check how many bytes are available + available = supervisor.runtime.serial_bytes_available + + # if there are some bytes available + if available: + # read data from the keyboard input + c = sys.stdin.read(available) + # print the data that was read + print(c, end="") + + if c in LETTERS: + curword += c + screen_lbl.text = curword + elif c in {"\x7f", "\x08"}: # backspace + curword = curword[:-1] + screen_lbl.text = curword + elif c == "\n": + if curword: + lastword = curword + fetch_word(lastword) + say_and_spell_lastword() + curword = "" + else: + # repeat last word + say_and_spell_lastword() + elif c.encode("utf-8") == b"\x1b[B": + # down arrow + fj.peripherals.volume = max(1, fj.peripherals.volume - 1) + print(f"Volume: {fj.peripherals.volume}") + elif c.encode("utf-8") == b"\x1b[A": + # up arrow + fj.peripherals.volume = min( + fj.peripherals.safe_volume_limit, fj.peripherals.volume + 1 + ) + print(f"Volume: {fj.peripherals.volume}") + else: + print(f"unused key: {c.encode('utf-8')}") diff --git a/Fruit_Jam/Fruit_Jam_Spell_Jam/hmac.py b/Fruit_Jam/Fruit_Jam_Spell_Jam/hmac.py new file mode 100644 index 000000000..ecb5e4e95 --- /dev/null +++ b/Fruit_Jam/Fruit_Jam_Spell_Jam/hmac.py @@ -0,0 +1,93 @@ +# SPDX-FileCopyrightText: 2015 Paul Sokolovsky +# SPDX-License-Identifier: MIT +# https://github.com/micropython/micropython-lib +# https://github.com/micropython/micropython-lib/blob/master/LICENSE + +# Implements the hmac module from the Python standard library. + + +class HMAC: + # pylint: disable=protected-access, import-outside-toplevel,unnecessary-lambda-assignment + def __init__(self, key, msg=None, digestmod=None): + if not isinstance(key, (bytes, bytearray)): + raise TypeError("key: expected bytes/bytearray") + + import adafruit_hashlib as hashlib + + if digestmod is None: + # TODO: Default hash algorithm is now deprecated. + digestmod = hashlib.md5 + + if callable(digestmod): + # A hashlib constructor returning a new hash object. + make_hash = digestmod # A + elif isinstance(digestmod, str): + # A hash name suitable for hashlib.new(). + make_hash = lambda d=b"": getattr(hashlib, digestmod)(d) + else: + # A module supporting PEP 247. + make_hash = digestmod.new # C + + self._outer = make_hash() + self._inner = make_hash() + + self.digest_size = getattr(self._inner, "digest_size", None) + # If the provided hash doesn't support block_size (e.g. built-in + # hashlib), 64 is the correct default for all built-in hash + # functions (md5, sha1, sha256). + self.block_size = getattr(self._inner, "block_size", 64) + + # Truncate to digest_size if greater than block_size. + if len(key) > self.block_size: + key = make_hash(key).digest() + + # Pad to block size. + key = key + bytes(self.block_size - len(key)) + + self._outer.update(bytes(x ^ 0x5C for x in key)) + self._inner.update(bytes(x ^ 0x36 for x in key)) + + if msg is not None: + self.update(msg) + + @property + def name(self): + return "hmac-" + getattr(self._inner, "name", type(self._inner).__name__) + + def update(self, msg): + self._inner.update(msg) + + def copy(self): + if not hasattr(self._inner, "copy"): + # Not supported for built-in hash functions. + raise NotImplementedError() + # Call __new__ directly to avoid the expensive __init__. + other = self.__class__.__new__(self.__class__) + other.block_size = self.block_size + other.digest_size = self.digest_size + other._inner = self._inner.copy() + other._outer = self._outer.copy() + return other + + def _current(self): + h = self._outer + if hasattr(h, "copy"): + # built-in hash functions don't support this, and as a result, + # digest() will finalise the hmac and further calls to + # update/digest will fail. + h = h.copy() + h.update(self._inner.digest()) + return h + + def digest(self): + h = self._current() + return h.digest() + + def hexdigest(self): + import binascii + + return str(binascii.hexlify(self.digest()), "utf-8") + + +def new(key, msg=None, digestmod=None): + return HMAC(key, msg, digestmod) diff --git a/Fruit_Jam/Fruit_Jam_Spell_Jam/icon.bmp b/Fruit_Jam/Fruit_Jam_Spell_Jam/icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..91b42534f7019d5123e9e594ccd8df262eb5edc1 GIT binary patch literal 4986 zcmeI0c~I147{|Z-w6c^NHg4ohp50tFN`Ehti;OxuxV_j?b+oB1;<#LaT6RL3r@DTc&J0c4bi3HHghs0F^ zi5u$}Ru9e@H9<0tt;r#XJ;e}D5X0Fe1!8Y8V0Hm8zYOtoF=!?M)_<`637XBmjS3V< za0zjN%Q6>?iX4UDmu|v2#Tm|Ntm)2hTI+<=DQ$4da)MJfYmO5f^Bmz&=m5t;w#5!` zD0P6Zp9-pUH~f|E4*Lpw*jL))_UehOlkt0+4{oLT!mip5r$fu}Tk0Ix)!4C}hnuMZ zP^|b2zr=^3O__n8Q-aVQorW7J!ML8hnC&8Tq=cY7DHPX|m!mCdCDyEL!KFkct|o=! zd_o+qBt@`|M@d9I&Lt$^Vqy%cB6naL>xINvR7UPZd1NilCM4mjxJ;amUyU76)i}7S z0DF`b_?F`{3CU=QF5!8*(7?Hxs2bEOD{(4rEsn=-Kx<4c&q+a@vI^hCXW&?D4r-O# za5yFpC*!iPH@XZ>tVd%v;!sRJ8luawZ`Bqwvi*eZ!I%Qr?zTlxhzhn1wz##y7dFi{ zxVbq1*88nteZU$w@)yGDuoXJ;Ltu5p3YMQ+!t$skekfW7i(?kBJZ6b&#R{|+hoWsu z7|c(a!~9EgTrCO5mC^{9eQkzITccoh+6?C_;&84a9-=cMh|aQpC&HPkB$%Evh3R=y zm|QeLT80Y7myBV2*%(GwjBu(Z6Gm5!VAy5|qc*nR8^WO700!3#aC~Prj@ITt|3`i3 z|D+GS>w3`b(1l)y9$M>iakwrIx;J!js6Gz|>I*RZ*WvhdcOjY^OHojyLQP9G%F0zJ z+h2?78Wq;HHlt>{3av*}IR1qSCr+qv`!>IaRQ&mQBoBE9bo7lyT8Xi~4!3TYR%{nE z3_63sMIs&j!SR~2kMtld#A76v*0invtveU0c%zv(n}iVu;3XudZ?z4%$vPi=c##d_x{JK7mFs|7m?JH8!RIV=U6T! zDW_beQVRc&IO!^rk}J=V@rj7WcJr2QFKHoemfie=w8A6l>3~g4k9(IRskFN*(_eUR zUa(!&AJCI~uAneX5NtMXsBq-m<0(a(9XRCebT6s4c2#)^&YF}(s_^vs9+;gcg%QO( zk|&r}ax^MJGj=zxd{($8zarh5`FKGne?kyeRu&XTcGm7)-)vp(4t4!lp-=s=7X;>P zHVa18T>2TMAX(9u7lsRw>SN^!w#7p&)@b(F^|0DfpyZJ?S!GU~c`UssN3SnGbX`%Q zA*a*Vmq^xE*!Sl9^?RSc-wF3g_U6qc_nG{E9o8MBJjm~^|E#u4edE9-w5R;0k6W~n zJzWd9Xot77Z0cN~UYp`-W^X6os4d^r$%kso?_yqk0o$Y90?mw?Xzq`j_BIV%)YU}> dgS@{E8QlH(DZYSfeSbGG;Qv}4$-~`&zX3M(hMWKZ literal 0 HcmV?d00001 diff --git a/Fruit_Jam/Fruit_Jam_Spell_Jam/metadata.json b/Fruit_Jam/Fruit_Jam_Spell_Jam/metadata.json new file mode 100644 index 000000000..2a14fabb9 --- /dev/null +++ b/Fruit_Jam/Fruit_Jam_Spell_Jam/metadata.json @@ -0,0 +1,4 @@ +{ + "title": "Spell Jam", + "icon": "icon.bmp" +} diff --git a/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/14segment_16.bdf b/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/14segment_16.bdf new file mode 100644 index 000000000..e17ac7935 --- /dev/null +++ b/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/14segment_16.bdf @@ -0,0 +1,2432 @@ +STARTFONT 2.1 +COMMENT +COMMENT Converted from OpenType font "DSEG14Modern-Regular.ttf" by "otf2bdf 3.0". +COMMENT +FONT -FreeType-DSEG14 Modern-Medium-R-Normal--22-160-100-100-P-120-ISO10646-1 +SIZE 16 100 100 +FONTBOUNDINGBOX 17 22 -1 0 +STARTPROPERTIES 19 +FOUNDRY "FreeType" +FAMILY_NAME "DSEG14 Modern" +WEIGHT_NAME "Medium" +SLANT "R" +SETWIDTH_NAME "Normal" +ADD_STYLE_NAME "" +PIXEL_SIZE 22 +POINT_SIZE 160 +RESOLUTION_X 100 +RESOLUTION_Y 100 +SPACING "P" +AVERAGE_WIDTH 120 +CHARSET_REGISTRY "ISO10646" +CHARSET_ENCODING "1" +FONT_ASCENT 22 +FONT_DESCENT 0 +COPYRIGHT "Created by Keshikan with FontForge 2.0 (http://fontforge.sf.net)" +_OTF_FONTFILE "DSEG14Modern-Regular.ttf" +_OTF_PSNAME "DSEG14Modern-Regular" +ENDPROPERTIES +CHARS 93 +STARTCHAR 0020 +ENCODING 32 +SWIDTH 180 0 +DWIDTH 4 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 0021 +ENCODING 33 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 0022 +ENCODING 34 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 8 10 2 10 +BITMAP +80 +C3 +C3 +C3 +C3 +C3 +C3 +C0 +C0 +C0 +ENDCHAR +STARTCHAR 0024 +ENCODING 36 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +FFF8 +BFF0 +C300 +C300 +C300 +C300 +C300 +C300 +C000 +C000 +FCF0 +3CFC +000C +000C +030C +030C +030C +030C +030C +030C +3FF4 +7FFC +ENDCHAR +STARTCHAR 0025 +ENCODING 37 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 20 2 1 +BITMAP +8000 +C000 +D020 +D020 +D860 +DCE0 +CCC0 +CCC0 +C480 +FCF0 +3CFC +048C +0CCC +0CCC +1CEC +186C +102C +102C +000C +0004 +ENDCHAR +STARTCHAR 0026 +ENCODING 38 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +FFF8 +3FF0 +0000 +1020 +1020 +1860 +1CE0 +0CC0 +0CC0 +0480 +0000 +000C +048C +0CCC +0CCC +1CEC +186C +102C +102C +000C +3FF4 +7FFC +ENDCHAR +STARTCHAR 0027 +ENCODING 39 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 2 6 8 12 +BITMAP +C0 +C0 +C0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR 0028 +ENCODING 40 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 3 16 10 3 +BITMAP +20 +20 +60 +E0 +C0 +C0 +80 +00 +00 +80 +C0 +C0 +E0 +60 +20 +20 +ENDCHAR +STARTCHAR 0029 +ENCODING 41 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 3 16 5 3 +BITMAP +80 +80 +C0 +E0 +60 +60 +20 +00 +00 +20 +60 +60 +E0 +C0 +80 +80 +ENDCHAR +STARTCHAR 002A +ENCODING 42 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 10 18 4 2 +BITMAP +0C00 +4C80 +4C80 +6D80 +7F80 +3F00 +3300 +1200 +F3C0 +F3C0 +1200 +3300 +3F00 +7F80 +6D80 +4C80 +4C80 +0C00 +ENDCHAR +STARTCHAR 002B +ENCODING 43 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 10 18 4 2 +BITMAP +0C00 +0C00 +0C00 +0C00 +0C00 +0C00 +0000 +0000 +F3C0 +F3C0 +0000 +0000 +0C00 +0C00 +0C00 +0C00 +0C00 +0C00 +ENDCHAR +STARTCHAR 002C +ENCODING 44 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 3 7 5 3 +BITMAP +20 +60 +60 +E0 +C0 +80 +80 +ENDCHAR +STARTCHAR 002D +ENCODING 45 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 10 2 4 10 +BITMAP +F3C0 +F3C0 +ENDCHAR +STARTCHAR 002E +ENCODING 46 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 2 3 -1 0 +BITMAP +C0 +C0 +C0 +ENDCHAR +STARTCHAR 002F +ENCODING 47 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 8 16 5 3 +BITMAP +01 +01 +03 +07 +06 +06 +04 +00 +00 +20 +60 +60 +E0 +C0 +80 +80 +ENDCHAR +STARTCHAR 0030 +ENCODING 48 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +FFFC +BFF4 +C00C +C02C +C02C +C06C +C0EC +C0CC +C0CC +C08C +C000 +000C +C40C +CC0C +CC0C +DC0C +D80C +D00C +D00C +C00C +BFF4 +FFFC +ENDCHAR +STARTCHAR 0031 +ENCODING 49 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 2 21 14 1 +BITMAP +40 +40 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +00 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +40 +ENDCHAR +STARTCHAR 0032 +ENCODING 50 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +FFFC +3FF4 +000C +000C +000C +000C +000C +000C +000C +000C +3CF0 +3CF0 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +BFF0 +FFFC +ENDCHAR +STARTCHAR 0033 +ENCODING 51 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +FFFC +3FF4 +000C +000C +000C +000C +000C +000C +000C +000C +3CF0 +3CFC +000C +000C +000C +000C +000C +000C +000C +000C +3FF4 +7FFC +ENDCHAR +STARTCHAR 0034 +ENCODING 52 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 21 2 1 +BITMAP +0004 +8004 +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +FCF0 +3CFC +000C +000C +000C +000C +000C +000C +000C +000C +0004 +ENDCHAR +STARTCHAR 0035 +ENCODING 53 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +FFF8 +BFF0 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +FCF0 +3CFC +000C +000C +000C +000C +000C +000C +000C +000C +3FF4 +7FFC +ENDCHAR +STARTCHAR 0036 +ENCODING 54 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +FFF8 +BFF0 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +FCF0 +3CFC +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +BFF4 +FFFC +ENDCHAR +STARTCHAR 0037 +ENCODING 55 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 21 2 1 +BITMAP +FFFC +BFF4 +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C000 +000C +000C +000C +000C +000C +000C +000C +000C +000C +0004 +ENDCHAR +STARTCHAR 0038 +ENCODING 56 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +FFFC +BFF4 +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +FCF0 +3CFC +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +BFF4 +FFFC +ENDCHAR +STARTCHAR 0039 +ENCODING 57 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +FFFC +BFF4 +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +FCF0 +3CFC +000C +000C +000C +000C +000C +000C +000C +000C +3FF4 +7FFC +ENDCHAR +STARTCHAR 003A +ENCODING 58 +SWIDTH 180 0 +DWIDTH 4 0 +BBX 3 12 1 5 +BITMAP +40 +E0 +C0 +00 +00 +00 +00 +00 +00 +40 +E0 +C0 +ENDCHAR +STARTCHAR 003C +ENCODING 60 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 13 19 3 1 +BITMAP +0040 +0040 +00C0 +01C0 +0180 +0180 +0100 +0000 +0000 +0800 +1800 +1800 +3800 +3000 +2000 +2000 +0000 +7FE0 +FFF8 +ENDCHAR +STARTCHAR 003D +ENCODING 61 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 13 12 3 0 +BITMAP +79E0 +79E0 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +7FE0 +FFF8 +ENDCHAR +STARTCHAR 003E +ENCODING 62 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 13 19 3 1 +BITMAP +2000 +2000 +3000 +3800 +1800 +1800 +0800 +0000 +0000 +0100 +0180 +0180 +01C0 +00C0 +0040 +0040 +0000 +7FE0 +FFF8 +ENDCHAR +STARTCHAR 003F +ENCODING 63 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 20 2 2 +BITMAP +FFFC +BFF4 +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C0F0 +00F0 +0000 +0000 +0300 +0300 +0300 +0300 +0300 +0300 +ENDCHAR +STARTCHAR 0040 +ENCODING 64 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +FFFC +BFF4 +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C0F0 +00FC +C00C +C00C +C30C +C30C +C30C +C30C +C30C +C30C +BFF4 +FFFC +ENDCHAR +STARTCHAR 0041 +ENCODING 65 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +FFFC +BFF4 +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +FCF0 +3CFC +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +8004 +8000 +ENDCHAR +STARTCHAR 0042 +ENCODING 66 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +FFFC +3FF4 +030C +030C +030C +030C +030C +030C +000C +000C +00F0 +00FC +000C +000C +030C +030C +030C +030C +030C +030C +3FF4 +7FFC +ENDCHAR +STARTCHAR 0043 +ENCODING 67 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +FFF8 +BFF0 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +0000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +BFF0 +FFFC +ENDCHAR +STARTCHAR 0044 +ENCODING 68 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +FFFC +3FF4 +030C +030C +030C +030C +030C +030C +000C +000C +0000 +000C +000C +000C +030C +030C +030C +030C +030C +030C +3FF4 +7FFC +ENDCHAR +STARTCHAR 0045 +ENCODING 69 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +FFF8 +BFF0 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +FCF0 +3CF0 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +BFF0 +FFFC +ENDCHAR +STARTCHAR 0046 +ENCODING 70 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 13 22 2 0 +BITMAP +FFF8 +BFF0 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +FCF0 +3CF0 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +8000 +8000 +ENDCHAR +STARTCHAR 0047 +ENCODING 71 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +FFF8 +BFF0 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C0F0 +00FC +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +BFF4 +FFFC +ENDCHAR +STARTCHAR 0048 +ENCODING 72 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +0004 +8004 +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +FCF0 +3CFC +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +8004 +8000 +ENDCHAR +STARTCHAR 0049 +ENCODING 73 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +FFF8 +3FF0 +0300 +0300 +0300 +0300 +0300 +0300 +0000 +0000 +0000 +0000 +0000 +0000 +0300 +0300 +0300 +0300 +0300 +0300 +3FF0 +7FFC +ENDCHAR +STARTCHAR 004A +ENCODING 74 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +0004 +0004 +000C +000C +000C +000C +000C +000C +000C +000C +0000 +000C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +BFF4 +FFFC +ENDCHAR +STARTCHAR 004B +ENCODING 75 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 11 21 2 0 +BITMAP +8000 +C000 +C020 +C020 +C060 +C0E0 +C0C0 +C0C0 +C080 +FC00 +3C00 +C080 +C0C0 +C0C0 +C0E0 +C060 +C020 +C020 +C000 +8000 +8000 +ENDCHAR +STARTCHAR 004C +ENCODING 76 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 21 2 0 +BITMAP +8000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +0000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +BFF0 +FFFC +ENDCHAR +STARTCHAR 004D +ENCODING 77 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +0004 +8004 +C00C +D02C +D02C +D86C +DCEC +CCCC +CCCC +C48C +C000 +000C +C00C +C00C +C30C +C30C +C30C +C30C +C30C +C30C +8004 +8000 +ENDCHAR +STARTCHAR 004E +ENCODING 78 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +0004 +8004 +C00C +D00C +D00C +D80C +DC0C +CC0C +CC0C +C40C +C000 +000C +C08C +C0CC +C0CC +C0EC +C06C +C02C +C02C +C00C +8004 +8000 +ENDCHAR +STARTCHAR 004F +ENCODING 79 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +FFFC +BFF4 +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C000 +000C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +BFF4 +FFFC +ENDCHAR +STARTCHAR 0050 +ENCODING 80 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +FFFC +BFF4 +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +FCF0 +3CF0 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +8000 +8000 +ENDCHAR +STARTCHAR 0051 +ENCODING 81 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +FFFC +BFF4 +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C000 +000C +C08C +C0CC +C0CC +C0EC +C06C +C02C +C02C +C00C +BFF4 +FFFC +ENDCHAR +STARTCHAR 0052 +ENCODING 82 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +FFFC +BFF4 +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +FCF0 +3CF0 +C080 +C0C0 +C0C0 +C0E0 +C060 +C020 +C020 +C000 +8000 +8000 +ENDCHAR +STARTCHAR 0053 +ENCODING 83 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +FFF8 +BFF0 +C000 +D000 +D000 +D800 +DC00 +CC00 +CC00 +C400 +FCF0 +3CFC +008C +00CC +00CC +00EC +006C +002C +002C +000C +3FF4 +7FFC +ENDCHAR +STARTCHAR 0054 +ENCODING 84 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 13 20 2 2 +BITMAP +FFF8 +3FF0 +0300 +0300 +0300 +0300 +0300 +0300 +0000 +0000 +0000 +0000 +0000 +0000 +0300 +0300 +0300 +0300 +0300 +0300 +ENDCHAR +STARTCHAR 0055 +ENCODING 85 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +0004 +8004 +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C000 +000C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +BFF4 +FFFC +ENDCHAR +STARTCHAR 0056 +ENCODING 86 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 11 21 2 0 +BITMAP +8000 +C000 +C020 +C020 +C060 +C0E0 +C0C0 +C0C0 +C080 +C000 +0000 +C400 +CC00 +CC00 +DC00 +D800 +D000 +D000 +C000 +8000 +8000 +ENDCHAR +STARTCHAR 0057 +ENCODING 87 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +0004 +8004 +C30C +C30C +C30C +C30C +C30C +C30C +C00C +C00C +C000 +000C +C48C +CCCC +CCCC +DCEC +D86C +D02C +D02C +C00C +8004 +8000 +ENDCHAR +STARTCHAR 0058 +ENCODING 88 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 8 16 5 3 +BITMAP +81 +81 +C3 +E7 +66 +66 +24 +00 +00 +24 +66 +66 +E7 +C3 +81 +81 +ENDCHAR +STARTCHAR 0059 +ENCODING 89 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 8 17 5 3 +BITMAP +81 +81 +C3 +E7 +66 +66 +24 +00 +00 +00 +00 +18 +18 +18 +18 +18 +18 +ENDCHAR +STARTCHAR 005A +ENCODING 90 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +FFF8 +3FF0 +0000 +0020 +0020 +0060 +00E0 +00C0 +00C0 +0080 +0000 +0000 +0400 +0C00 +0C00 +1C00 +1800 +1000 +1000 +0000 +3FF0 +7FFC +ENDCHAR +STARTCHAR 005C +ENCODING 92 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 8 16 5 3 +BITMAP +80 +80 +C0 +E0 +60 +60 +20 +00 +00 +04 +06 +06 +07 +03 +01 +01 +ENDCHAR +STARTCHAR 005E +ENCODING 94 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 6 10 2 10 +BITMAP +80 +C0 +D0 +D0 +D8 +DC +CC +CC +C4 +C0 +ENDCHAR +STARTCHAR 005F +ENCODING 95 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 13 2 3 0 +BITMAP +7FE0 +FFF8 +ENDCHAR +STARTCHAR 0060 +ENCODING 96 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 3 7 5 12 +BITMAP +80 +80 +C0 +E0 +60 +60 +20 +ENDCHAR +STARTCHAR 0061 +ENCODING 97 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +FFFC +BFF4 +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +FCF0 +3CFC +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +8004 +8000 +ENDCHAR +STARTCHAR 0062 +ENCODING 98 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +FFFC +3FF4 +030C +030C +030C +030C +030C +030C +000C +000C +00F0 +00FC +000C +000C +030C +030C +030C +030C +030C +030C +3FF4 +7FFC +ENDCHAR +STARTCHAR 0063 +ENCODING 99 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +FFF8 +BFF0 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +0000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +BFF0 +FFFC +ENDCHAR +STARTCHAR 0064 +ENCODING 100 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +FFFC +3FF4 +030C +030C +030C +030C +030C +030C +000C +000C +0000 +000C +000C +000C +030C +030C +030C +030C +030C +030C +3FF4 +7FFC +ENDCHAR +STARTCHAR 0065 +ENCODING 101 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +FFF8 +BFF0 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +FCF0 +3CF0 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +BFF0 +FFFC +ENDCHAR +STARTCHAR 0066 +ENCODING 102 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 13 22 2 0 +BITMAP +FFF8 +BFF0 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +FCF0 +3CF0 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +8000 +8000 +ENDCHAR +STARTCHAR 0067 +ENCODING 103 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +FFF8 +BFF0 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C0F0 +00FC +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +BFF4 +FFFC +ENDCHAR +STARTCHAR 0068 +ENCODING 104 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +0004 +8004 +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +FCF0 +3CFC +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +8004 +8000 +ENDCHAR +STARTCHAR 0069 +ENCODING 105 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +FFF8 +3FF0 +0300 +0300 +0300 +0300 +0300 +0300 +0000 +0000 +0000 +0000 +0000 +0000 +0300 +0300 +0300 +0300 +0300 +0300 +3FF0 +7FFC +ENDCHAR +STARTCHAR 006A +ENCODING 106 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +0004 +0004 +000C +000C +000C +000C +000C +000C +000C +000C +0000 +000C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +BFF4 +FFFC +ENDCHAR +STARTCHAR 006B +ENCODING 107 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 11 21 2 0 +BITMAP +8000 +C000 +C020 +C020 +C060 +C0E0 +C0C0 +C0C0 +C080 +FC00 +3C00 +C080 +C0C0 +C0C0 +C0E0 +C060 +C020 +C020 +C000 +8000 +8000 +ENDCHAR +STARTCHAR 006C +ENCODING 108 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 21 2 0 +BITMAP +8000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +0000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +BFF0 +FFFC +ENDCHAR +STARTCHAR 006D +ENCODING 109 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +0004 +8004 +C00C +D02C +D02C +D86C +DCEC +CCCC +CCCC +C48C +C000 +000C +C00C +C00C +C30C +C30C +C30C +C30C +C30C +C30C +8004 +8000 +ENDCHAR +STARTCHAR 006E +ENCODING 110 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +0004 +8004 +C00C +D00C +D00C +D80C +DC0C +CC0C +CC0C +C40C +C000 +000C +C08C +C0CC +C0CC +C0EC +C06C +C02C +C02C +C00C +8004 +8000 +ENDCHAR +STARTCHAR 006F +ENCODING 111 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +FFFC +BFF4 +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C000 +000C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +BFF4 +FFFC +ENDCHAR +STARTCHAR 0070 +ENCODING 112 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +FFFC +BFF4 +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +FCF0 +3CF0 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +8000 +8000 +ENDCHAR +STARTCHAR 0071 +ENCODING 113 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +FFFC +BFF4 +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C000 +000C +C08C +C0CC +C0CC +C0EC +C06C +C02C +C02C +C00C +BFF4 +FFFC +ENDCHAR +STARTCHAR 0072 +ENCODING 114 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +FFFC +BFF4 +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +FCF0 +3CF0 +C080 +C0C0 +C0C0 +C0E0 +C060 +C020 +C020 +C000 +8000 +8000 +ENDCHAR +STARTCHAR 0073 +ENCODING 115 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +FFF8 +BFF0 +C000 +D000 +D000 +D800 +DC00 +CC00 +CC00 +C400 +FCF0 +3CFC +008C +00CC +00CC +00EC +006C +002C +002C +000C +3FF4 +7FFC +ENDCHAR +STARTCHAR 0074 +ENCODING 116 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 13 20 2 2 +BITMAP +FFF8 +3FF0 +0300 +0300 +0300 +0300 +0300 +0300 +0000 +0000 +0000 +0000 +0000 +0000 +0300 +0300 +0300 +0300 +0300 +0300 +ENDCHAR +STARTCHAR 0075 +ENCODING 117 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +0004 +8004 +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C000 +000C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +BFF4 +FFFC +ENDCHAR +STARTCHAR 0076 +ENCODING 118 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 11 21 2 0 +BITMAP +8000 +C000 +C020 +C020 +C060 +C0E0 +C0C0 +C0C0 +C080 +C000 +0000 +C400 +CC00 +CC00 +DC00 +D800 +D000 +D000 +C000 +8000 +8000 +ENDCHAR +STARTCHAR 0077 +ENCODING 119 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +0004 +8004 +C30C +C30C +C30C +C30C +C30C +C30C +C00C +C00C +C000 +000C +C48C +CCCC +CCCC +DCEC +D86C +D02C +D02C +C00C +8004 +8000 +ENDCHAR +STARTCHAR 0078 +ENCODING 120 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 8 16 5 3 +BITMAP +81 +81 +C3 +E7 +66 +66 +24 +00 +00 +24 +66 +66 +E7 +C3 +81 +81 +ENDCHAR +STARTCHAR 0079 +ENCODING 121 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 8 17 5 3 +BITMAP +81 +81 +C3 +E7 +66 +66 +24 +00 +00 +00 +00 +18 +18 +18 +18 +18 +18 +ENDCHAR +STARTCHAR 007A +ENCODING 122 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +FFF8 +3FF0 +0000 +0020 +0020 +0060 +00E0 +00C0 +00C0 +0080 +0000 +0000 +0400 +0C00 +0C00 +1C00 +1800 +1000 +1000 +0000 +3FF0 +7FFC +ENDCHAR +STARTCHAR 007C +ENCODING 124 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 2 18 8 2 +BITMAP +C0 +C0 +C0 +C0 +C0 +C0 +00 +00 +00 +00 +00 +00 +C0 +C0 +C0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR 007E +ENCODING 126 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 22 2 0 +BITMAP +FFFC +BFF4 +C30C +D32C +D32C +DB6C +DFEC +CFCC +CCCC +C48C +FCF0 +3CFC +C48C +CCCC +CFCC +DFEC +DB6C +D32C +D32C +C30C +BFF4 +FFFC +ENDCHAR +STARTCHAR 00A5 +ENCODING 165 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 10 17 4 3 +BITMAP +4080 +4080 +6180 +7380 +3300 +3300 +1200 +F3C0 +F3C0 +0000 +0000 +0C00 +0C00 +0C00 +0C00 +0C00 +0C00 +ENDCHAR +STARTCHAR 00A6 +ENCODING 166 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 2 18 8 2 +BITMAP +C0 +C0 +C0 +C0 +C0 +C0 +00 +00 +00 +00 +00 +00 +C0 +C0 +C0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR 00B0 +ENCODING 176 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 14 12 2 10 +BITMAP +FFFC +BFF4 +C00C +C00C +C00C +C00C +C00C +C00C +C00C +C00C +FCF0 +3CF0 +ENDCHAR +STARTCHAR 00B1 +ENCODING 177 +SWIDTH 810 0 +DWIDTH 18 0 +BBX 13 20 3 0 +BITMAP +0600 +0600 +0600 +0600 +0600 +0600 +0000 +0000 +79E0 +79E0 +0000 +0000 +0600 +0600 +0600 +0600 +0600 +0600 +7FE0 +FFF8 +ENDCHAR +ENDFONT diff --git a/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/14segment_16.bdf.license b/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/14segment_16.bdf.license new file mode 100644 index 000000000..9232f592f --- /dev/null +++ b/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/14segment_16.bdf.license @@ -0,0 +1,8 @@ +# SPDX-FileCopyrightText: Copyright (c) 2020, keshikan (https://www.keshikan.net), with Reserved Font Name "DSEG". + +# SPDX-License-Identifier: OFL-1.1-RFN + +# This Font Software is licensed under the SIL Open Font License, Version 1.1. +# This license is copied below, and is also available with a FAQ at: +# http://scripts.sil.org/OFL + diff --git a/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/background.bmp b/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/background.bmp new file mode 100644 index 0000000000000000000000000000000000000000..6151b7c45504163b0ef50b0131f3ba0f87a520fb GIT binary patch literal 77146 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 literal 0 HcmV?d00001 diff --git a/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/C.mp3 b/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/C.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..ce7b23a8af8ad4ece8dae5cf1bdeed58ed96b9a6 GIT binary patch literal 2865 zcmcIm`8yO`8y*bFma$Bfb!=luV^T6wV;j5d+4n6)%WF$ChzudSkwMwFh)A{}2GOhR zM7|`AT_Gtk=QHp37kodw_Ydbe*E!eqJomY;`+A;ZpmPQaVE|!eX{mb{c_0uLW4B=M za~LJGk}?|o&*lFXue+qadm?c3W zLcIetZ^E#Lr}@O#eH>aj0CXN!*Xx6GJ}Aa{xE#a6GQhXf!VUZw670So;a`chM zE~L|Cvjv%4wT=lwOdjb5j)Da?=3j#SYo>J}GIA7N>3;(?kMADaT0_y^%+8e0y%7CHa)iJ@@7ONljPs%}odAv$WF<^v`NZ z?&hcb-LYjY@r6D6^;4BGU)*T3e@&w8x`;(CdkA3LA<0XvxZu`*+xCt9ZGM49hv1&R z?(sxX=GfVM5d$;CU7M`7CKl7HHiVaT?;F%Ig^OT~j79 zAO<->gaWPm1Ug;g>ZL9h;dPXjoOCw}v|Zo{t(iR}MXZZ=FI&n=bG-Px^{{;r}r)yqb}H z2~%?*c}&3<_K~oxQH*iBP3(ThuaW=iaXhJ@$`Q@VmL_I}8}{-n@Rl1g4QXCw2zNrp zk*!b2&N4{cSvXzZS1VJqqNaY5&~EV%&pkLg)GOMntnXH1nc;XzN`H{>R32sD#Frz(+!^EqB;zMm z_NVa_M5&T&h9A=IL4D-zJ9pXjx5T+R-TvYJQc>1QPSY|rDWqlY`#(r1x4vzX=FlsD zZT1D^1CxfjK$uB1weND($$s$De#lyVN2EwHe%8!QH!L|d-bi(+q}s+hEOJtm@B131 zs3bOEw$L^=hSKC7t3Qs4^YnRenwhZEDJOMtd=Te>PVs~Uo%{7;H(xoPK~7X$&9H-u zmT0BvYy!cVhrsh@A|&)%y;2)a`0fj=z4lK&a!=~AFC-@sny^{h0sgGN>ZpiWgCUDkg${OlG|E8H-WjWdng zfl}@f@0(}+1J~rOi#aci5308Nq{K&Ku7I)+&)Fo}T~0Af9y^luEyp~bZ)T1;Oj zv@3oi`5l{5t3DNGs8(GyE^2Gxp!)4&>o8YX5s}-}r+iX2(40Th3(l8txxr>A*X z>|qB38+NJS>ynRlgBe2FLt;-^x1cSp`PEU?i%y|9(}7k_rWIWU-fFeeEWsuY z`_aNHk_rB2Mzn<}XmZVTGUi$zIG`B`R`mvtnx2UtH=yD?t)`h7!fA=yQz~9|>9p~f z2F;htxf$1`k2k)>UsA8rze8oq{gA5Nz#n;3swVD2?O_w9&Y*wVO5U+JuGv*9u zXjJp}U`YUq3!&7=&JmrZYg+eFkr1MVdnCjRS+w7YTM;3l@t-eBugM#KbrDKmale;u z7$i6;e42eX*81ZngGnX?n@WpQnBu#{_oXkn~>|ILt@@zw>?&4&Ldk z6U(E!H|rFgU7!C7FhnRI)wrL5@ki+5F;<=U^RlQHm$rX;nV+(WRe8H{7exS|=sTRx z#$xOl_zl2;f=;xXhhBvGE)OJ)D-_Cof+5@k@$P}}fD!8K`+ASZ(rHG`t}M@cr`)Wq zFxSll$X$YK9)g~XSbxUf*x06~V$hOI0IT1NI@UcD>93I}k31n1g1KQD4tb-0{5Kjp zw+LZ>5}N4x^gI&L!nb4OazBpz?4PNhErv1;dN~abXSKM`8eP)^_hfSc=D5uP>12e2 z=epiD!q$VYQxGcP9#bKJ?;{Rr=rqEp*DWoE!KxP)dBZ_^<&wcC0NQ#irBmbV=JW0QMGO9@nOm&VP(?3lSA#KC>IC3{ o5=}%r$$7kDtZAZqhVdh;{I|gnZeDbBXABZ*Ncy*n{lEGD3qzB+YXATM literal 0 HcmV?d00001 diff --git a/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/D.mp3 b/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/D.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..2397eabc34908acd61a216831ebd145d04a26e10 GIT binary patch literal 2708 zcmchZ=|9wKAIHa97&7)XjEteNi-yF}7)#cSu^juclcX7ANn=aaNRtQ|`%X$UQ4=|2 z$daY(C0mj@b|&+?&3*p^_oMTDa9t0s2jBPW^L<~}>oP}av4fZe#n{`M9PfM}5Syh} zgrAP4s=BI%y83?)|F-~Jp4}j6`GdvpXfYN}vJmJbQe6y;DC$O`&@t`pz?3K>4&><> zy0P*bg;IeCet!vtijElrDH|)_R^3+sfL@B99kMb!g75$UfHMYws%{j4aAQHgy`9=l zEtRu+8y_Fv{%~h#76A4LL{kER@Rb6%jX)p}ey~$yPB49cImSUns_8+4685!8>C}`-?f9i_kxqv!J%{IyxoLs6n*M9N zvLbA3l6O3MnQ+2T`KR@ZqqJ9wQh2Z2$wY%&Fy9Haptbx)jRHr^!NfDh^TH1gt5Ux3 zA@?J6TS$r$>6h=j#~S%Ww)O=~^Rv%MrRKnm3P2gvuv3aa>YQxpDP^J98tgz@6kxM(?W!;6Yyg&4Z;mv^_J{c>SR~Or0!meF zmehZF^dp(dNx>3dmn4mLA5rkpF=0A-n`nBDT2*Wa*3CXLt9_xB8msV}?+pCTmV}&0 zx(s_tl0+Gv?{p61nhh_HonUzjN4I3%F0Qx7X`F)RpezR3)tWlS9t*fvmnxjMtjz5X zt}mAZqdnWM=#Ei=_4-Diro+|4+bTpr4Xe`U5{1!t)1|EQAdVH-WDM5TWVdPbX7rKt zoteQw42QN;8ZP7eoghmsWOGjexGjFRtNJ;=iSLhdLJixE4tBF{ zMb?l)ydJd)*wNk+2X+|^z|jNgKpdh4S0Qc*={vs$;u35$0!{4QC#c^5qsbmvsOdal0d*Pg`P$O`$u^vwYr*fXBDrjU9Vja=`~PY~;}eLqbE4ln8+ zSpmT2Vua7ntAGmllU|Plt+M7s{9Az{WSon89N^B>fZ7Da^-=5G*~!Zs)v0+ zI4)xG1&Ulr zEL==|sQQgH?uI1cUVRTTH)EAfh%k1jJP87kz26a5jFOaSWsiqG6mRMt5SM>Ao*do~ zOOatT1q#V=NjNWAK4b@f+Xu0i_d;2FNttDz0x%=DN%ZcwQKscxQNiS%VwNz{_ts#f zw42k`stb4VoTFZ_N zCLiW7PY=#LFhHHHoXrxfXwexzUA_tuwffD$0<3Kz?Vey*h zq*$bDCMQy|HPOox?dFOba~6{`aM!Ag#HltqUEstL!a4B^F+Y%MO)XftpsyGAAwRPx z>-QyywGcnIfW)v&N1m$xR_yIwlC3K|rn)uYCc9Kzyl2)HmfaX6=I?) zf%S%CQ&#GlIg6#vNK!ZU@AKcMKLo)h_TxA@piA-ZexwNmSr4?qcD`MY+zHLJ36@tOu9NTr zScr80Ja7;^LVIg1ixOAn=a$|c2aQ=h0SWJ!f0qU^gG-gU{5sjaFYQU>rZ_)jiOagy z#dPAgKi4hni?Bhj@|DYoY0?$#G<3rluVhQ1E~D+#ARTjXcW_A>VY=aM;rU;Q5H3mv4%J}Sd#58+0ny-3;2?!AJEQ{ z*iB^)kA!mwTd%GnRRw`Pja35M2^N(qV;fkNf(sL_KxSI+ddEmo$7*9jdxXYJTy)fyw~=?idMXWpL&NPWWXZ z{2x_$7B)2FH>`qg8R1TAhR?`3z?q zi5~gpe+ow2MK}0{`zDtpB!c5oIf#GX_9J>R;p(IoV6N+(*{<35)OOM$Yeb{SKG~uZ yK2B&Kh0sI2ce{8m+w5vC6KBgmtW30+|1F1qrqAsVp& literal 0 HcmV?d00001 diff --git a/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/E.mp3 b/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/E.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..1b70a9dee97de90003ddd478da76e5a3c78d6aa8 GIT binary patch literal 2865 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 literal 0 HcmV?d00001 diff --git a/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/G.mp3 b/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/G.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..c687fca095e16765cee0257610758433efa0a1a6 GIT binary patch literal 3178 zcmcK6=T}qN8V2wH0U>bdV1PgZh$20d0qK%NIzzA02@FkoXADw8QIIZ85u_tQlp?(t z5eZd@SLuTYh$2X@IhV}*33tu&VV@6Yt#f|s+3#L!>!TIGAZkP`Ei5n>PgW3!&d4>~ z^EY`JIT@s!+}|(%S%6&^B1oV(1FRT{?jFg$FQrh=w!74kQ+6UwWHDlnzL~V|udPkE z@sdFqI>#_55560RS1yhXfz9D|C!2)@$UBO=WlXnfl}|Gtop3PfC<`-f)~*CtoI9D! zJC`I1GtNTqWw1eXfS~V^y@tu zMTlyw>mVUDP2A~h4tvxa`o?9+$P3o(8HQ-iA~pvvR|-++c|o1enXw6mzYK20bH@eE|Sw^(M`F<7P!L z?WTd3K+lrwDHj=nYX7 ziobp9!br!Mo^451JZ&L^4*?C)5nXOlUGHkL$_(5V7q95IyH2TCzSjO!ErnN_UhqTW zPT6H{5l9>iUDH!_rt467vl^u#@--i2-^W(>tifkUJV-*%-MZ5k!O4j)7VwffWi&}z z1%s%?af=KO4s5e#f{kPp)!DAt$Up4l9BjuFd9TXd|Dzr^EUf<4VcsstmjjhhoE1bq zAr58_Okr@j;bx=ZlFIklIHtAXKm)ABqd>jPy8TKhaMXYjY{6E2$vGC=&(GAB7#>Tv( z;-F%p*0piN7}(FWHo1zgl)3IlxG)Fb0mF5`hq-x)~uZ_T&YLHb9RzeeR>1*Ka zK&Xm_xWig@nvs2BT-Q(t?eiwg zez>f%#pC*zAKsOE@UgmBp0(>hP|m8bB|-;dqo&b#!#Dg}fTgXzWqn6GwYY0=(rV4Y z0Qme{r%lIwtp10zj?KX`H5fUnY4!_UK|0PpxXr)cZ6Ws?=CZ&69@{US4 z6lgDwNi&^1kfDE?wk6Q~I#3k_f7TrBZUqamwm}KT~u)!`cJxVV8v#=|<4^9`UF?T1mmW^;i}^42qSVmrZ1C{h04-=oB>{QOQ%enVg|JuNQ4COK>(r1X?=12r=!Z9HbU`$IjgdNg zF{BJPXmU;*bJueu@vbHJ0lll#Jv< z!5%d)_+W=+Obc-qC$~JMGE|+9Ft29WfB!mJg|R|#;PJYMzN@-e(%SLTw3KOFMX*o? zIZRrDwZ@q|!k0ySoLv?E<6$Rly-GEa~ZKH=0wM=gSC0~Ee8GrA0bYFPKKuW{=A3%8fwBAFmqpg%>QFd z?2$Pa05oeVmYC5P$b{VF+(_6?m46_RwB|Q@0*$ZWFMIneU6foy`JClfXdRew=fWLWK%~sgu5azcvlL*FgT9^?L2oSXRqz$enUuF|N7l^s#WAq#}i1ZBbt z*gPGGIlaISCdmnl80u~Y9h}v(L+iIO?1mhnbt0JKaKhV zYo9*c0#0~%9tK4^u_97f;-fET6&R(8`m$ZYyV-_k3OH|gp$b2S7DaI)4i9;`krK=_ zD9eWD7Z?%IVBE@5?IgAkX24*dE&&P@0`criq(H571^cpv`()pAtf&}chr;UKWGFsS z$mP)p=Y11-xc-ega+N~w2VHY#>>~%RLwu6D7f<&cLY#qhSzx=J%+#02xWum+51nDc z2S`XCGIEbP=}Q~Oeg(FpHkAcaGY0tepDST@1{Z-z!%=tf98X$xZmFlmy=#z8AVFq+ zs$IS&88dIT=DES*+4m*;TKeP<+MqERaifWr(2Z&qy^y@vtDY^aJ#Yuy40+o`1| z;Qn9`%KS~4THI^lY;&uU55zM)Mm}VXXuqig9Xh+KU;lQ2LJ#7 literal 0 HcmV?d00001 diff --git a/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/H.mp3 b/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/H.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..44ad2dba7fc791e85f68115541efaacdfdbf1640 GIT binary patch literal 3335 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 SmX{_gAPp}659a?@BmWQg?wzjy literal 0 HcmV?d00001 diff --git a/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/I.mp3 b/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/I.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..ef568e288df5d739d5524c4f4aed486b05ea4025 GIT binary patch literal 3178 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 literal 0 HcmV?d00001 diff --git a/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/K.mp3 b/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/K.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..69ae3e3b66bac51c9001bb3e1545a1e6c8c938c6 GIT binary patch literal 2865 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 literal 0 HcmV?d00001 diff --git a/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/N.mp3 b/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/N.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..b10d92f92b817763da2878090d8ba96ef7a8b9ef GIT binary patch literal 3022 zcmchZ`9IX#AIE2eCi~RTM3xz{r?EyQUfIx># z2oK$~)KpL^swmX&#s3Y!hI1R}@9&n21ulIeG}6g zg8=|mukXd}n3a_k0NB-S0t%TIfrtnYi2FdNS-`-JOB4 za3Ek|f8`tSv%WsV*Z0A0C^LZ7iw1!OR##WQ3q*1TBk*N})$Jupu>FgUcNHH_@{o^$ zO*s644VN}C*{{2uPEoPa>#<1Qv$JjdM_SFg;33Jp5m2+dN{_&kVCj_O{F3t!d3`9a zybx8G-^S_6(}lP01r=xm)ilAtY+ZfP2|2;;E6(-Nz_FYrY#VreW~}0q1y=}-RGuo;;7&*^n7OF_ z{5KpFIlce-(l8pVOKw9k9TerJjs!iZB{}pPUYk7e%_1k|NoBto-8YKy`m$u-yL~#U zIu+^l2Xf|mCx4#WHp=j-oj22-YeEm=}io(SJ4Xq<{$gAOs;qDtE$+-7}N87 zvhT!!TfepTl_@F7>4t!yhRdFalK_u3&SULoiqUP9u?)Q|zE(L9kfXY09Nk&lBPJ#-2l zqZSVUr2sHHFqrggskI-c8a&bAHyLgG?$u$B)xgddl{cct;6y>O8_J|8c2tEC8*i$^ zI&mz$Pso9~82 zW9hGOmm~}G0d$kTl1Zx13KT2jw9Mn8ttdG>=jTg&EF9nG26$wy!#~;>ECc%ok7jpi z>pIoGWoNaY<#V!jIhF&(qrtZ;2hu|jZZr>GmW)&4t7)YM(D+e3DQq}#DZ`e=e_Aka zkLfp4?4L!XIP;Z)vDo;<{J6w`da<`#)tTv+`{iWjZj3KZFfrxrWu}LUD#M=LdT3i= zW%Z}=`OfDx&nWH@w3G1vzT}X_j$nDDq+!o{YfX*@L-gj{P{GUFcEQDg zbf8HDrL99OKRf#tc62{{)pJEfPUHnhV*u@^Y%p0YguGC?(Ok}kQ1GRWyHACizw(g5T#53E)l}V0HOpn^vgMTmT zzQg~8+Hrm?!5_}>;|EVnPpjWoC>-V$5fAAq>Ot*lR($anXQv!mvUIb_WEoAY zq4mu~7X5q*(C}NT0-IXlevU3C6E@oUcyhq_kax#=;+sOYB>@>xvw$skRchi1NWm?l zovzmtjs#ddd`;OnrDw>CgVDEKU_5$Z&2U)5*Ot3;abN&qpL)zvVJS5Fy3W>G2f*GCfZh6+08~_Gy#o_GgJpufqF3fQAB8ZbO|)`+(>J1-WS_pl#J^Jhb%QR z*s#;F-bTc)<*8Yx!#NYV>^o~IZYcxOAbrCrC8f0IzeeKm651sB6^UrkXsmd-U-#Rk zq?wv&9XIL=2|Dnt@4cIlKsZMT-rh^u8*@sA4d)`cw(ie28MV2egD}TKza1b0pC+#% zvDhGdwwjN}@e7>%uQW^#V>lbIfvR1(=V*3Z*?zsVU$D;dQDO4-uCj%$o(#qq~f@Eco%fcL#qM6X_Ot5gO5VPbJI<) zeAnZB3I^l)2M7Yz0T!iCL5t7&+ZL)JF{ili(NY2$a3^IvKxxyHw$y;`WD@=`%R>c*q@j?9~u zS!AFyS-oHH(pStUf9S?hW=vsE-8a<7*GvN3#jPs&s6PlvUfP@lU5cBP+^;%pO0|43zWRxB0Hmd&N?ZVA| zNQl3^7ozfPLozV3r(|JjEGS$a8b{BB*nnC&-5DhPumQBecS4Aa<>&N*s0|U@g+!Gv zTe6*T*N@!eOZ8o8V8azk?pCEX`o&(TmfQ=t6zT%Hhdv?ur4IV!Tq!mA4{IfIR3!I_ zM8hIkuxksh&pl5kB5tT2Yn?z(f)); zr9gB-4uhJf!O5HCb8i~o)QzfMCIs~hDO`Jh23(elMa(DM`kg|+9;5t+x1p%G?sLOAp7^7|WX_biC}#AU|u& zA6*2)ef-!d*DW*Ji3bhxjIDR%*%?XPja;ND^NNlE6Noa!ykndW!E%A_f#$|l79TPq zPm7C#@hZkiSe*c1eV{jQ?4ZX3#slCx!gsrpScXoYyO9mphZJGqk3N~1g>f6q9P1p_ zYxf>SJ(A%v2y7mijX)SIp5?l2gxRkDOMn(#Q!M!MKHp@lVLK&D&@FtNG}=(7&;p54 zR1|Du8`mL+jMI~8J=&LaBvDTkjB)O;duFF$;8koH;u11bl!z1C()9ZkAC#w{)kSht z&`ZE*nBuDIU?VpC2=iA8nli)gb{e7;&YML%T=xm`ii((dWo)zb7*EQ}ziXfT{VSG) qkvVnrBLeNjq?DQHU&X4kn_cVw78|Z!y19oF^!RAUe{cW)?)Vp0q{3PN literal 0 HcmV?d00001 diff --git a/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/O.mp3 b/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/O.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..edf62590c355b3f5618debae345ef60e5f17e7d3 GIT binary patch literal 3022 zcmcJRS5ymx2~*ZeDM=KE#Eq7GRqO0FcSq zcszarLc=QK2c$yhcjfx)^pd0>GmWg z0XFj@CT~WUJ4w=aPn|Ke7r8h>IERpLkoh^TJb5i3BPbWOWmxD=-2Xio7hq0TK*$$6F{YF`rqs6_NIN|~5dW39ejgmBbuN5P##;=Y)3FQuCVm|qGzh*GEq{gXK|KkOe zl6DRijtgz8SF7`e72_Vr7pv&h*e3X=!(-wRiSLeZeO+|TR$?H%)sLcGMo2nNXGP{Y z506aG^D-iMZDf$AcPGMGqszW-4*A3mZVsXTSQO)C2h=-Fkr1lDyQj`HuUC z_Nf=(@T1E^6tvjcRKwWh2^08pdM>oeRa1eOX~iO}+)T*eROI>+&Bi!pG1j1L6xhz1 z(@KrpY4n_3+1A^xzN$rfsED)!cX&*vJ95$aLV$&QO7|8fJmGe`4Btoc;g3%|F)LQc z2|oQ7VB(uqgNGG5WXRFTPo;O7+&2x@d6Du4v>r{thoqQU24*NM`Fyl!*|oJORL<`L zfJ+$8M_Mt=5hr(c8wGIe<8&Q$)(VXDCw+YC7+&Kls@wj8I+yr+d^T72EszN4(2}AW zCxFhhDQxKNd+(TqI>@?NtX{ObA$tf#{9VJiD;hZ9&(Z=0;f1hX#g&$B0Q_%SOz2X6<#TI|+u6 zU=Xw2$#&i;(1^y2G}eg^+ls=}i)$x58nDBv+lQATF&6WNdE`EfkVu8WtREE)g&-oD zc;BeMheg@MDDFft5KnQjRC%Yvr0r)fR=O>}*$d`d&SFxx#!MNmBxQqj%MF);xDd_O z;G-vUmYlX$s2fVwNnIq;HmE_erX<$kp0yBj=SH+0ch1?;%`d2yw?PzD#0a0@+4R5c zczX{2O3AVR5&?AId9oc zTPK#sHt%fyhX2(jn$uZo1a$>3Pca_H&CL=g@t*0WZGkfks`OAs^{7|PQSyckE{{E@ zmrZCXDspRIu1qx$x%;jodJ0ochVp7$;4F=KCQ%Zy!3Gh_lBj?dTUVny>z4c0Sdf8aW-oFxq6< z-j2%5PVv5~y2~+M4A>N~p5n1xom8Z zSQDgt?8iZz*$;|?hblR?x=r-#Nq(BspGI6X7{XL8UUaS>=BQ6w@`w!#$gRJbnkqYl zGU1k=cSxv9z7LmFIqNy}J7xIBt1%u!>0WRT_Vt3&V>YlEBfr2CO*PIO;mJ$BKh9zp z-rjU8zHDAqMS%yjONxOF{&#X~1m`P*4bLWut?lp9#)C)=jl|pB`JY-7_~!u#6676ZBd`vvh{OTYa3{yKd>OW#6ft}Ys+@|vRa z?_YV#N5XLk4UIAB>e}xFoet-;Z}Y4`ro-n_)(QZ4&u=p`wUMPq@!%%N1{r#*6hM7P2UY5&OhGl)Pn1BWn$m8D6vi4)_ub8DC3}OH`6%T9|~7qsu*iMn)fh3 zN5RXMEWhu$`w*^712BJl_nRBvdl9^?N-|9t5K+1B!(JW&afzy@^Il&Wzgo#PYfZZl z6*cbW5bvNXREsY;7mMiHg>2~0=F0Th0)W}sLk`}^qdV9>@fEc@s2Im)B zXddlIS~P>>8%KA4S<81{5i~u z4WV5MB7tV3Z6iXye=Da6rB`2c2(*T{Nu3wks`;a!Q1OinS1d`7fG9I3pClK)o#8Kn zX>kk-MH#z$IPU$PXRl9QS%3-1R=s0|dj9jUwjt(-0f-R}?*z;AaM&rC7z7t~m}fiq zPdkS`cl*FoFii5pZaCeDW@S_ux8IA)*~QK7FI>D1`hqc!H8<;?b1LlVsOUmw9MndO zXcHo_ClX17m!$s6iH%h6S}|nwgHKoL^gh~7+&kAVN z&XV6)jUSv578(`DClw5FEr{@U5oeU#S$=p^0PM}HQmUbYk=1?d-%SeuXfANCmZLxUEgJRgGb z;WMF8{Ul~jMbm3g+8~^M=D6n2t&G^A6BtYZ4SRRbSj#PnDoX~`-IzrLj!S9LZpTMR ztlr$dfXPFmeL)_fAPviJsOoFLAg1^;`g;W&D;z)amsy-6D5B>@Kcm2A@SJyi>6nb zEnKpVy5_asT$5D%TxLf#ZV7QgR+0B^hvGz;y`wm9G~v!;W&EJ77EB)6_}tg?k+_7M rtYeOZtR6=5aIPzaQgsOF`JZj&|DLFDK-BqR1H`{y=ie*y|Ly!A?(Xw^ literal 0 HcmV?d00001 diff --git a/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/P.mp3 b/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/P.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..635952f6c0796db71517db3f39b2f78aea855830 GIT binary patch literal 2552 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 literal 0 HcmV?d00001 diff --git a/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/Q.mp3 b/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/Q.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..9c6b6c7257f4c0589928907b31df464f0b0e92bb GIT binary patch literal 3649 zcmcJSi8qvQAI66nYlNX`vW>A$LNj(!F~*wRkgOs5l3k_HBv}g$$r6zzYxI*fOO_b> zPDmw7s!_jaEOEc4_dj^gdB5j8%Q??^?)&px*L8o-{TL7wU=VtV5-lxt4zEWc5U7!J zn7gvP999m8#r}Qx-xK(CxeFppX86FMi)4UsclJG$3d4*2L(o}RSa=Tra9CIv2XQ7; z>S|$gbK@E_GnGnZroW2j;aON%+$0bPo2FoY0f6w}s(8=^g(9e+;P3Q=^8kEpZakn; z0idqMIfR3S_U_i(5SWzdD9`y(-YRO`VL_OgnPvVQV`PIBn0sd0C?bw9kxZq%gU|iM zf?qCOd=eT*%bf0dLL;ACD1J~2`-NTI`;nWS_UYoDyni8X2-g?2%!HG3I+=vDeQW+j z@XCvCp!l)ea}p~i@KNliorWI@&M{#Bes+Gbit%?0O1SU`OE!VvhA6P1#U3)z zZxU-SG4Md3Vn^gIp`gFY>+rLu@@V7ZO%u1r*Naz}W0@2!r1a;!x56*f&51@wYYpZ3 zJJR8}#BQWf9O5+@0!hc3fn#BtY7pM`hl{K{12VpIO$0=t@kJI?YIGNPfX%EgW- zDs7}nbaQ;IEwO0YNWDFCpA*{0#WAAJ)S2PJ-q%oGOI1<0HEgi3-f;C}mb>fjm`CoH z{qKvr=hxY*!MCT4J~VJ1a=<{s@_t|+b@*+PUukukHrzJ6^HQMJOwefF)RRpyX`p~G zMu+1OYo4k#@4+&(T-B4*;eLpkH^!copzVzN&^B6YtHU|3O#`_$uy73bS4gmP>!%W^bJ9aMg z*b*NB@W)lR{*=H8&fcD!pCCyo;P=LU)Q?tR^0*T7e$MaJWueE|*Jr^0!+?)k8JBlrC1!XYHI z!>Y_&^n|>Q(BAE5zniM(*Dek9ti#~I&$UXiwWzJU?F-KJ|I+3?68nS;RI*O;Dm%K{ zp19J@R(%+q;`sinU~`s0uISH8kgBHf@sb++1v^AEtx=)BONHz1NBv=x&qVg8_Ks;K`q#m;SmcT!ybA z_N4@f!9;UVHJg?=z`q}hj8j7t$oJEdtJnBEH^n3o^N9~ zU67<#U3&e-vi1A(`+9g?&*z0;vq^wZu4UyT-Y%WDVQF*i%u%bz&Dhm4*G&m~V*j9` zLl4HRtYLMwK)7A7_GVC%C`2Gd-AYzk9p1o#h)N|zDr-u6^$w;jYueM{BvDIEJ&|LE zq5p>c_Nh}bHPKU>ezG2lE4Ml$#sbrdCNTlAVVlPezHfEq3tseydy*>69XR|P2(t^v zh6blYv|P%@Hm{z%l?TAVptV$a_8DJbU2v|)KS5)rlQ8V@?UXb`!hO+#F~bQstVt@{ zIl85pX6Z95*S&i=(GY+Wzl}-xRvIVkTWe`c)%~JhslY~_8OYQ`(<7&hDty)B*iLyp z%K>?~I0n;95Q`rR7R!xOBp3`;$gS`3I^qRi9^)R;+as^yLnEm=H+hJ zm~@?`727p)gr=vMy?$8XRQ>UWCTC7vJG0Wc3VqEhpNg_z5-UYFtrU-Ns;I#240wzG zcz&G6mX<3?C0lugq*Gnn>Z!lSnWlH=(n4XL+;N0!f;6?9j1szVx+oXJChLxv?W2NJ zAHZ+j+!S-!T>ezm!Wkj+cR>mQ2RcH3i1y572X-JW%hG1gG1ctj3IRPTf@HrkvfMJ2 z5KUZiCNw%S;l_#w*;duyDiwG&oI|R+IUZde4eJu>^N_w!g0uJyi6 zv1Ub3^2vx5iY3}24A6G7)ib7$C&594MT!opI0h~;QnK7QgE!yRK4#O3C3 zvbop4WYs%@nyyFS3S#B_eq|1V6}u@zJFR(|uKapvL(_u09Z2+(6%_!i%TG9%A`fpG z0=A{wKn-Oj@p%x68==N94@)|uHRaoJ7qQY!7w&3}$f zc=57|oHr??rS?{%3C{Aj>;G&Aprm-x%+%;`MZ)aNDTpz`Na5R`GOF<*uwZ#R?4=sN z>7X}Vr0CC+t{EPk&(>4A86(a;dY<`Ypj+Fs9Q^Uva{(+S#aJhXu9q7!Q0y?x`oo7S z2xSBS(^e8DnTe6!m*OGpNBM+&&=KtdO#_VOj62iqM4K}b`}*S|Ocyy6vC0B2n6P>q zGo17CU|+lzo;zq;Hk}v2@PI{h@Jgis9j*mMLfk}*_mCymqx>%y8HsDWYsNisE|nD0 zCEy=u^dAcKZ$*Rf3@8tezv_G?$f^g!cM{Y>sCcAIQ+z}=ybjEu#LgLGmKF94?T$rB6$lh7S zuLZ_LvV;qF@8jR3Pj_R3MqO*jwI1ac&W)yS>{ss(AF?QoK6qPUqZ0rjX?! zXy|dat=vRu>lGxE2viNa6OY4WZq&q>U>tr$j2ol&{8xC( ztBb+P{N9tq?TnHwnNpe6GreRf zAyMaDr%e~`p0L3uB1b31UP0XZpZJT+rRnW#8dE`PruPXi$R^MuH)@f?IK$~o4cWo$ zKSge`+9d|Z!r=`{JW)Ki^;50w4(bs@TW7}?d%K(t?D|c1k1@mzi(2zj`b?GOTgX)c z*=cxUfr=u9QgKO1inC9;(&+va0Gq_HnWwj7RNo{Zd1eo{3+offwv9??Ep6ygbO!%$ z@08l#wVHd3$JWjIdV-Bisdv8_nDyqb)3%K@cH7ec-}|5Gaae-&N186h995s3ahc5sFrqLwW zHa5`J)7970`*--?0jvl1gXCCMJLWi9kl>Z_531YU-PzIoARcim{_fCpkQkv41QG>h z&V)=sNFXN!fA6p4nctW=c~en7^?wo)lpsPd8CNCOnVXsr9fVl=Zw!J_kKpIb{Fxm2 zZYi3akbsLb5kz&fd4Nn@)t$(+dq1$ig;%J3}m>h&X~%g-JvqV@LJCs05s&+RPvAq4(X zo~N)DJN=l>FO`?1opUQjOk8ASEc-122Nti|F7h%c9~Svi`|*C*@9z(_d|vjBues9F z$!|}4MfXOi#<=uDN{t%Af+)sD_|7hoX<)NQW&r@U$~7K7^aU?nUT79*TSWe?fa8Rf zxq^AcRIZC~;Y8JJR!Re|xbjqBVdyXY!Eq4~UWp_nZArn|h`VWgk7dLPRVHE%rUojZ zCVGpDwID8vhnRSnUPdSil4yt{r+v9qz8Lfq?!Gy{u1Hd>aF;8+0gK#xtVjxZ(1=e> z)4@8N3XxWXIb&k$6ac{dA&?IM>tl#>+bI8`i@-O15xv=k?4+ZctCLn2cw)<5J(o>v z(`-5seHyvP9GZa5^sa+Mjaew-&>dp2Cw|zUC-h4P` z)FIq7H!>Zty7PMD&00eiRe}KqId|-YEKzrzfef!bdGSJ}U=z#wQkW!qKQ3fgC@C%# zHCoQcRZdD-JF@rJ%TSQ@1A({mLp2Jd+1gmlBhj8xB;U-jtiG>O;k2RyN~5dpMx{&z zgA4D$-M1>mJ-kPk8lsIa)FL-CC`o5n6r)sLXx0XTq`9>{m>T!%^UPIXT*OdV9`FH17 zL8uc9PHY?*`1Iu;o-WHNUi$`yatdVWduaGavlW{4LK)e?*G`qBY`>Uq7O!0}$-;2q z)De-v4KA1YFtvGw=5;FeM+GAS;@Z#V>#{#brtQldY{`3uv%G=Ju61(wD(h~5q2_Px zO-)SbxG!0J(yGW|7%7dN?Qh9Vx40(iXt$~Nc(+77o35*}UtA;;o>M{ocD%Z(J%P_; zF7oMmOVo{!q?+qwZLD!}x5Fp8OpLQ+x&CA0uHzoB`$sKaO<`U)H1OkK7CnvnaYA`TwUrq-IGFN^mrT8i z05)Bhk>COE@1|v@Ka#f;+jN9h^&8NZm*mg9JpzLc&9cohl8;}yRlicRU$^B+BkdEl z5?rfEsaAK%{d#@1%xyl_^ zJfAj<>BCZiZLOEI6KPPgXoXl-v`c0-0Mt_d`0^tk?`Cs=qZ*O@tH1qDW9IT?ZJ8R# z*dMof&NerpLWcZA|4@$xjDARNLnTfMDO`Hj!7WQYjf*Rd4<=^q&fWi zw=!?o3qN%TE2`;I?Ai7+)oIgvHqD1yzU3> zlh}mQk@>&V^x^0{4ZzPSV1%aIEgr3A;7cyk0% zsZTJ^=*IB)zTsi11dzPIodeF17aZ{pPPE4z!(DtOVbU9}1uOd@`6+arV9C^vLVqb( zshHZ6!y>vuIpJo5Iq-CeU@$sa)84&vHW78Ya-yU{RY**a{;f4%SqK<|ZMCWZdkn(~ zZ%l@cWpw$Z+A1W+K>yEb0QS|!aQQkARydES&JriI<$yGK?s4H#5G#swzmaE5l;Cbo zvHc_^@og1T5jLlX3s%1E%cE`wb}tman-XO^7OtChdcYrJkYycpOrRa0V_vbw}E2IeNvY@004b$FId_GPG&g$ErMOdSxj{ zwQ1K(tVYWwNvR^WNITYCq*ZhN;@?NN#A@i74dieCg8bU+n18)^O$7SFD1apxQS?!4$A46AEg zAri4>8CEn6)~;GYIsS+btG-`sx&xGesxoP2A{C0_UsWUHb5qDQb2P978z($ z9cgP=eNW1%&wYuy!XC08&3m5LWc3ESW#vQ93FX@CV||ibBw5>zh$gF=#cHdp2f>~*(H+E!2EK%M zjy^Q7fYFVD8~IV(;x_a-d*&xOuXe6z=$|Pt6uvs-SiVF#dvxOD_-vQ|yDY8gbojb( z`Yde=*)`hg*(XYYk%njY+tYP^^tDE)}|hEYg4006)V1^8q;?YF6}QH!DT{O zM>VWuIgd4O+q{Zta?o)bkY`&q>fzIiLbc_3)?>$J@zOtrXh_tAoTO5*RtP9vwnL;}n`?OW=aw70H8boG|%$5ef8?pR4l^-1jG z1q=FVob)L)Y1JXG8ri4{3MC~)k-fv@J7by$^Z59#+pz+@JxwG}b5}=s5fa zUd!3WYy}d9j2t(OO}lP)OwW@ckvDp8R8ODDaVO&eRIim=U>R%j<=zdCLloaYoFhz& w$I6SyHXbeFZZ%GYAhqF1Op~mH8{`Z57X1$U0IzUEIaxW|8gf7M?Eh2#2ec&u(EtDd literal 0 HcmV?d00001 diff --git a/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/S.mp3 b/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/S.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..10c399dc9b7da12dcbbb0176e52cc542702cb24e GIT binary patch literal 3178 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 U!PTkEJduPVJ0AZW%b(}+4_=13w*UYD literal 0 HcmV?d00001 diff --git a/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/U.mp3 b/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/U.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..2521c9650d83b59e487d4eeff91e96b4a366b313 GIT binary patch literal 3492 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 literal 0 HcmV?d00001 diff --git a/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/X.mp3 b/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/X.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..576910ea3c261f0dc0bc9e9a4df80d7e2bda72de GIT binary patch literal 3178 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 literal 0 HcmV?d00001 diff --git a/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/Y.mp3 b/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/Y.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..ef11d65a6d278075457a6f87ec0e79492ae7442e GIT binary patch literal 3492 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 literal 0 HcmV?d00001 diff --git a/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/Z.mp3 b/Fruit_Jam/Fruit_Jam_Spell_Jam/spell_jam_assets/letter_mp3s/Z.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..e3e95aa7f51b31e2af20c7b7ddf01ac701f45644 GIT binary patch literal 3335 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 BNpk=I literal 0 HcmV?d00001 From 52c757ac36ae46e4478254f1bfaacae11f56e74c Mon Sep 17 00:00:00 2001 From: foamyguy Date: Thu, 28 Aug 2025 15:28:43 -0500 Subject: [PATCH 2/2] remove lamda pylint exception --- Fruit_Jam/Fruit_Jam_Spell_Jam/hmac.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Fruit_Jam/Fruit_Jam_Spell_Jam/hmac.py b/Fruit_Jam/Fruit_Jam_Spell_Jam/hmac.py index ecb5e4e95..d1516d9a4 100644 --- a/Fruit_Jam/Fruit_Jam_Spell_Jam/hmac.py +++ b/Fruit_Jam/Fruit_Jam_Spell_Jam/hmac.py @@ -7,7 +7,7 @@ class HMAC: - # pylint: disable=protected-access, import-outside-toplevel,unnecessary-lambda-assignment + # pylint: disable=protected-access, import-outside-toplevel def __init__(self, key, msg=None, digestmod=None): if not isinstance(key, (bytes, bytearray)): raise TypeError("key: expected bytes/bytearray")