π
<-
Chat plein-écran
[^]

News 2024
Mai (3)
Avril (16)
Mars (7)
Janvier (20)

News 2023
Octobre (19)
Août (14)
Juillet (13)
Juin (21)
Mai (29)
Avril (24)
Mars (24)
Janvier (24)

News 2022
Octobre (23)
Août (14)
Juillet (15)
Juin (17)
Mai (31)
Avril (27)
Mars (28)
Janvier (34)

News 2021
Octobre (24)
Août (37)
Juillet (50)
Juin (32)
Mai (48)
Avril (61)
Mars (35)
Janvier (34)

News 2020
Octobre (17)
Août (43)
Juillet (43)
Juin (45)
Mai (60)
Avril (78)
Mars (36)
Janvier (39)

News 2019
Octobre (13)
Août (18)
Juillet (23)
Juin (28)
Mai (31)
Avril (26)
Mars (38)
Janvier (37)

News 2018
Octobre (13)
Août (32)
Juillet (23)
Juin (64)
Mai (63)
Avril (45)
Mars (43)
Janvier (45)

News 2017
Octobre (26)
Août (39)
Juillet (52)
Juin (88)
Mai (51)
Avril (43)
Mars (37)
Janvier (33)

News 2016
Octobre (25)
Août (42)
Juillet (34)
Juin (109)
Mai (55)
Avril (34)
Mars (37)
Janvier (24)

News 2015
Octobre (22)
Août (56)
Juillet (22)
Juin (94)
Mai (56)
Avril (32)
Mars (40)
Janvier (21)

News 2014
Octobre (26)
Août (18)
Juillet (23)
Juin (101)
Mai (57)
Avril (59)
Mars (54)
Janvier (31)

News 2013
Octobre (67)
Août (50)
Juillet (43)
Juin (193)
Mai (93)
Avril (102)
Mars (45)
Janvier (50)

News 2012
Octobre (64)
Août (63)
Juillet (53)
Juin (132)
Mai (88)
Avril (73)
Mars (57)
Janvier (58)

News 2011
Octobre (56)
Août (31)
Juillet (27)
Juin (71)
Mai (61)
Avril (32)
Mars (36)
Janvier (24)

News 2010
Octobre (11)
Août (8)
Juillet (14)
Juin (10)
Mai (3)
Avril (3)
Mars (1)

News 2009
Août (3)
Juin (2)
Mai (1)
Avril (2)
Mars (1)

TI-84 translucide avec éclairage écran par BigMC-OG

Nouveau messagede critor » 24 Jan 2022, 09:36

Texas Instruments a un temps produit des calculatrices graphiques translucides permettant plus ou moins de voir l'intérieur sans avoir à les ouvrir. À la fois une réussite esthétique et un bijou pour les esprits les plus curieux. On peut citer en ce sens la très éphémère TI-83 Plus Silver Edition sortie pour la rentrée 2001. :favorite:
Il s'agissait d'une version avancée de la TI-83 Plus de la rentrée 1999, avec :
  • processeur qui passe de 6 MHz à 15 MHz
  • puce Flash qui passe de 512 Kio à 2 Mio
  • dont la mémoire de stockage qui passe de 160 Kio à 1,5 Mio
  • mémoire RAM qui passe de 32 Kio à 128 Kio
872Hélas la superbe TI-83 Plus Silver Edition fut arrêtée dès la rentrée 2004 afin de faire de la place pour la sortie des TI-84 Plus et TI-84 Plus Silver Edition. Et ici pas de boîtier translucide, même la version Silver Edition ne s'habillant que de tons de gris totalement opaques.


Toutefois, pour la rentrée 2008 an Amérique du Nord, la chaîne de grande distribution Wal-Mart a commercialisé une édition limitée translucide de la TI-84 Plus, devenue absolument collector de nos jours.

6538Sur un autre sujet, quand on est habitué aux calculatrices TI-82/83/84 monochromes, on ne peut que tomber amoureux de l'écran éclairé des Casio Graph 75/95 sorties pour la rentrée 2009, une capacité reprise pour la Graph 75+E de la rentrée 2015. :favorite:
Hélas la Graph 75+E fut arrêtée pour la rentrée 2017. L'actuelle Graph 35+E II sortie pour la rentrée 2019 qui en reprend et fait évoluer le matériel, n'a hélas pas retenu cette capacité.


151311513015129Et bien aujourd'hui BigMC-OG te propose de fusionner le meilleur des deux mondes ! :favorite:

Il a en effet modifié sa version translucide collector de la TI-84 Plus, afin de lui rajouter un éclairage de l'écran. Une modification très bien réussie permettant une lisibilité remarquable, et qui est ici du plus bel effet avec le boîtier translucide !

Rappelons que ta TI-82 Advanced monochrome utilise le même boîtier, et que tu peux donc toi aussi t'amuser à l'améliorer de façon similaire. Nous avons hâte de voir ça... ;)

Crédits images :
Lien vers le sujet sur le forum: TI-84 translucide avec éclairage écran par BigMC-OG (Commentaires: 4)

Nouvel emballage carton TI-Nspire CX II-T CAS pour l'Europe

Nouveau messagede critor » 24 Jan 2022, 13:36

14115Comme nous te l'avons déjà annoncé pour cette année scolaire 2021-2022, l'ensemble de la gamme Texas Instruments passe progressivement aux emballages carton. Fini les emballages historiques à coque blister rigide très difficiles à ouvrir proprement, quasiment impossibles à réutiliser une fois ouverts, pénibles et encombrants à ranger, et n'ayant donc dans la plupart des cas que la poubelle comme seule destination possible après ouverture ! :bj:

À ce sujet nous t'avons déjà présenté les nouveaux emballages :
150591399414124

1412014117Pour cette année 2021-2022 tu peux donc encore te retrouver en rayon avec un même modèle de calculatrice à la fois sous emballage carton et blister, exactement au même prix puisque utilisant le même code barre.

Rappelons que pour les TI-83 Premium CE Edition Python il est dans ton intérêt de choisir l'emballage carton, et pas seulement pour l'écologie et la planète.

En effet, grande nouveauté de la rentrée 2021, pour le même prix le nouvel emballage carton a l'avantage exclusif d'intégrer également le logiciel d'émulation sous la forme d'une licence d'utilisation de 3 ans, ce qui n'est pas le cas des anciens emballages blister. :#non#:

Aujourd'hui, Adriweb vient enfin de nous dénicher des images du nouvel emballage carton TI-Nspire CX II-T CAS.

Ici il s'agit d'un modèle distribué dans l'ensemble de l'Europe et son emballage non spécifique à la France est visiblement unique, Texas Instruments ayant en effet fait le choix du multilingue. On ne manque apparemment pas de polyglottes chez Texas Instruments, pas moins de 8 lignes avec dans l'ordre :
  • Allemand
  • Finlandais
  • Suédois
  • Italien
  • Anglais
  • Français
  • Espagnol
  • Néerlandais
Le dos de l'emballage met en avant les fonctionnalités du logiciel de Mathématiques intégré TI-Nspire et entre autres son langage de programmation Python, à ce jour hélas sans aucune concurrence sérieuse parmi le haut de gamme.

Source : viewtopic.php?f=49&t=25097&p=266147#p266147
Lien vers le sujet sur le forum: Nouvel emballage carton TI-Nspire CX II-T CAS pour l'Europe (Commentaires: 4)

Crafti, clone Minecraft TI-Nspire, porté sur Nintendo 64

Nouveau messagede critor » 25 Jan 2022, 10:25

Depuis plusieurs années, Vogtinator est le principal dévelopeur de Ndless, le jailbreak te permettant de lancer du code machine tiers sur les TI-Nspire.

Pour la rentrée 2015 justement Vogtinator t'avait sorti Crafti, un très impressionnant clone de Minecraft pour les TI-Nspire capables d'exploiter le jailbreak Ndless.

Te souviens-tu également de notre cher et très prolifique gameblabla ? Il t'avait porté des émulateurs de consoles de jeux par 10aines pour TI-Nspire CX et Ndless, t'ouvrant ainsi la porte à plusieurs milliers de jeux sur ta calculatrice ! :favorite:

De façon générale, nombre de jeux pour nos calculatrices sont des adaptations ou portages de jeux sortis pour ordinateurs et consoles plusieurs années auparavant.

En janvier 2017, gameblabla innovait en nous emmenant hors des sentiers battus, réalisant en effet exactement le contraire : des portages de Crafti pour la console de jeux Sega Dreamcast, ainsi que pour les bornes d'arcade Sega Naomi car utilisant un matériel très similaire.

En ce mois de janvier 2021 pour fêter les 4 ans de son exploit, gameblabla récidive. Comme nous t'en informions déjà dans deux actualités précédentes, il vient en effet de réaliser de nouveaux portages de Crafti pour les consoles de jeux Microsoft Xbox et Sony Playstation 2.

Et bien ce n'est pas fini. Aujourd'hui gameblabla multirécidive, nous signant cette fois-ci un portage de Crafti pour la console de jeux Nintendo 64 ! :D

Ndless ayant hélas visiblement cessé d'être adapté aux nouvelles mises à jour TI-Nspire CX depuis bientôt une année, retrouve donc maintenant également sur ta Nintendo 64 les meilleurs délices des TI-Nspire CX Ndlessées :

Téléchargements :
Lien vers le sujet sur le forum: Crafti, clone Minecraft TI-Nspire, porté sur Nintendo 64 (Commentaires: 0)

CEleste classic/Pico-8, porté sur ta TI-83 Premium CE

Nouveau messagede critor » 25 Jan 2022, 21:02

1146310913Nombre de jeux sortant pour smartphones, tablettes, ordinateurs et consoles de jeux, se retrouvent plusieurs années plus tard disponibles sur calculatrices graphiques.

Parlons aujourd'hui TI-83 Premium CE (ou TI-84 Plus CE pour nos lecteurs internationaux).

La calculatrice permet de jouer directement à l'ensemble des jeux compatibles avec la console Nintendo Game Boy monochrome (1989), grâce à l'émulateur dédié TI-Boy CE par calc84maniac.

Pour les consoles de jeux et plus généralement plateformes ne disposant pas encore d'un émulateur dédié sur TI-83 Premium CE, les jeux doivent être adaptés au cas par cas. Parmi ces adaptations souvent très réussies de jeux sortis pour d'autres plateformes, on peut citer de façon absolument pas exhaustive :
  • Spaze Invaders (d'après Space Invaders sur bornes d'arcade - 1978)
  • PacMan CE (d'après le jeu sur bornes d'arcade - 1980)
  • Donkey Kong CE (d'après le jeu sur bornes d'arcade - 1981)
  • Tetric A (d'après Tetris - 1984)
  • Androides (d'après le jeu sur microordinateurs Thomson - 1985)
  • Crystann (d'après le jeu sur microordinateurs Thomson - 1985)
  • Snail Maze (d'après le jeu sur console Sega Master System - 1986)
  • CMonster (d'après Arkanoid sur bornes d'arcade - 1986)
  • Oiram CE (d'après Super Mario Bros 3 sur console Nintendo NES - 1988)
  • Mario Kart CE (d'après le jeu sur console Nintendo Super NES - 1992)
  • Portal Returns CE (d'après Portal - 2007)
  • Billy Box (d'après le jeu sur microordinateurs Thomson - 2010)
  • Flappy Bird (d'après le jeu mobile - 2013)
  • Geometry Dash CE (d'après le jeu mobile - 2013)
659753328548589762226264632965687698137475329656668887581

Il existe même des consoles de jeux sans aucun émulateur associé, parmi elles les plus récentes ou encore les plus exotiques à la diffusion confidentielle.

Mais inversement, savais-tu qu'il existait également des émulateurs sans console associée ? ;)

La Pico-8 par exemple, à ne surtout pas confondre avec la console Sega Pico, est une console de jeux rétro imaginaire. C'est-à-dire qu'elle est initialement sortie sous la forme d'un émulateur. Il s'agit donc à l'origine d'une machine virtuelle pouvant être installée sur nombre de plateformes, avec ses propres limitations censées stimuler le développement de jeux.

Ecran de 128×128 pixels en 16 couleurs, voilà qui est largement dans les capacités de nos calculatrices, n'est-ce pas ?... ;)

15132Et bien justement, aujourd'hui voici donc CEleste, l'un des jeux de plateformes les plus emblématiques de la Pico-8, initialement dévelopé par Noel Berry et Maddy Thorson lors d'une game jam de 4 jours en 2015, enfin porté pour TI-83 Premium CE et TI-84 Plus CE ! :bj:

Une performance absolument remarquable par commandblockguy, le jeu tournant à près de 30fps sans avoir à rien sacrifier de l'original, même pas le fond d'écran animé ! :bj:

Tu y incarnes donc Madeline, une jeune femme souhaitant gravir le Mont Celeste, une montagne de 2041 mètres située sur l'Île de Vancouver dans l'ouest canadien. À la différence qu'ici la montagne fait 3100 mètres, et que ton ascension sera ainsi découpée en 32 tableaux très exigeants de 100 mètres de dénivelé chacun. Mais pas de game over à craindre ici, chaque chute te ramenant simplement au début du tableau en cours.

Madeline peut donc sauter (touche
2nde
)
y compris sur les murs verticaux et possède une autre capacité spéciale : une fois en l'air elle peut effectuer un dash (touche
alpha
)
dans l'une des 8 directions à indiquer avec les 4 touches fléchées, de quoi gagner en vitesse et atteindre des zones non accessibles avec un saut normal. Au début du jeu ce mouvement remaquable ne peut être effectué qu'une seule fois par saut ; Madeline aura besoin d'atterrir au sol pour recharger cette capacité, sauf à trouver des cristaux verts flottants qui permettront directement de le faire en vol.

Attention, CEleste rentre dans la catégorie des programmes en langage machine dits ASM.

Or, suite à un acte irresponsable d'un enseignant de Mathématiques français avec ses gesticulations aveugles dans le contexte de la réforme du lycée, Texas Instruments a réagi en supprimant la gestion de tels programmes depuis la mise à jour 5.5.1.

Si tu es sur une des versions ainsi bridées, tu peux quand même jouer sans trop d'efforts. Il te faut :
  1. installer arTIfiCE pour remettre la possibilité de lancer des programmes ASM
  2. ensuite de préférence installer Cesium pour pouvoir lancer les programmes ASM plus facilement, ou même AsmHook pour pouvoir les lancer comme avant
  3. installer les bibliothèques C nécessaires au fonctionnement de certains jeux dont celui-ci (mais rien de compliqué, juste à transférer le fichier et c'est tout)

Téléchargements :
Code source : https://github.com/commandblockguy/CEleste
Lien vers le sujet sur le forum: CEleste classic/Pico-8, porté sur ta TI-83 Premium CE (Commentaires: 0)

Mise à jour img2calc Python: miroir + optimisations palette

Nouveau messagede critor » 26 Jan 2022, 17:45

13917Dans une série d'articles précédents nous te présentions img2calc, notre service en ligne gratuit sur TI-Planet te permettant de convertir facilement tes images pour tes projets sur calculatrices.

Un large choix de formats cible t'était proposé :
  • fichiers à appeler depuis tes programmes en langage Basic :
    • .g3p pour Casio Graph 90+E et fx-CG50/20/10
    • .c2p pour Casio fx-CP400 et fx-CG500
    • .8ca ou .8ci pour TI-83 Premium CE, TI-84 Plus CE et TI-84 Plus C Silver Edition
    • .8xi pour les TI-83 Plus (compatible TI-82 Advanced, TI-82 Plus et TI-84 Plus monochromes),
    • .83i pour les TI-83 (compatible TI-82 Stats et TI-76.fr)
    • .82i pour les autres TI-82
    • .86i pour les TI-86
    • .85i pour les TI-85
    • .73i pour les TI-73
  • fichiers à appeler depuis tes scripts en langage Python :
    • IM8C.8xv pour les éditions Python des TI-83 Premium CE et TI-84 Plus CE
  • scripts Python pour les différentes bibliothèques graphiques des calculatrices :
    • ti_draw (TI-Nspire CX II)
    • graphic (TI-Nspire CX II avec KhiCAS, TI-Nspire CX avec KhiCAS et NumWorks avec KhiCAS)
    • nsp (TI-Nspire avec Micropython)
    • ti_graphics (TI-83 Premium CE et TI-84 Plus CE éditions Python)
    • casioplot (Casio Graph 90/35+E II, fx-9750/9860GIII et fx-CG50)
    • hpprime (HP Prime)
    • kandinsky (NumWorks)
Après plusieurs semaines de bêta-test privé par Afyu, cent20 et redgl0w, aujourd'hui img2calc bénéficie d'une mise à jour apportant plusieurs améliorations à ce dernier point, soit les images converties en scripts Python pour ta calculatrice. Découvrons-les ensemble








1) Retournement horizontal/vertical

Go to top

Prenons comme exemple le sprite ci-contre à convertir en un script Python pour affichage sur nos calculatrices.

Le script obtenu te fournissait une fonction d'affichage d'image draw_image(rle, x0, y0, w, pal, zoomx, zoomy, itransp), avec :
  • rle : les données de l'image selon une compression RLE, incluses dans le script obtenu
  • x0, y0 : les coordonnées où positionner le coin supérieur gauche de l'image lors de l'affichage
  • w : la largeur de l'image originale
  • pal : la palette de couleurs à utiliser, également incluse dans le script obtenu
  • zoomx, zoomy : les coefficients de zoom horizontaux et verticaux éventuels pour l'affichage, ou 1 par défaut pour une absence de zoom
  • itransp : l'index d'une éventuelle couleur transparente dans la palette, ou -1 par défaut pour aucune transparence

Et bien nouveauté, la fonction draw_image() accepte maintenant des paramètres de zoom négatifs pour indiquer un retournement horizontal et/ou vertical.

Il t'est donc maintenant possible de retourner l'image horizontalement et/ou verticalement lors de l'affichage, y compris avec un zoom comme illustré ci-contre.
Code: Tout sélectionner
#palette for your image
#18 RGB-888 colors
palette = (
(0,0,0),(32,32,32),(80,144,0),(120,180,24),(248,120,0),(240,160,104),(232,96,176),(184,104,24),(248,252,248),(48,52,48),(64,216,112),(48,144,104),(136,88,32),(32,32,200),(224,144,80),(128,128,240),(240,216,64),(192,16,24),
)

#your image data
#16x22 RLE-5 pixels
image = (
b"\xa0\1\xe1\0\xc0\2\1\"\3\2!\xe0\1\1\"\xe3\0\2\1\xe0\0\1\0!\4\"\3\2\4\1\2!\0\1\5\1\6!\xe4\0!\2\1\5!\5\1F\xe1\0&!\5!\a\5\1\xe6\1\1\5\a!\a\1\6\xe1\1\6\1\a\1\0\1\a\1\a('(\a\1\a\1@\1'\b\1%\1\b'\1\xe0\0!\a\5\1%\1\5\a!@\t\n\v\1\a\tE\a\1\v\n\1\0\t\b\xe9\0\b\t\a"
b"!+\1\f\1\t\xa8\1\t\1\v\n\v\1,\1\t\b\xed\0\b\tJ\v!\16\1\t\b\r/\r\b\t\nK\1.\1\t\b\r/\r\b\t\20\x010\v\1\16\1\t\b\r/\r\b\t0+A \t\b-\b\tK!\21\1\xe0\0\t(\t\xe1\0\21\4!\x80\1)\xe1\1\xe0\1\xa1\1\x80\1"
)

l = (
  (0,0,4,4),
  (64,0,3,3),
  (64,66,3,1),
  (112,0,2,3),
  (112,66,2,1),
  (144,0,1,3),
  (144,66,1,1),
)
for v in l:
  for ky in (-1, 1):
    for kx in (-1, 1):
      draw_image(image, 160 + v[0]*kx, 96 + v[1]*ky, 16, palette, zoomx=v[2]*kx, zoomy=v[3]*ky, itransp=0)

La fonction draw_image() affiche l'image en coloriant un rectangle pour chaque élément RLE. Cela a l'avantage d'être particulièrement rapide lorsque la bibliothèque graphique de la plateforme fournit une méthode optimisée en ce sens.
À ce jour le retournement est fonctionnel sur 4 des plateformes gérées par img2calc :
  • NumWorks où la méthode kandinsky.fill_rect(x, y, largeur, hauteur, couleur) a l'excellente idée d'accepter directement des paramètres de largeur et hauteur négatifs et d'effectuer directement le retournement adéquat
  • KhiCAS (éditions NumWorks et TI-Nspire CX), même avantage avec la méthode graphic.fill_rect()
  • Casio Graph 90+E et Graph 35+E II, la bibliothèque graphique casioplot ne fournit pas de méthode optimisée pour colorier un rectangle, mais la boucle d'allumage de pixels alors générée pour le script converti gère directement les retournements
  • Micropython pour TI-Nspire, pour la même raison avec la bibliothèque graphique nsp


La HP Prime avec la bibliothèque hpprime ne trace hélas rien si on lui demande de colorier un rectangle avec une largeur ou hauteur négative.

La TI-Nspire CX II pour sa part génère dans ce cas une exception, suggérant donc qu'il n'est hélas pas dans les projets de Texas Instruments de supporter ce cas.

1513315134Les TI-83 Premium CE Edition Python, TI-84 Plus CE-T Python et TI-84 Plus CE Python quant à elles génèrent une exception si tu fais appel à la méthode .fill_rect() de la bibliothèque interface ti_draw. Pire, si tu fais directement appel à la méthode .fillRect() de la bibliothèque graphique ti_graphics, là tu obtiens un affichage incorrect avec un blocage (boucle infinie).

Nous verrons pour une prochaine mise à jour d'img2calc si nous injectons de quoi contourner les limitations de ces plateformes.




2) Optimisation palette : couleurs hexadécimales

Go to top

Rappelons que les interpréteurs Python sur nos calculatrices font appel à 3 types de mémoires :
  • La mémoire de stockage qui comme son nom l'indique stocke physiquement tes fichiers de scripts Python.
  • La pile (stack) qui référence, à l'exécution, les objets Python créés par tes scripts. Sa capacité limite donc le nombre d'objets Python pouvant coexister simultanément en mémoire.
  • Le tas (heap) qui reçoit, à l'exécution, le contenu des objets Python créés. Il limite donc la taille globale utilisée pour les données de ces différents objets.

Voici quelques indications de consommations heap valides pour les plateformes 32 bits que sont à ce jour nos calculatrices :
  • pour un entier : 24 octets de base + 4 octets si non nul + 4 octets pour chaque groupe de 30 bits utilisés au-delà des premiers 31 bits dans sa représentation binaire
  • pour une liste : 56 octets de base + 8 octets par élément + les tailles de chaque élément
  • pour un tuple : 40 octets de base + 8 octets par élément + les tailles de chaque élément
  • pour une chaîne : 49 octets de base + 1 octet par caractère
  • pour un tableau d'octets (bytes) : 33 octets de base + 1 octet par octet
Comme tu peux le constater le langage Python a le très gros défaut d'être un énorme consommateur de heap, mémoire qui sera bien souvent le facteur le plus limitant pour tes projets sur calculatrices. Rappelons les plus mauvais modèles sur ce critère :
  • NumWorks avec seulement 32,5 Ko de heap si ta machine est verrouillée sur le firmware officiel
  • éditions Python des TI-83 Premium CE et TI-84 Plus CE avec encore pire 19,7 Ko de heap
La NumWorks cumule les inconvénients avec de plus une mémoire de stockage de seulement 32 Kio si ta machine est verrouillée sur le firmware officiel.

Comme déjà expliqué, img2calc a justement été conçu pour minimiser la consommation de heap. Pour cela img2calc mutualise deux approches :
  • La compression de ton image au format RLE.
  • Le compactage des données, avec l'utilisation des types d'objets Python les moins gourmands en mémoire :
    • des tuples pour la palette de couleurs
    • des bytes pour les données de la compression RLE (type d'objet Python s'utilisant comme une chaîne de caractères mais optimisé pour le stockage d'octets)
Lors de la dernière mise à jour, nous optimisions l'écriture des données RLE afin d'économiser la mémoire de stockage.

Aujourd'hui, intéressons-nous à la palette de couleurs avec l'image ci-contre.

Jusqu'à présent, img2calc te générait ce genre de script :
Code: Tout sélectionner
#palette for your image
#12 RGB-888 colors
palette = (
(0,0,0),(104,40,120),(136,112,80),(80,192,0),(248,132,24),(160,168,160),(248,252,0),(0,252,248),(248,0,0),(248,252,248),(248,172,176),(0,0,248),
)

#your image data
#160x154 RLE-4 pixels
image = (
b'P\x81\1P\x81\6\xf0\0\1\0\1\20\1\x90\3QP\2\23\1\0\21\xa0\1\xf1\0\0\1\xf0\0\x110\xb2\1\4\2\0\2\1\x92\6`\2\0\5\20\2\1\2\20\5\1 \1\xf0\1b \2\0\4\26\4\0\27\0\xf8\0\20\xf1\0\0\27`\22P\2\4\x92\1\4\2\20\1\xf2\5\x80\1\22\0\1\22\20\25\2@\2\20\2\0\xf2\0\0b \2\0\6'
b'\31\6\0\27\xb0\2\27\0\5\27\5\20\22\xf0\0\2\4\x92\1\4\2\20\xe2\5\xb0\1\2\20\5\2\25\0\x020\2\20\2\0\xf2\0\0b \2\0\6\31\6\0\27\0\x85\1\0\xf8\0\0\27\0\a\31\a\20\22\xa0\1\4\x82\1\24\2\0\1\xc2\5P\22\20\22\5\2\0\1\5\22\0\x020\2\0\22\0\xf2\0\0b \2\0\n\26\n\0\27'
b'\0\25G\25\0\bJ\4\b\0\27\0\a\31\a\20\22\xb0\1\2\4\x82\1\24\2\0\1\xa2\5@\2%\x025B\1\0\22\20\1"\0\xf2\0\0b \2P\27\0\25\27\31\a\25\0\bZ\b\0\27\0\5\27\5\20\22\xe0\1\1\x92\1\0\1\0\x92\5@\2%\x025"\5\1\5\21\5 "\1\xf2\0\0b \2\x001\0\27\0\25\a\t\'\25\0\bZ\b\0\27'
b'\x001\20\22\xf0\1\x92\1\4\2\20\21\xe2\4@\1\2\25\2\5\22\1\5"\0\5\21\2\5 \xa2\1\0b \2\0\'\5\0\27\0\25\a\t\'\25\0\bZ\b\0\27`\22\24\xf0\1\2\4\xf2\0\24 \1\xc2\4`\1" \25\2\20\5\0\22\25\20\xa2\1\0b \2\0\a\31\a\0\27\0\25\27\31\a\25\0\bZ\b\0\27\0\n\26\n\20B\24\2'
b'\xe0\1\4\x82\1\4\2\20\xb2\4\xf0\0\5\2 \2\25\22\25\0\2%\20\xa2\1\0b \2\0\a\31\a\0\27\0\25\a\t\'\25\0\bZ\b\0\27\0\6\31\6\20\xf2\0\24\xe0\1\4\xf2\0\24\2\0\1\x92\4P5\2\25\2\5\0R% \x1252\0b \2\0\5\27\x050\25G\25\0\bZ\20\27\0\6\31\6\20\xa2\1\24\xe0\1\xf2\0\24'
b'\2\0\1\xf2\3P\5\2\25\2\25\2\0\2\1\2\0"\5\2\5\2\xc0\1b \2P\27\1\0\1\x057\25\0\b:\30@\n\26\n\20\xe2\1\xd0\1\1\x82\1\0\1\0\xe2\3P\2\1"\5\22\x010"\5\2\25\x010Q\20b \2\0\2\23\1\0\'\1\0\x017\25\0\b*\b \21\20\2\23\1\20\xf2\1\4\xc0\1\22\1R\4\2\20\21\xb2\3\x80\1'
b'\1\22\1\x020b\x150b\0b \2\0\4\26\4\0G\0\5\'\25\0\b\32\b\20\x017`\x82\2\24\xd0\1\4b\4\2 \1\x92\3`\2\0\2\5\0\2@b\5" R\0b \2\0\6\31\6\0W\0\1\5\a\25\0\b\n\b\0\1W\0\5\27\5\20\22\0\24\xc2\1\4\xf0\1\24R\24\2\20\x82\3`\5 \1P25\2\5\2\5 B\0b \2\0\6\31\6\0W\1\0\1%'
b'\0\30\20g\0\a\31\a\20\22\4 \24\x92\1\4\xa0\2b\24\2\0\1\xe2\2\xf0\0"PB\25\0\22\5\x1202\0b \2\0\n\26\n\0\xf7\0\0\1\25\0\b\20\xf7\0\0\a\31\a\x102$ \24R\4\0\xf2\0\4\xa0\1\4R\24\2\0\1\xc2\2P\2\x90\1\22\5\2\0\25\0\22\25\2\1 \1"\0b \2P\x87\1\1P\xf7\0\0\5\27\5'
b'\20b\20\2\4\0R\4\0\xf1\0\4\22\x90\1\x82\1\0\1\0\xb2\2P\5\x90\1\22\25\0\5\0"\25\x120"\0b \2\x001\0W!@\2\0\1g\x001\20\x92\1\4\20\4B\x80\1\4"\4\x80\1\22\1B\4\2\20\1\x92\2P\5\x90\1\2%\0\1\0\x125\22\x102\0b \2\0\'\5\0\'\21P(\4\b\0a`\xb2\1\24 \4\x90\1\4B\24'
b'\x80\1\24B\4\2\20\1\xf2\1@\22\1\x80\1\2%\2\20\22%"\x102\0b \2\0\a\31\a\0\27\1\20\2D \30\x80\1\n\26\n\20\xe2\1\24\2\x90\1\4\x82\1\x80\1\2\4B\4\2 \xd2\1@\5\2@\22\1\20\2% \x025"\x102\0b \2\0\a\31\a\0\a\1\0\2\24\26\t\26\4\6\2P\5\27\5\0\6\31\6\20\xf2\1\4\xa0'
b'\1\4\x82\1\24\x90\1\x042$\2\0\1\xb2\1@\22 B\20\2\25\2 \2%\2\0\22`b \2\0\5\27\5 \x146\t6\4\0\n\26\4\0\a\31\a\0\6\31\6\20\xf2\1\4\xa0\1\24\xa2\1\24\xf0\0\2\4B\24\2\0\1\x92\x010\25\2\20b\0\2\25\2 \2\25\2\0\22\1\x102\0b \2P\24\6\t\6\31\6\24@\6\31\6\0\a\31\a'
b'\0\n\26\n\20\xf2\1\4\xd0\1\1\xc2\1\x80\1\1R\0\1\0\x82\x010\25\2\20b\0\2\25\22\x102\0\22 2\0b \2\0\2\23\1\0\4\5\6\t\6\t\n\4\2\x001\0\6\31\6\x007\0\2\23\1\20\xf2\1\4\xe0\1\4\xa2\1\24\x80\1\2\x012\4\2\20\1b0\25\2\0\xf2\0\0\2\25\22\20\1\22\20\22\20B\0b \2\0'
b'\4\26\4\0\4\t&\22 \'\5\0\6\t\n\6\0\1\27\1`\22\20Db\4\0\xa2\x014\x104R\4\xa0\1\x142\4\2\20\1B0"\0b\20\2\25\2@\2\0\5\22\20B\0b \2\0\6\31\6\0\4\31$0\a\31\a\0\n\26\2@\1\xa2\x0104"\4\xb0\1\x042$\20$"\4\xd0\1\4"\24\2\x102 \25\22\0R\1\x102P\2\25\2 2\0b \2\0\6'
b'\31\6\0$\2\0\n\26\n\0\a\31\1@\xd2\2 \22\24\xb0\1\4b$ $\0R\24`\24\22\24\2\20\22\0\5\0\25\22\0R\20%\22@B 2\0b \2\0\n\26\n\0\4\2 \6\31\6\0\5\27\20\xc2\3\xf0\1\4\x92\x014\x80\1\4\22\24`\x042\0B\25\22\0B\0\1\0B0R\1\20\1"\0b \2\xa0\1\6\31\6@\xe2\3\1\xd0\1\4'
b'\xd2\1\x80\1\4RP\1\2\24\0"\1\2\0\5\1\2\x001\20\2\21\2\1\x120!20\1\2\0b \2\x001\x001\0\4\n\6\4\20\21\xb2\1\xf1\0\xc2\1\4\xc0\1\4\xe2\1\xf0\0\4R\4P"\0\22\20\1\0\2\0\2`\2\20\2\0\22`\2\21\x120\2\0b \2\0\'\5\0\'\5\0$\5\1\xa2\1!\x80\1\xc2\1\4\0\xb2\x014\xa2\1'
b'\4\xf0\x0042\24\xf0\0\x120\2\0b\0\2\20\2\0\22\0\1"% \x020\2\0b \2\0\a\31\a\0\a\31\a\0\2\20\xa2\1\xd0\1\xc2\1\4\x80\x024b\4\0b\24\20$\22\4P2\0\x82\x035\2\xf0\0b \2\0\a\31\a\0\a\31 \x82\1\1\x80\1\t\x050\25\xc2\1\4\xd0\x01204\22\4\xf0\0\4\22$\20\4\2P2\0R@'
b'\22\0\2@BU\x010\2\0b \2\0\5\27\5\0\5\a\20\x92\1`\x82\3\4\0\xa2\1\20\x82\x010\4\2\xf0\0\4R\24`2\0\x120\1\0\2\20R \2\20\1\2\5\0E0\2\0b \2\xf0\0\1\xf2\0P\5\0\5\0\5\20\25\0\5\0\5\0\5\0\xc2\1\4\0\xa2\1\20\x82\x011\4\x80\1\4b\4`2\0B\0!\2\1b\1\20\22\0\21\20E '
b'\2\0b \2\0\2\23\1\20\xf2\0\1`\5\0\5\0\5\20\25\0\5\0\5\0\5\0\xc2\1\4\0\x91\1\2\20\xc2\1\4\x80\1\4b\4`2\0\2E \x92\1\1\0%\1\25\20\2% \2\0b \2\0\4\26\2\1\xf2\0P\25\1\5\1\5\1\5\0\1\25\1\5\1\5\1\5\0\xc2\1\4\xa0\1\2\20\xc2\1\4\0\xf2\0D"\4`2\0\2\25"\5\20\x82\1'
b'\x112%0\25 \2\0b \2\0\6\t\2\1b\1@\xc5\2\xc2\1\4\xa0\1\2\20\xc2\1\4\xd0\1\2$`2\0\2\5\2%\2\5\20b\1\0\22\25\2%\0\2\1\20\2 \2\0b \2\0\6\5\0b\x010\xb2\4\4\xf0\0\2\20\2\20\xc2\1\4\0\xf2\0\0" \22`2\0\2\5"\5\2\5\2\20R\20\2e\0\22P\2\0b \2\0\n\0b@\4@\4\0\4\0\4@\4'
b'\0\4\0\4 \xc2\1\x040\1\0\1\0\4\20\2\20\xc2\1\4\xf0\0\2\0R\4\xf0\x002\0\2\25\22\25\2\0\2\0\x012\20\22e\0\22\1 "\0b \2\20b@\2\0\22\5\x020\2\0\22\5\x020\2\0\22\5\xc2\1\x040\1\0\1\0\4\20\2\20\xc2\1\4\xf0\0\2\0R\4\xf0\x002\0\1E\2\1\0\5\x102\0\1\2\1"%\0"0"\0b'
b' \2\0\1R \1\5\1\5\0\1\2\x050\1\5\0\1\2\x050\1\5\0\1\2\5\xc2\1\x040\1\0\1\0\4\20\2\20\xc2\1\4\xf0\0\2\0R\4\xf0\x002\20\1%@\5\20\22\0\1\22\x102\21\22@!\0b \2\1R \2\25\2\5\20\1 \2\0\2\5\20\1 \2\0\2\5\20\1\0\xc2\1\x040\1\0\1\0\4\20\2\20\xc2\1\4\20\2@\2\0R\4'
b'\xf0\x002`\22 \5\0\22\x002\1\0\1\2\21\2\1\x90\1b R\1 \2\5"\5P\2\0\2\5P\2\0\2\x050\xc2\1\x040\1\0\1\0\4\20\2\20\xc2\1\4\20\2\0\24\2\0\2\0R\4\xf0\x002@\2\0\22\x010\22\0"\1\0\1 \2\1\20\xf2\0\0b B\x010\5\22\4\2\5P\2\0\2\5P\2\0\2\x050\xc2\1\x040\1\0\1\0\4\20'
b'\2\20\xc2\1\4\20\2\0$\0\2\0R\4\xf0\x002@\2\0R\20\x012\0"\5\22 2\5"\0b B \x052\4\2\5P\2\0\2\5P\2\0\2\x050\xc2\1\x040\1\0\1\0\4\20\2\20\xc2\1\4\20\2\0$\0\2\0R\4\xf0\x002@\2\0\2\xd0\1%\22 2\5"\0b 2 \5\22\24\2\4\2\5P\2\0\2\5P\2\0\2\x050\xc2\1\x040\1\0\x010'
b'\2\20\xc2\1\4\20\2\0$\0\2\0R\4\xf0\x002\x80\1!\x92\x015\22\x102\5"\0b "02\4\2\4\2\5P\2\0\2\5P\2\0\2\x050\xc2\1\4\xa0\1\2\20\xc2\1\4\20\2\0$\0\2\0R\4\xf0\x002`\1\22\21\xe5\1\2 "\5"\0b "\20\1\22\24\2\4\2\4\2\5P\2\0\2\5P\2\0\2\x050\xc2\1\4\0\xa2\1\20\xc2\1'
b'\4\20\2\0\24\2\0\2\0R\4\xf0\x00202\xc0\1"E\20"\5"\0b "\20"\24\2\4\2\4\2\5P\2\0\2\5P\2\0\2\x050\xc2\1\4\0\xa2\1\20\xc2\1\4\xf0\0\2\0R\4\xf0\x0020\2\x010\x82\1\1\0\x050\2\25\2\20R\0b \x020\2\4\2\24\2\4\2\4\2\5P\2\0\2\5P\2\0\2\x050\xc2\1\4\xa0\1\2\20\xc2\1'
b'\4\0\xf2\0\0R\4\xf0\x0020\2\20\2\0\xb2\1\5"\20\22 \22\5"\0b \2 \22\4\2\24\2\4\2\4\2\5P\2\0\2\5P\2\0\2\x050\xc2\1\x040(\0\30\0\2\20\xc2\1\4\0\xf2\0\0R\4\xf0\x0020\1\20\2\0\xb2\1\5\22\25\x020b\0b \2\20\22\24\2\4\2\5\4\2\4\2\5P\2\0\2\5P\2\0\2\x050\xc2\1'
b'\x040(\0\30\0\2\20\xc2\1\4\0a\2\0R\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\x020Q\20b \2\20\22\24\2\4\25\4\2\4\2\5P\2\0\2\5P\2\0\2\x050\xc2\1\x040(\0\30\0\2\20\xc2\1\4\xf0\0\2\0R\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2\xb0\1b \2\20"\4\2\4\5"\4\2\5P\2\0\2\5P\2\0\2'
b'\x050\xc2\1\x040(\0\30\0\2\20\xc2\1\4P\4\0\2\0R\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 \xf2\0\0b \2\0\1\22\5\4\2\4\22\5\2\4\2\5P\2\0\2\5P\2\0\2\x050\xc2\1\x040(\0\30\0\2\20\xc2\1\4P\4\0\2\0R\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 \xf2\0\0b \2\0\2\0\22%2\4\2\5'
b'P\2\0\2\5P\2\0\2\x050\xc2\1\x040(\0\30\0\2\20\xc2\1\4 \30\0\4\0\2\0R\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 \xf2\0\0b \2\0\2\0\x82\1\4\2\5P\2\0\2\5P\2\0\2\5\a \xc2\1\x040(\0\30\0\2\20\xc2\1\4 \30\0\4\0\2\0R\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 \xf2\0\0b \2'
b'\0\2\0\2\5B\5\2\4\2\5P\2\0\2\5P\2\0\2\27 \xc2\1\x040(\0\30\0\2\20\xc2\1\4 \30\0\4\0\2\0R\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 \xf2\0\0b \2\0\2\0\x82\1\4\2\5P\2\0\2\5P\2\0\a\21\2\20\xc2\1\x040\30\20\b\20\2\20\xc2\1\4 \30\0\4\0\2\0R\4\xf0\x002@\2\0\2\0\xb2'
b'\1\5\22\25\2 \xf2\0\0b \2\0\2\0\2\0B\0\2\4\2\5P\2\0\2\5P\2\0\a\5\0\t\20\xc2\1\4\xa0\1\2\20\xc2\1\4 \30\0\2\0\2\0R\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 \xf2\0\0b \2\0\2\0\x82\1\4\2\5P\2\0\2\5P\2\0\a\5\0\a\20\xc2\1\4\0\xa2\1\20\xc2\1\4\xf0\0\2\0R\4\xf0\x00'
b'2@\2\0\2\0\xb2\1\5\22\25\2 \xf2\0\0b \2\0\2\0\2\5\22\1\0"\4\2\5P\2\0\2\5P\2\0\a\5\0\t\20\xc2\1\4\0\xa2\1\20\xc2\1\4\0\xf2\0\0R\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 \xf2\0\0b \2\0\2\0\2\0\2\20\2\0\2\0\4\2\5P\2\0\2\5P\2\27\5\0\a\20\xc2\1\4\xa0\1\2\20\xc2\1'
b'\4\0\xf2\0\0R\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2\xb0\1b \2\0\2\x002\0\4\20\24\2\5P\2\0\2\5P\2\27\5\0\a\20\xc2\1\4\xf0\0\1\20\2\20\xc2\1\4\0a\2\0\22\1"\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 \x012\21\20b \2\0\2\0\22\1\4\0\4\20\24\2\5P\2\0\2\5P\2\a\2\5\0\a'
b'\20\xc2\1\4P\33\22\0\2\20B\1b\4\xf0\0\2\0\2\0\2\24\2\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 \x025"\0b \2\0"\20\4\0\4\2\0\24\2\5P\2\0\2\5P\2\a\2\5\0\a\20\xc2\1\4P\33\22\0\2\x102\1\0*2\4\20\24\0\21\0\2\0\2\0$\n\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 \xf2\0\0b '
b'\2\20\22\20\4\2\4\22\24\2\5P\2\0\2\5P\2\0\2\5\0\a\20\xc2\1\4 \33\0\33\22\0\2\20"\1\0\2$\5"\4\20\24\0\21\0\2\0\2\0$\n\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 \xf2\0\0b \2\20"\0\4\2\4\22\24\2\5P\2\0\2\5P\2\a9\a\t"\20*B\4 \33\0\33\22\0\2\20"\0T"\4\20\24\0\21\0'
b'\2\0\2\0$\n\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 \xf2\0\0b \2\20\22\4\0\4\2\4\22\24\2\5P\2\0\2\5P\t\a\t\a\31\a\t\22\1\0\x0242\4 \33\0\33\22\0\2\20"\0T\n\22\4\20\24\0\21\0\2\0\2\0\4\20\n\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 \xf2\0\0b \2\20\22\4\2\4\2\4\22'
b'\24\2\5P\2\0\2\5P\a\20\t\20\a\0\22\0\2D\n"\4 \33\0\33\22\0\2\20"\0T\n\22\4\20\24\0\21\0\2\0\2\0\4\20\n\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 2\5"\0b \2\20\22\4\2\4\2\4\2\1"\5P\2\0\2\5P\a\2\5\t\22\a\22\20d\5\22\4 \33\0\33\22\0\2\20"\0$\22\4\n\22\4\20\24\0'
b'\21\0\2\0\2\0\24\2\n\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 2\5"\0b \2\20\22\4\2\4\2\4\2\0\5\1\0\5P\2\0\2\5P\a*\31\a\n\2\0\2d\n\22\4 \33\0\33\22\0\2\20"\0\24 \4\n\22\4\20\4\2\0\21\0\2\0\2\0\4\20\n\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 2\5"\0b \2\20\22\4\2\4'
b'\2\4\x020\5P\2\0\2\5P\a2\t\a\22\0\xf4\0\n\22\4 \33\0\33\22\0\2\20"\0\4\20\2\0\4\n\22\4\xf0\0\2\0\2\0\4\0\4\n\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 2\5"\0b \2\20\22\4\2\4\2\4\2\0\2\20\5\1@\2\0\2\5\1@\t2\5\2\5\2\0\4\2\0\2\0\2\0\4\n\22\4 \33\0\33\22\0\2\20"'
b'\0\24\2\0\2\0\n\22\4\0\xf2\0\0\2\0$\n\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2\xb0\1b \2\20\22\4\2\4\2\4\2\0\22\0\xc2\1\1 \a\5\2\31\2\5\t\2\0\4P\4\n\22\4\xa0\1\2\20"\0\4\0\4\0\4\0\n\22\4\0\xf2\0\0\2\0\4\20\n\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 \xf2\0\0b \2'
b'\20\22\4\2\4\2\4\2\0\2\4\0\x85\2\a\t\5\2\5\2\t\5\2\0\4\2\4 \2\4\n\22\4\0\x91\1\2\20"\0\4\2\4\2\4\0\n\22\4\0a\2\0\2\0\4\20\n\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 \xf2\0\0b \2\20\22\4\2\4\2\4\2\0\2\4\0\x85\2\t\5\t\2\5\n\t\5\2\0\24\2\4\22\4\2\n\22\4\0\xa2\1'
b'\20"\0T\n\22\4\xf0\0\2\0\2\0$\n\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 \xf2\0\0b \2\20\22\4\2\4\2\4\2\0\2\4\0\xf2\1\a\t\5\t\25\31\5\2\0\4\20\4\20\4\0\n\22\4\0\xa2\1\20"\0T\n\22\4\20\4 \2\0\2\0\2\0$\n\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 \xf2\0\0b \2\20\22\4'
b'\2\4\2\4\2\0\2\4\0\xf5\1\aI\25\t\2\0\4\20\4\20\4\0\n\22\4\xf0\0\21\0\2\20"\x004\2\0\n\22\4\20\4 \2\0\2\0\2\0\4\2\0\n\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 \xf2\0\0b \2\20\22\4\2\4\2\4\2\0\2\4\0\xf5\1\a\x197\25\2\0\xf4\0\n\22\4 \30 \21\0\2\20"\0\4\0\4 \n'
b'\22\4\20\4\0\2\0\2\0\2\0\2\0\4\0\4\n\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 \xf2\0\0b \2\20\22\4\2\4\2\4\2\0\22\1\xf5\1\a\5i\2\0\xf4\0\n\22\4 \30\0\v\0\21\0\2\20"\0$\0\24\n\22\4\20\4\0\4\0\2\0\2\0\2\0\4\20\n\4\xf0\x002@\2\0\1\xc2\1\5\22\25\2 \xf2\0\0b \2'
b'\20\22\4\2\4\2\4\2 \x85\2\t\2e\2\0\xf4\0\n\22\4 \30\0\v\0\21\0\2\20"\0\4\2\4\0\2\4\n\22\4\20\4\0\4\0\2\0\2\0\2\0\24\0\n\4\xf0\x002@\2\20\xc2\1\5\22\25\2 \xf2\0\0b \2\20\22\4\2\4\2\4\2 \x85\2\t\5\2U\2\0\4\22\4\2\4\2\4\n\22\4 \30\0\v\0\21\0\2\20"\0\4\0\4'
b'\20\4\n\22\4\20\4\0\4\0\2\0\2\0\2\0$\n\4\xf0\x002@\2\20\xc2\1\5\22\25\2 \xf2\0\0b \2\20\22\4\2\4\2\4\2\0\1\0\x85\2\t%R\0\4\20\4\0\4\0\4\n\22\4 \30\0\v\0\21\0\2\20"\0T\n\22\4\20\2\0\2\0\2\0\2\0\2\0$\n\4\xf0\x002@\2\20\xb2\1\23%\1\b\2\b\0\xf2\0\0b \2\20'
b'\22\4\2\4\2\4\2\4\0\4\x85\2\aE2\0\4\2\0D\n\22\4 \30\0\v\0\21\0\2\20"\0T\n\22\4\xf0\0\2\0\2\0$\n\4\xf0\x002@\2\20\xb2\1\x035\b\5\30\x90\1b \2\20\22\4\2\4\2\4\2$\x85\2\aE2\0\xf4\0\n\22\4 \30\0\v\0\21\0\2\20"\x004\0\4\n\22\4\0\xf2\0\0\2\0$\n\4\xf0\x002@\2'
b'\20\xb2\1\23%8\0\x025\22\5\0b \2\20\22\4\2\4\2\4\2$\xf9\1\27I\2\5\22\0\xf4\0\n\22\4 \30\0\v\0\21\0\2\20"\0\4\20\4\0\4\n\22\4\0\xf2\0\0\2\0$\n\4\xf0\x002@\2\20\xb2\1\23%8\0\xf2\0\0b \2\20\22\4\2\4\2\4\2$\x85\2\aI\2\5\22\0\xf4\0\n\22\4 \30\0\v\0\21\0\2\20'
b'"\0\4\0\2\4\2\4\n\22\4\0a\2\0\2\0\2\24\2\4\xf0\0"\5\2\1 \2\x102E"\23%8\0%B\0b \2\20\22\4\2\4\2\4\2$\xb5\19\aU\2\25\2\0D\22\4\n\22\4 \30\0\v\0\21\0\2\20"\x004\2\4\n\22\4\xf0\0\2\0\22\0"\4\xf0\0"% \2\20"g\25\23%8\0%B\0b \2\x102\4\2\4\22\24\xb5\1:\a\5B%\2'
b'\0D\20\4\n\22\4 \30\0\v\0\21\0\2\20"\x004\0\4\n\22\4\20\x110\2\0R\4\xf0\0"\20\5 \2\20\22\x97\1\23%8\0%B\0b \2\0\1\2%\4\2\4\2\5\24\xb5\x012\a\t\27%)\2\0\4 \4\20\4\n\22\4\0\xa2\1\20"\0T\n\22\4\20\21\0\30\0\2\0R\4P\2%\2\20\5 \2\20\22\x97\1\23%8\0\22\5B\0b '
b'\2\0\2\0\2\25\4\2\4\5\2\24\xb5\1)\'\xf5\0\2\0D\20\4\n\22\4\0\xa2\1\20"\0T\n\22\4\20\21\0\30\0\2\0R\4P\2%\xba\1\x97\1\23%(EB\0b \2\0\2\0\22\25\24\5\2\5\4\xc5\1\xc9\1\2\0\4 \4\20\4\n\22\4\xa0\1\2\20"\0T\n\22\4\20\25\0\30\0\2\0R\4P\2%\b\4\xba\1\5g\23%(%\0'
b'\5B\0b \2\0\2\0\2\5\2%"\4\xb5\1\2\xc5\1\2\0\4\20\2\4\20\4\n\22\4\xa0\1\2\20"\0T\n\22\x045\4\30\0\2\0R\4P\2%(\24\x8a\1\2\1W\23\25\1(%\0\5B\0b \2\0\2\0"\25\22\5\2\4\xb9\1\1\2\xb5\1\2\0\4"\4\20\4\n\22\4 \x040\30\0\2\20"\0T"\x045\n\1\b\0\2\0R\4P\2%H\x85\1 !'
b'\27\23\1\20(%\0\5A\0b \2\0\2\0\2\0B\5\2\4\xb9\1\0Q\5\1\5\21\5\1\2\0\4 \24\0\4\n\22\4 \4\0\2\0\v\30\0\2\20"\0D\n"5*\b\0\2\0R\4P\2%\0\xd8\1@\27 \25 %\0\5Pb \2\0\2\0b\0\2\4\xc5\1\xc0\1\2\0$\2\0$\n\22\4 \4\0\2\0\v\30\0\2\20"\0D25\n\t\n\20\2\0R\4P\2\xb5\4\0'
b'\5B\0b \2\0\2\0\x82\1\4\x95\3\2\0\xf4\0\n\22\4 \4\0\2\0\v\30\0\2\20"\1\20\32\x0525\b\0\b"\0R\4P\2%\xd0\3%\0\5B\0b \2\0\2\0\2\5"\0\22\0\4\x95\3\2\0\24\0$\0\4\n\22\4 \4\0\2\0\v\30\0\2\20\xc2\1\25Z\22\0R\4P\2%@\xfa\0\5\xf2\1%\0\5B\0b \2\0\2\0\2\0\2\20\2\1'
b'\2\24\x95\3\2\0\4\20\4\20\2\4\n\22\4 \4\0\2\0\v\30\0\2\20\xc2\1\4\5\n\4:\1\2\0R\4P\2% \1\2\x8a\1\5\xf2\0c%\0\5B\0b \2\0\2\0\2\1\2\20\4\0\1\24\x95\3\2\0\4\20\4\0\2\24\n\22\4 \4\0\2\0\v\30\0\2\20\xc2\1\4\5\4\b*\5\0\2\0R\4P\2% \2\xaa\1R\x83\1%\1\5B\0b \2\0'
b'\2\0\22 \4\0\2\24\x95\3\2\0\xf4\0\n\22\4 \4\0\2\0\v\30\0\2\20\xc2\1\48\32\2\0\2\0R\4P\2% \5Y\5:U\xf3\0UB\0b \2\0\2\0\2\1\0\4\0\4\0$\x99\3\2\0\xf4\0\n\22\4 \4\0\2\0\v\30\0\2\20\xc2\1\27\2\30\n\31\0\2\0R\4P\2%\0\1\5\x8a\1\4( \x93\x015\0\5B\0b \2\0\2\0\2\0'
b'\24\0\4\2$\x99\3\2\0\xf4\0"\4 \4\0\2\0\v\30\0\2\20\xc2\1\4\0\1\a\0\v\0\v\0\2\0R\4P\x025\1\0\xc8\1\3\5\xb3\1%\0\5B\0b \2\0\1\22\4\2\4\2\4\2$\x97\3\2\0d\n"\4\xa0\1\2\20\xc2\1\4\1\20\a\v\0\v\0\2\0R\4P\2eY\5(\x023\xd5\1\0\5B\0b \2\20\22\4\2\4\2\4\2$\x99\3\2'
b'\0d\n"\4\0\x91\1\2\20\xc2\1!\20\v\0\v\0\2\0"\1\22\4P\2%2U\2\30\5\27#\xa2\1%\0\x051\20b \2\20\22\4\2\4\2\x042\x97\3\2\0d\n"\4\0\xa2\1\20\xb2\1P\1\0\v\0\2\0\2\1\20\22\4P\2%\0\23\x82\x017#\xa0\1%\0\5Pb \2\20\22\4\2\4R\x97\3\2\0d2\4\0\xa2\1\20\xa2\1\x80\1\v'
b'\0\2\1\20:\4\2@\2\25#\xd7\1#\x92\1\v%\0\5;\20b \2\20\x82\1\25\x97\3\2\1\0\x024\x052\4\xa0\1\2\20\xa2\1\xe0\1*$@\2UYW\5#\x92\1\v%\0E\2\0bPR\5\xd7\3\22\1\20\32R\4\xf0\0\4\2\0\2\20\xa2\1P\1\xf0\0\32\1\2\1\n@\2\5CYG\25#\xd5\1\0\25\2\25\2\xb0\1\x0252\x175\a'
b'\25\'\5\ae\a\xf5\0\xc2\1\4\xf0\0\24\0\2\20\xa2\1`\2`"\32\1@Z\xf7\x005\1\b#\xa0\1%\0\5\x82\2\xf8\0\xea\3\xc2\1\4 \x010\24\0\2\20\xa2\1\xf0\0\1P2\1\4@Z\xf7\0\25\21\30#\xa0\1%\0\2\5\2\5\2\5"\5R\5(R\xea\3\xc2\1\4 \x010\24\0\2\20B\1"\25 \1@\x020B\v\2\1\33\21'
b'\xd5\1\1H#\x90\1\1%\20\21\v\1\v!\vQ\v\30B\x85\4\xc2\1\4 \1\0"\24\0\2\20B\0E \21@R$0$Zi\58\x023$\n\x95\1 \xeb\1\b\228\x8a\4\xc2\1\4 \1\0"\24\0\2\20\22\0\xf5\x000\1\xf0\0\1\22\0Q\n\2e\xa8\1C\2$\n\xc0\1\xc5\1(\2\30\4\xaa\4\xc2\1\4 \1\0"\24\0\2\20\22\0\xf5'
b'\0@\2\x80\1\2\32Q9\1%\xc3\1\1\x134\n\xc0\x015\2E\22(\2\b\4\xca\4\xc2\1\4 \1\0"\24\0\2\20\22\0\xf5\0P\2\xf0\0\2:A\t\n\x015\xf9\0\5#\33$\n\24\0+\20\v \5\0B%\22\25\2(\2\b\xea\4\xc2\1\4 \1\0"\24\0\2\20\22\0\xf5\0\x80\1\22@\32\25\xf1\x002\xf5\0\23\1\33\a\24'
b'\n\24\2@+\20\5\0\2\25\22%\22\5\2(\2\b\4\xea\4\xc2\1\4 \1\0"\24\0\2\20\22\0\xf5\0\20\x110\b\31\b0\24\x81\x014\x93\1\33\27\5\4\n\4\22\0\x010;\0\2\0\2\25\2\5\1\2\5\22\1\2\30\22\b\xfa\4\xc2\1\4 \1\0"\4\2\0\2\20\22\0%\30\0\23\0\a\31\a\20\b\t\n\30\xa4\2\xc7\1'
b'\4\n$\20\n\5\33\0[\2\x002\5"\5\22\30\22\30\xfa\4\xc2\1\4\xa0\1\2\20\22\0\25\2\30#\a\5\t\27\0\1H\4\3\4\5\2\5\1\t\1\xa4\1i\5\'\2$\2\20\2\nU"E\22\1%\22(R\xd5\4\xc2\1\4\0\xa2\1\20\22\20\30\27\23\5G\2\58\4\x035\1\n\5\1\x94\1\x97\1\2\32\24\2 \4\n\xa5\2\22\xf8'
b'\5\xc2\1\4\0\xa2\1\20"\0\30\27\23\x027\5\22%\32\23%1\xf4\2\20\4\20\4\n\xa0\1\x9b\a\xc2\1\4\0\x91\1 "\0\30\27\3\2\4\a\5\27\5B\32\23%1\xb2\2\n\24\2\0\24\20\4\n\xb1\1k\1K!K\21\xbb\1!K\xd1\1\xc2\1\4\xd0\1"\0\30\27\3\24\a\2\a\25\22 \32\23%\1\2\21\xb2\2\n\22'
b'\0$\20\4\n\5\2\xe5\1"E\a\25\a\x95\1\a\xd5\1\a5\a\x85\1\xc2\1\4\0\xc2\1\4\2\25\30\27\3\24\a\2\a\25\22(\32\23%\1\2\21\2%\xf2\1\n\x104\20\4\n\25BU\2\5B\25\22\x87\1\5\a%\a\25\a%\27\xf5\0\a%\27%\27\5\a\5\xc2\1\4\xd0\1\4\2\20\30\27\3\24\'\25\22(\32\23%1\0%'
b'\x80\2\2D\20\4\n5\2%\22\x85\1B\5\2\5\a\x1575\a\x85\1\a%\'\5\a5\a%\'\5\xc2\1\4\xb0\1%\2\20\30\27\3\24\'\25\22(\32\23%1\0%\xd0\1\2\4\nT\20\4\n\22%B\5\22G\x052\25\x175\27\x95\1\27\25\x175\xf7\0\25\'\25\a\xc2\1\4\xb0\1%\2\20\30\27\3\24\'\25\22 \32\23%!E\x90'
b'\1"\0\24\nT\20\4\n\22\25\22\5"\5\x127%\2\5\2\5\22\27%\27\xa5\1\a\25\27\25g\25\'\25\a\25\a\xc2\1\4\xb0\1%\2\20\30\27\3\24\'\25B\32\23%!%\2\5\xf1\0\20"\0\24\nT\20\4\n\22\25\22\5\22\5\2\5G%\2\5B\a\xf5\1\a\5\27%g\x157E\xc2\1\4\xb0\1%\1\20\30\27\3\22\'\25\22'
b'%\32\23%!%\0\5\xf2\0\20"\0\24\nT\20\4\n\2%B\5\2\5\x1757B\xb5\1W\5\x175W\x157E\xc2\1\4\xb0\1% \30\20\3\20\'\25\22(\32\20% %\0\5\xf2\0\20"\0\24\nT\20\4\nE2U\a\5G\xb5\x017\5\aE\a\x85\1\x87\x015\a\xc2\1\4\0\xa2\1%\xd0\3%\0\5\xf2\0\20"\0\24\nT\20\4\n\2e\2e'
b'\x87\x012%\'5W%\xe7\1U\xb2\1$\33\x80\1\xb5\4\0\5\xf2\0\20"\0\24\nT\20\4\n\v\20[\xa5\3\x87\4\xa2\1\4\22\4\0\v\xf0\0\v%\v( \27 \24 \27\20\30 \22\20%\0\5\xf2\0\20"\0\24\nT\20\4\n\2\5\2%\2\27%G\25\a\5\a\x057\x152EW\x85\1\a%WE\a\xd2\1\4\x80\1\v\0%\v(\21\0\27'
b' \24 \25\21\30\21\0\22\20%\0\5\xf2\0\20"\0\24\nD\2\20\4\n\xd5\1\'%\27\x85\1"5\22\25\27\x85\1\a%\27\25\'5\a\xd2\1\4\v0;\20%\v(\21\3\27\24\0\24\0\x185\30\22\0\22\3\0%\0\5\xf2\0\20"\0\24\n4\2 \4\2%\22U\a\25\'%\27\x85\1\2\5\2\5B\25\'\5\a\25\27%G%\27%\27R\4b'
b'\4+ +\20%\v\b\2\b\21\3\27\24\0\24\0\30\27\25\30\22\0\22\3\0%\0\5\xf2\0\20"\0\24\n$\x020\2\0\5\2\5\2%\'\5\x87\1\5\'%2\25\2\25\22%\aB\a\5\a5G\5\aE\a\5\a\xd2\1\4\v\20[\0\v%\v\b\2\b\21\3\27\24\0\24\0\30\27\25\30\22\0\22\3\0%\0\5\xf2\0\20"\0\24\n\24`\xb5\1'
b'\27U\a\25\27%\2%\x025\22%\a5\2eB\25\xd2\2\4\0[\20\33%\v(\21\3\27\24\0\24\0\30\27\25\30\22\0\22\3\0%\0\5\xf2\0\20"\0\24\n\4`5\2%\'%\a\xf5\0\27U\2\5b\5\2\27\x92\1\5\1\5B%2\25\24\xb2\1\4\33@\33\0\v%\v(\21\3\27\24\0\24\0\x185\30\22\0\22\3\0E\xf2\0\20"\0\24'
b'\n \33\5\v\1%\x025\a\25gE\27E\a\x85\x017\5\2e\2\xa5\1\x025\xf2\1\33@\33\20%\0(\21\3\27 \24\0\30\25\21\30\22\20\1\3\0%\2\5\xf2\0\20"\0\24\n\20\33\25\1\5\22\5\2e\a\5\a\25\x175\'5\27%\a5\'\xa5\1\2\xa5\1\x015\xe2\1\1+\20\33\0\v\20%\1"\20\3\27 \22\0\22\27'
b'\x102 \3\0%\0\5\xf2\0\20"\0\24\n\33\1E\2\1\xf5\0\a\25\aU\a\5\'\25W\5\'\25\'U"\25\22\25B\xf5\0\xc2\1\4\1\33\20\33\0+\20\xb5\4\0\5\xf2\0\20"\0\24\n\0\5\x125\22\xa5\1\a\25\a57\x057\25G\5G5\27\25\27\5\2\25B\x85\1\xa2\1\4\33 \x8b\1% T\30\25\2\b`\23P%\0\5\xf2'
b'\0\20"\0\24\n\25\22\x052U\a\x85\1\27E\x97\x015\'\5\27\5\a\5\a\xb5\1\x125\2\5\2\25\x82\1\4\xf0\0K\x105\20\xf4\0\30\25\30@3K%\0\5\x90\1"\0\24\n\x025\2\x85\1\a%\27E\a5\x87\1U\xf7\0\x95\x0175\a%\22\5b\4;\0K\0\v\0\v\25\x005\x94\1\5\4\b\25\30\0Ck%\0\5\x90\1"'
b'\0\24\n5\2\25\a\xa5\1\'\25\xf7\0\25\27\5\'\25G\5W\x157\5\a\5\27\xc5\1\xf2\0\xe0\1\21\0\1%\4\x82\1\5\2\0\2\25\x183\25A\v%\0\5\x90\1"\0\24\2\x91\1e\x87\6\v\1\33\x81\1b\xa0\2%\4\xf5\0\22 \b\5\30#\0e\v%\0\2+\0;\20"\0\4\2\xa0\1e\x87\6\33\21\x80\1"\4\1+\0\x8b'
b'\1\25\0\25\2E\x94\x010(#\20k\0%\20\33\0\5+\5\v\0"\0\2\0\5"\25\x87\1\5\27EGE\x175\'%g\5\27U\a\x057\25\'E\22\5\2\24;\0\33\20;5\0\2\25\22\xb5\4 5\22\25P\a\2\5\22\5\27\5\x97\x015W\25\a\25\27\25\a\x157\5\x97\x015\a\25G\x057\25\a\25\22\5'
)

draw_image(image, 0, 0, 160, palette, zoomx=1, zoomy=1, itransp=-1)
draw_image(image, 320, 0, 160, palette, zoomx=-1, zoomy=1, itransp=-1)

Une image utilisant 12 couleurs. Les données de la palette occupaient donc :
  • 158 octets en mémoire de stockage
  • $mathjax$40+12\times\left(8+40+3\times\left(8+24+4\right)\right)$mathjax$
    soit déjà 1,912 Ko à l'exécution en mémoire heap

Mais gros avantage sur NumWorks, il est possible d'écrire les paramètres de couleur différemment. Les chaînes hexadécimales sont en effet acceptées, et désormais utilisées par img2calc lorsque tu choisis de convertir pour cette plateforme, une amélioration suggérée par redgl0w :
Code: Tout sélectionner
#palette for your image
#12 RGB-888 colors
palette = (
"#000000","#682878","#88705C","#50c000","#f88418","#a0a8a0","#f8fc00","#00fcf8","#f80000","#f8fcf8","#f8acb0","#0000f8",
)

Les données de la palette n'occupent maintenant plus que :
  • 133 octets en mémoire de stockage (-15,82%)
  • $mathjax$40+12\times\left(8+49+7\right)$mathjax$
    soit 808 octets à l'exécution en mémoire heap (-57,74%)




3) Optimisation palette : noms de couleurs

Go to top

Il existe encore une façon d'écrire différemment certaines valeurs de couleurs, en fournissant simplement leur nom. Cette écriture est gérée uniquement sur NumWorks et KhiCAS (éditions NumWorks et TI-Nspire CX). Par contre les deux plateformes ne reconnaissent pas les mêmes noms.

Sur KhiCAS, nous avons 8 couleurs nommées :
  • "black" : (0, 0, 0)
  • "red" : (255, 0, 0)
  • "green" : (80, 193, 2)
  • "blue" : (0, 0, 255)
  • "yellow" : (255, 255, 0)
  • "cyan" : (0, 255, 255)
  • "magenta" : (255, 5, 136)
  • "white", "w" ou toute autre valeur : (255, 255, 255)

Sur NumWorks, nous avons 13 couleurs nommées :
  • "w" ou "white" : (255, 255, 255)
  • "k" ou "black" : (0, 0, 0)
  • "gray" ou "grey" : (167, 167, 167)
  • "r" ou "red" : (255, 0, 0)
  • "g" ou "green" : (80, 193, 2)
  • "b" ou "blue" : (0, 0, 255)
  • "y" ou "yellow" : (255, 255, 0)
  • "brown" : (141, 115, 80)
  • "pink" : (255, 171, 182)
  • "orange" : (254, 135, 31)
  • "purple" : (110, 45, 121)
  • "cyan" : (0, 255, 255)
  • "magenta" : (255, 5, 136)

Lorsque ton image utilise une de ces couleurs, img2calc utilisera désormais le nom le plus court associé si plus intéressant que l'écriture hexadécimale lorsque disponible, autre amélioration suggérée par redgl0w.

Sur NumWorks, "magenta" est la couleur au nom le plus long, et est ici sans intérêt par rapport à l'écriture hexadécimale.
Sur KhiCAS, pour le blanc on peut donc utiliser "".

Les 12 couleurs de l'image ci-contre appartiennent justement à cette liste, la seule n'y figurant pas étant le magenta.

Voyons ce qu'elle donne maintenant, commençons par KhiCAS :
Code: Tout sélectionner
#palette for your image
#12 RGB-888 colors
palette = (
"black",(104,40,120),(136,112,80),"green",(248,132,24),(160,168,160),"yellow","cyan","red","",(248,172,176),"blue",
)

Les données de la palette n'occupent maintenant plus que :
  • 129 octets en mémoire de stockage (-18,35%)
  • $mathjax$40+12\times 8 + 5\times\left(40+3\times\left(8+24+4\right)\right)+7\times 49+5+5+6+4+3+0+4$mathjax$
    soit 1,246 Ko à l'exécution en mémoire heap (-34,83%)

Et convertissons maintenant pour NumWorks :
Code: Tout sélectionner
#palette for your image
#12 RGB-888 colors
palette = (
"k","#682878","brown","g","orange","#a0a8a0","y","cyan","r","w","#f8acb0","b",
)

Les données de la palette occupent donc maintenant :
  • 92 octets en mémoire de stockage (soit -30,83% par rapport à l'écriture hexadécimale, et -41,77% par rapport à l'écriture tuple initiale)
  • $mathjax$40+12\times\left(8+49\right)+1+7+5+1+6+7+1+4+1+1+7+1$mathjax$
    soit 766 octets à l'exécution en mémoire heap (soit -5,20% par rapport à l'écriture hexadécimale, et -59,94% par rapport à l'écriture tuple initiale)

On peut remarquer toutefois que plusieurs couleurs n'ont pas été remplacées par leur nom associé et sont restées sous l'écriture hexadécimale, celles pour lesquelles les valeurs des composantes ne sont ni maximales ni minimales. En effet l'image lors de la conversion subit un prétraitement (passage en RGB-565 avec fusion des couleurs proches dont l'affichage est identique sur calculatrice), opération lors de laquelle les valeurs de couleurs peuvent légèrement varier. Et il suffit de quelques unités en plus ou en moins sur une seule des composantes pour que cela ne corresponde plus.




4) Contrôle du nombre de couleurs

Go to top

Une bizarrerie avait été signalée par cent20 et Afyu.

cent20 avait tenté de convertir l'image Bomber ci-contre, à première vue une image monochrome très simple, et donnant pourtant jusqu'à présent un énorme script de 18,9 Ko, particulièrement douloureux à faire passer sur NumWorks, sa calculatrice préférée :
Code: Tout sélectionner
#palette for your image
#87 RGB-888 colors
palette = (
(255,255,255),(255,251,255),(231,228,231),(182,183,182),(157,163,157),(190,191,190),(239,240,240),(107,101,107),(7,7,7),(2,2,2),(2,0,2),(2,4,2),(174,172,175),(247,247,247),(116,118,116),(0,0,0),(36,41,36),(223,228,223),(247,251,247),(223,224,223),(116,114,116),(99,101,99),(99,93,99),(99,97,99),(215,211,215),(239,243,240),(231,232,231),(149,151,149),(133,131,133),(207,207,207),(166,163,167),(7,4,7),(7,12,7),(73,76,73),(18,17,18),(27,31,27),(157,159,157),(174,176,175),(55,58,55),(149,147,149),(45,45,45),(223,220,223),(36,35,36),(133,135,133),(90,88,90),(107,105,107),(166,168,167),(149,155,149),(55,54,55),(90,84,90),(239,236,240),(27,26,27),(124,122,124),(18,21,18),(247,243,247),(81,84,81),(81,80,81),(198,199,198),(207,203,207),(182,179,182),(215,216,215),(166,172,167),(73,71,73),(64,67,64),(124,126,124),(107,109,107),(64,63,64),(215,220,215),(207,211,207),(27,21,27),(182,187,182),(55,50,55),(45,41,45),(141,143,141),(36,31,36),(73,67,73),(231,236,231),(190,187,190),(157,155,157),(141,139,141),(18,12,18),(198,195,198),(45,50,45),(198,203,198),(190,195,190),(90,93,90),(64,58,64),
)

#your image data
#240x74 RLE-7 pixels
image = (
b"\x80\xfe\x80\xfe\x80\xfe\x80\xfe\x80\xfe\x80\xfe\x80\xfe\x80\xfe\x80\x96\x81\0\x82\0\x83\0\x84\0\x85\0\x86\0\x80\xe8\x86\0\x87\0\x88\0\x89\0\x8a\0\x89\0\x8b\0\x8c\0\x81\0\x80\3\x8d\2\x80\xde\x8d\0\x8e\0\x8f\5\x90\0\x91\0\x92\0\x93\0\x8c\0\x94\0\x95\0\x96\0\x97\0\x94\0\x84\0\x98\0\x99\0\x80a\x9a\0\x9b\0\x94\0\x9c\0\x9d\0\x81\0\x80r\x9e\0\x9f\0\x8f\5\xa0\0\x9c\0\xa1\0\xa2\0\xa0\0\x8f\4\x8a\0\xa0\0\xa3\0\xa4\0\x91\0\x80^\xa5\0\xa6\0\x9f\0\x8f\1\xa0\0\xa7\0\x92\0\x80q\x95\0\x8f\24\xa8\0\x8c\0\x92\0\x80[\xa9\0\xaa\0\x8f\4\x88\0\xa5\0\x80p\x9a\0\x9f\0\x8f\26\xab\0\x81\0\x80Y\x8d\0\xac\0\x8f\6\xad\0\x92\0\x80o\xae\0\x8f\27\x8b\0\xaf\0\x81\0\x80X\x93\0\xb0\0\x8f\6\xb1\0\x8d\0\x80n\xb2\0\xa1\0\x8f\30\xb3\0\xa9\0\x80X\x9b\0\x89\0\x8f\6\xb4\0\x81\0\x80n\x9d\0\xaa\0\x8f\31\x8e\0\x80W\x81\0\xad\0\x8f\6\x89\0\xae\0\x80n\x81\0\xab\0\x89\0\x8f\31\xb5\0\xb6\0\x80V\x93\0\xa2\0\x8f\6\xb0\0\x98\0\x80n\x92\0\xa8\0\x8f\v\xb3\0\xb7\0\xac\0\xb8\0\xa2\0\x8f\t\x8b\0\xb9\0\x80V\xae\0\x8f\a\x97\0\x92\0\x80n\xba\0\x8f\t\x88\0\xb7\0\xbb\0\xbc\0\x86\0\x99\1\x9d\0\xa1\0\x8f\b\x89\0\xbd\0\x80U\xb6\0\xbe\0\x8f\a\xbb\0\x80n\x81\0\x94\0\x8f\b\xaa\0\x8c\0\x8d\0\x80\5\x93\0\xa8\0\x8f\b\x97\0\x80U\xbc\0\xa3\0\x8f\6\xb3\0\x86\0\x80n\x9a\0\xbf\0\x8f\a\x90\0\x83\0\x81\0\x80\6\x81\0\x94\0\x8f\b\x87\0\x80U\xa7\0\x8a\0\x8f\6\x8e\0\x81\0\x80n\xbb\0\xb3\0\x8f\a\xa4\0\x81\0\x80\b\xc0\0\x8f\a\x89\0\xbb\0\x80T\x92\0\xb7\0\x8f\6\x88\0\xbd\0\x80n\x81\0\xb4\0\x8f\a\xbf\0\x86\0\x80\b\x8d\0\xc1\0\x8f\a\x8b\0\xba\0\x80T\xbc\0\x9f\0\x8f\6\xc2\0\x91\0\x80.\x86\0\xc3\0\x85\0\x83\0\xc4\0\x8d\0\x809\x86\0\xaa\0\x8f\a\xab\0\x81\0\x80\b\x82\0\xbf\0\x8f\a\x9f\0\x99\0\x80T\xa7\0\x8f\a\xb4\0\x81\0\x80-\xbc\0\x94\0\xc5\0\x8f\1\x89\0\x95\0\xbc\0\x808\xc6\0\x8f\a\xaa\0\x85\0\x80\t\xbb\0\x89\0\x8f\a\x97\0\x80T\x86\0\xbe\0\x8f\a\x9d\0\x80-\x9a\0\xac\0\x8a\0\x8f\4\xaa\0\x99\0\x806\x92\0\xb7\0\x8f\a\xbf\0\x99\0\x80\1\xb2\0\x93\0\x9a\0\xb6\0\x80\1\x81\0\xb9\0\xb3\0\x8f\a\x9f\0\x83\0\x80T\x8c\0\xc5\0\x8f\6\xb0\0\x92\0\x80,\x92\0\x94\0\x8f\6\x8a\0\xc1\0\x8d\0\x805\xbc\0\x90\0\x8f\a\xa7\0\x80\0\xa9\0\xc1\0\xc7\0\xc8\0\xa8\0\xb0\0\xc9\0\xa9\0\xbb\0\xca\0\x8a\0\x8f\a\xcb\0\xcc\0\x80\n\x81\0\x86\0\x91\0\xcd\0\xa4\0\x9b\1\xce\0\xc6\0\x98\0\x92\0\x80\20\xb2\0\x98\0\xae\0\x9b\0\x9e\0\xbc\0\x80\0\x92\0\xcc\0\xb9\0\xa4\0\x9b\1\x9e\0\xb9\0\x86\0\x80\4\x81\0\x8d\0\xbc\0\x85\0\x9b\2\x9e\0\x85\0\x9a\0\x80\r\x8d\0\xc0\0\x8f\a\x87\0\xa5\0\x9b\2\xcd\0\x82\0\x80\22\x81\0\x8d\0\x93\0\x85\0\xa4\0\x9b\2\xcd\0\xa9\0\x92\0\x80\t\xa9\0\xa3\0\x8f\a\xca\0\xa9\0\x805\x9b\0\x8f\a\xa0\0\x93\0\xbb\0\xa6\0\x8f\20\x89\0\x85\0\x80\t\x81\0\xba\0\xcf\0\xbe\0\x8f\a\xa8\0\xcf\0\x93\0\x80\r\x86\0\x87\0\x8f\4\x95\0\x9c\0\xd0\0\x8f\5\xa3\0\xc0\0\xcc\0\x80\0\x81\0\x9a\0\xc9\0\xb7\0\x8f\a\x97\0\xbb\0\x92\0\x80\n\x9a\0\xb0\0\x8f\16\x97\0\xc6\0\x81\0\x80\16\x9a\0\x9b\0\x97\0\x8f\a\xbf\0\xcf\0\xb2\0\x80\a\xae\0\x88\0\x8f\b\xa5\0\x804\x92\0\xad\0\x8f\a\x97\0\x9d\0\xa6\0\x8f\20\x8a\0\xad\0\x92\0\x80\b\x9a\0\x94\0\x90\0\x8f\v\xa3\0\xa4\0\x80\v\x99\0\xc1\0\x8f\20\xa1\0\x9d\0\xa4\0\xa8\0\x8f\n\x88\0\x97\0\x86\0\x80\t\xd1\0\x8f\20\xd0\0\xc9\0\xb6\0\x80\v\x8d\0\xbb\0\xc2\0\x8f\v\xc2\0\x83\0\x80\6\xc0\0\x8f\b\x8a\0\xa5\0\x804\x93\0\x8f\a\x9f\0\xae\0\x9c\0\x8f\21\xbe\0\x91\0\x80\b\x98\0\xb8\0\x8f\16\x8a\0\x8e\0\x86\0\x80\t\xb9\0\xa3\0\x8f\21\xc5\0\x8f\16\xa1\0\x86\0\x80\a\x81\0\x94\0\x8f\22\x97\0\x8d\0\x80\t\xb2\0\x9c\0\x8f\17\xcf\0\x92\0\x80\3\x81\0\x94\0\x8f\b\x9f\0\x95\0\xbb\0\x86\0\x802\x9e\0\x8f\a\xd2\0\x98\0\xaa\0\x8f\20\x9f\0\xd1\0\x80\b\x98\0\xa1\0\x8f\20\x9f\0\xb4\0\x80\t\x9b\0\x8f#\xb7\0\x92\0\x80\6\x9a\0\xd2\0\x8f\22\x9f\0\xae\0\x80\b\x81\0\xc0\0\x89\0\x8f\17\x9f\0\xa4\0\x80\4\xce\0\x89\0\x8f\t\xd0\0\xc2\0\xc9\0\x91\0\x80/\x99\0\xb0\0\x8f\a\xc1\0\xa9\0\x9f\0\x8f\16\x8a\0\xc2\0\xd1\0\x80\b\x82\0\x90\0\x8f\22\x8b\0\xa5\0\x80\a\x81\0\xbf\0\x8f#\x8b\0\xcd\0\x80\6\xae\0\xa0\0\x8f\23\xc5\0\xa9\0\x80\6\x8d\0\xab\0\x8f\22\xc8\0\x9a\0\x80\3\xbc\0\xb3\0\x8f\r\xc0\0\x93\0\x80-\x9d\0\xa3\0\x8f\a\x9d\0\xc4\0\x8b\0\x8f\16\xd0\0\xa9\0\x80\b\x8d\0\x8e\0\x8f\24\xbe\0\x86\0\x80\6\x93\0\x8b\0\x8f$\xc0\0\x81\0\x80\4\x92\0\x94\0\x8f\24\x89\0\xab\0\x80\6\xd1\0\xb5\0\x8f\23\x9b\0\x80\3\x8d\0\xad\0\x8f\r\x89\0\xa8\0\xd3\0\x80+\x92\0\xb4\0\x8f\a\xa8\0\x8d\0\x9a\0\x9f\0\x8f\16\x89\0\x9b\0\x92\0\x80\a\xa5\0\xa0\0\x8f\a\xd2\0\xb7\0\x9b\0\xab\0\xc2\0\x9f\0\x8f\6\x9f\0\xd1\0\x80\5\x81\0\xab\0\x8a\0\x8f\b\xbe\0\x8e\0\xa4\0\xbe\0\x89\0\x8f\t\xc5\0\xb8\0\x8e\0\xb4\0\xca\0\x8f\a\x97\0\x8d\0\x80\4\x93\0\xaa\0\x8f\b\xd0\0\xb7\0\xae\0\xb4\0\xaa\0\x8f\a\xb8\0\x8d\0\x80\4\x9a\0\xbf\0\x8f\b\xb8\0\xc9\0\xc0\0\xd2\0\x8f\a\xca\0\xb2\0\x80\3\x9d\0\x8f\17\x9f\0\xc9\0\x92\0\x80)\x99\0\xbe\0\x8f\a\xab\0\x80\0\x92\0\xa8\0\x8f\17\xd0\0\x85\0\x80\a\x97\0\x8f\a\xbf\0\xba\0\x8d\0\x80\1\xb2\0\xc0\0\x89\0\x8f\6\xa7\0\x80\5\x86\0\xa1\0\x8f\b\xcb\0\x93\0\x81\0\x80\0\xcc\0\xb8\0\x8f\t\xa5\0\x86\0\x80\0\x81\0\xa4\0\x8f\a\xa1\0\x86\0\x80\4\xa5\0\x8f\b\xd2\0\x85\0\xb6\0\x80\0\x81\0\xc6\0\xa3\0\x8f\6\xa2\0\x9a\0\x80\4\xcd\0\x8f\b\x94\0\xb6\0\x80\0\x92\0\xbc\0\x88\0\x8f\6\xc5\0\xba\0\x80\3\xa5\0\x8f\20\xa0\0\x85\0\x80)\xd4\0\x8f\a\xa3\0\x9d\0\x80\1\xa5\0\x89\0\x8f\17\xcb\0\x81\0\x80\5\x9a\0\x8f\a\xb8\0\xcc\0\x80\4\x9a\0\xca\0\x8f\6\xb4\0\x80\5\x85\0\xb3\0\x8f\a\xac\0\xb6\0\x80\3\xc0\0\x8f\a\xaa\0\xa5\0\x80\3\x98\0\x90\0\x8f\6\xb7\0\x99\0\x80\3\x92\0\xb7\0\x8f\a\xbe\0\x98\0\x80\3\x92\0\xb7\0\x8f\a\x93\0\x80\3\x92\0\xb7\0\x8f\a\xad\0\x8d\0\x80\3\xa7\0\x8f\6\x89\0\xa5\0\x80\2\x8d\0\xb7\0\x8f\21\x90\0\x82\0\x80(\xab\0\x8f\a\xc2\0\x86\0\x80\1\x99\0\xc9\0\x89\0\x8f\16\x9f\0\xbc\0\x80\5\x8c\0\x8f\a\x83\0\x80\5\xb2\0\xaa\0\x8f\6\x95\0\x80\5\x9c\0\x8f\a\xb0\0\x82\0\x80\3\x8d\0\xc2\0\x8f\a\xa7\0\x92\0\x80\3\x83\0\x9f\0\x8f\6\xc1\0\x8d\0\x80\3\xa9\0\xb3\0\x8f\6\x8a\0\xd1\0\x80\4\x81\0\xd5\0\x8f\a\x93\0\x80\3\x93\0\xa3\0\x8f\a\x9d\0\x80\4\xae\0\x8f\a\xc0\0\x80\2\xbc\0\xb3\0\x8f\21\x89\0\xaf\0\x80'\x9a\0\xd2\0\x8f\a\xce\0\x80\4\x9d\0\xd5\0\xa8\0\xaa\1\xa8\0\xc7\0\x88\0\x8f\b\x87\0\x81\0\x80\3\xcc\0\xbf\0\x8f\6\xa6\0\xb6\0\x80\5\x91\0\xa3\0\x8f\6\x94\0\x80\4\x8d\0\xca\0\x8f\6\xd0\0\xa4\0\x80\4\xd1\0\xa2\0\x8f\6\xd2\0\xb6\0\x80\4\x94\0\x8f\6\x9f\0\x9b\0\x81\0\x80\2\x81\0\xb4\0\x8f\a\xb4\0\x80\5\x9a\0\xbe\0\x8f\6\x9f\0\x93\0\x80\3\xa4\0\x89\0\x8f\6\xca\0\x80\5\x84\0\x8f\6\xa0\0\x8c\0\x80\1\x81\0\x94\0\x8f\6\xb0\0\xc5\0\x8f\n\xc1\0\x8d\0\x80&\x9e\0\x89\0\x8f\a\x9a\0\x80\5\xb6\0\xa9\0\x9d\1\xa9\0\x9a\0\x9b\0\x89\0\x8f\a\xa1\0\xb2\0\x80\3\xb9\0\xa3\0\x8f\6\x94\0\x80\6\xb9\0\xb5\0\x8f\6\x9b\0\x80\4\xc4\0\x8f\a\xd2\0\xb2\0\x80\3\x92\0\x9c\0\x8a\0\x8f\6\xce\0\x80\4\x8d\0\xa2\0\x8f\6\xc5\0\xbc\0\x80\3\x8d\0\xb1\0\x8f\a\xae\0\x80\5\xcd\0\x88\0\x8f\6\xb0\0\x86\0\x80\2\x8d\0\xad\0\x8f\a\x9c\0\x80\5\xad\0\x8f\6\xc5\0\xba\0\x80\1\x99\0\xcb\0\x8f\5\xc8\0\x9a\0\xd1\0\x94\0\xa2\0\x8f\b\x95\0\x8d\0\x80%\x8d\0\x94\0\x8f\a\xad\0\x80\r\x97\0\x8f\a\x90\0\x93\0\x80\3\x9c\0\x8a\0\x8f\5\xb3\0\xc6\0\x80\5\x8d\0\x8e\0\x89\0\x8f\5\x9f\0\xcd\0\x80\3\x81\0\xc1\0\x8f\a\x9c\0\x80\4\xc3\0\xd6\0\x8f\6\xc8\0\x98\0\x80\4\xbb\0\x8f\a\xcb\0\x8d\0\x80\3\xbc\0\x89\0\x8f\6\xbf\0\xc3\0\x80\5\xab\0\x8f\a\x97\0\xb6\0\x80\2\xbc\0\x89\0\x8f\6\xa2\0\xbb\0\x80\3\x99\0\x9e\0\x88\0\x8f\6\xaa\0\x9a\0\x80\1\xb9\0\x8a\0\x8f\5\xaf\0\x80\2\xb9\0\x8f\b\x94\0\x8d\0\x80%\x91\0\xca\0\x8f\a\xce\0\x80\r\xa5\0\x8f\a\x89\0\xd1\0\x80\3\xca\0\x8f\6\xb0\0\x86\0\x80\5\x86\0\xb8\0\x8f\6\xa8\0\x91\0\x80\3\x9a\0\xb0\0\x8f\a\x85\0\x80\4\xcd\0\x8f\a\xa1\0\xb6\0\x80\3\x8d\0\xad\0\x8f\a\xae\0\x80\4\xa4\0\x8f\a\xac\0\x92\0\x80\4\x8d\0\xa8\0\x8f\6\x89\0\xa7\0\x80\3\xae\0\x8f\a\x88\0\xa1\0\xb9\0\xa9\0\x91\0\xd3\0\xb8\0\xd0\0\x8f\a\xd5\0\x81\0\x80\1\xc0\0\x8f\5\xb3\0\xc4\0\x80\2\x81\0\xc7\0\x8f\a\x9c\0\x81\0\x80%\xbb\0\x8f\a\xa6\0\xd1\0\xb9\0\xbd\0\xc9\0\xcf\2\xce\0\x83\0\x91\0\x8d\0\x80\3\x83\0\x8f\b\x85\0\x80\2\xbc\0\x8f\a\xa7\0\x80\3\x99\0\xcd\0\x9b\0\x8e\0\x89\0\x8f\6\xb7\0\xb6\0\x80\3\xae\0\x89\0\x8f\6\xbf\0\x9a\0\x80\4\x8e\0\x8f\6\x8a\0\xae\0\x80\4\x98\0\xd2\0\x8f\6\xa0\0\xbc\0\x80\3\x99\0\x90\0\x8f\6\x89\0\x85\0\x80\2\x91\0\xce\0\xcb\0\x88\0\x8f\a\xa3\0\xbc\0\x80\2\x92\0\x90\0\x8f\t\x89\0\x8b\0\x9f\0\x8b\0\x8f\b\x89\0\xd1\0\x80\1\x82\0\xaa\0\x8f\5\xb8\0\x86\0\x80\2\x81\0\xaa\0\x8f\6\xb3\0\xd4\0\x80\5\x99\0\x93\1\xcc\0\x92\0\x80\32\x92\0\xb8\0\x8f\a\xd0\0\xa6\0\xa0\0\x8f\6\xd2\0\xb7\0\xd1\0\x8d\0\x80\1\x83\0\x8f\b\x85\0\x80\1\x81\0\x94\0\x8f\a\x98\0\x80\2\xc4\0\xbe\0\x89\0\x8f\t\xce\0\x80\4\x94\0\x8f\a\xb4\0\x92\0\x80\3\xb2\0\xaa\0\x8f\6\x8b\0\x9a\0\x80\4\xa7\0\x8f\a\x87\0\x8d\0\x80\3\xc4\0\xc5\0\x8f\6\xa8\0\xb6\0\x80\1\x91\0\xa8\0\x8f\n\xd5\0\x81\0\x80\2\xc4\0\xc5\0\x8f\26\xb7\0\x99\0\x80\1\xaf\0\x89\0\x8f\5\x9b\0\x80\3\xbc\0\x8f\a\xb0\0\x86\0\x80\4\xba\0\xb1\0\xa8\0\xaa\0\xa6\0\x95\0\xb6\0\x80\31\xbc\0\xb3\0\x8f\24\xac\0\x9d\0\x81\0\xce\0\x8f\a\x88\0\xb9\0\x80\1\x82\0\xa6\0\x8f\6\xb1\0\x8d\0\x80\1\x93\0\xc5\0\x8f\n\xb5\0\x9a\0\x80\3\x8d\0\x89\0\x8f\6\xb3\0\xd4\0\x80\4\xae\0\xa0\0\x8f\6\xad\0\x80\4\x81\0\xbe\0\x8f\6\xa2\0\x83\0\x81\0\x80\2\x8d\0\x94\0\x89\0\x8f\6\xc9\0\x80\1\x93\0\xa6\0\x8f\v\x85\0\x80\2\x92\0\x94\0\x89\0\x8f\25\xa8\0\x9d\0\x81\0\x80\0\x86\0\xd5\0\x8f\5\xa2\0\x9a\0\x80\2\x81\0\x8e\0\x8f\a\xa7\0\x80\4\xc3\0\xc7\0\x8a\0\x8f\3\x87\0\x8d\0\x80\30\xc9\0\x8a\0\x8f\25\xca\0\xae\0\xbe\0\x8f\a\xa6\0\x93\0\x80\1\x8c\0\xa2\0\x8f\6\xb4\0\x81\0\x80\0\xb6\0\xc0\0\x8a\0\x8f\n\xb4\0\x80\4\xa5\0\x8f\a\xb0\0\x86\0\x80\3\xb6\0\x87\0\x8f\a\x8c\0\x80\4\x93\0\x8f\a\xd2\0\x9a\0\x80\3\x9a\0\xbe\0\x8f\a\x83\0\x80\1\xce\0\x9f\0\x8f\n\x90\0\x82\0\x80\2\x82\0\xc2\0\x8f\26\xce\0\x81\0\x80\1\xc4\0\xb3\0\x8f\5\xc2\0\x80\3\x9a\0\xc2\0\x8f\a\xbc\0\x80\4\x84\0\x8f\5\xd2\0\x93\0\x80\27\x99\0\xb1\0\x8f\30\x8b\0\x8f\a\xb1\0\x86\0\x80\0\x81\0\xc1\0\x8f\6\x8a\0\xa4\0\x80\1\x9d\0\xca\0\x8f\n\xd2\0\xbc\0\x80\3\x82\0\xc2\0\x8f\a\x9e\0\x80\4\x98\0\xa3\0\x8f\6\xbf\0\x93\0\x80\3\x81\0\x8e\0\x8f\a\xa7\0\x80\4\xcd\0\x8a\0\x8f\6\xc5\0\x9d\0\x80\0\x92\0\x95\0\x8f\v\xb4\0\x8d\0\x80\1\x92\0\xcf\0\x8a\0\x8f\24\xb3\0\xa4\0\x86\0\x80\2\xa4\0\x8f\6\xc1\0\x80\3\xce\0\x89\0\x8f\6\x95\0\x8d\0\x80\3\x99\0\xb3\0\x8f\5\xd6\0\x91\0\x80\27\xa9\0\xa2\0\x8f!\xc1\0\x81\0\x80\0\xb2\0\xb3\0\x8f\6\xca\0\x9d\0\x80\1\xa5\0\x8f\n\x8b\0\xa4\0\x92\0\x80\3\xc9\0\x88\0\x8f\a\xbc\0\x80\4\xae\0\x8f\a\x95\0\x8d\0\x80\3\x9a\0\xc2\0\x8f\a\x9d\0\x80\4\xcf\0\x8f\a\xbe\0\x86\0\x80\0\x8d\0\xa1\0\x8f\n\xb3\0\xc6\0\x80\1\x8d\0\xaf\0\x9f\0\x8f\24\xb0\0\x85\0\x81\0\x80\3\xad\0\x8f\6\xae\0\x80\2\x81\0\x94\0\x8f\a\x9b\0\x80\4\xcd\0\x88\0\x8f\5\x97\0\x8d\0\x80\27\xce\0\x8f!\x89\0\x83\0\x80\1\xa5\0\x8f\a\xa1\0\x8d\0\x80\1\xae\0\x8f\n\xb7\0\x8d\0\x80\2\x86\0\xce\0\xa0\0\x8f\a\xac\0\x8d\0\x80\3\x92\0\xaa\0\x8f\6\x89\0\x83\0\x80\4\xa4\0\x89\0\x8f\6\xa1\0\x8d\0\x80\3\x86\0\xd2\0\x8f\a\x9c\0\x80\1\x8d\0\xac\0\x8f\n\xb0\0\xcc\0\x86\0\x9d\0\x8e\0\x8b\0\x8f\a\x89\0\x8c\0\xa4\0\xaa\0\xa0\0\x8f\5\xb5\0\x90\0\xa4\0\x82\0\x80\4\x9d\0\x90\0\x8f\5\xbf\0\xbc\0\x80\2\x93\0\xa0\0\x8f\6\xaa\0\x9d\0\x80\3\x86\0\x95\0\x8a\0\x8f\4\xd0\0\xbb\0\x80\27\x8d\0\xbf\0\x8f\17\xd6\1\x8a\0\x8f\16\xbf\0\x8d\0\x80\0\xb2\0\xbe\0\x8f\a\x83\0\x80\2\xbb\0\x8f\n\xb3\0\x80\1\x8d\0\x9d\0\xac\0\xa2\0\x8f\b\xc9\0\x80\4\xbc\0\xa2\0\x8f\6\x9f\0\x86\0\x80\4\x94\0\x8f\a\xc0\0\x80\4\x9d\0\xc5\0\x8f\6\x8b\0\x93\0\x80\1\x92\0\xc0\0\x8f\n\x9f\0\x96\0\xb8\0\xa2\0\x8f\t\x9f\0\x8d\0\x80\0\x99\0\x9d\0\xab\0\x8e\0\x95\1\x8e\0\xcf\0\xba\0\x86\0\x80\5\x86\0\x96\0\x8f\5\x8a\0\xc0\0\x8d\0\x80\2\xbb\0\x8f\a\xb7\0\x8d\0\x80\3\x85\0\xa0\0\x8f\5\xb0\0\x86\0\x80\27\x85\0\xb3\0\x8f\f\xaa\0\x83\0\xbc\0\x86\1\x9d\0\xcf\0\xb5\0\x8f\f\xaf\0\x91\0\x83\0\xb7\0\x8b\0\x8f\6\xc2\0\x99\0\x80\2\xb2\0\xbe\0\x8f\t\x89\0\x8e\0\xc1\0\xb3\0\xa2\0\x8f\t\xaa\0\x9d\0\x80\3\x92\0\x9c\0\x89\0\x8f\6\x9c\0\x80\4\x86\0\xa0\0\x8f\6\xaa\0\xba\0\x80\4\xcf\0\x89\0\x8f\6\xc1\0\x80\3\xc4\0\xa2\0\x8f\27\xd5\0\x80\4\x92\0\x8d\1\x92\0\x80\a\x8d\0\x9c\0\x89\0\x8f\5\xca\0\x98\0\x80\2\x99\0\xb7\0\x8f\a\xa5\0\x80\3\x86\0\xb8\0\x8f\6\xae\0\x80\27\x92\0\x8e\0\x8f\f\xb5\0\xd4\0\x80\5\xd1\0\xb0\0\x8f\v\xc2\1\x89\0\x8f\b\xc0\0\x80\4\x85\0\xa0\0\x8f\27\xb0\0\x8d\0\x80\3\x86\0\xb7\0\x8f\6\xa0\0\x85\0\x80\4\x9d\0\x8f\a\xb8\0\x8d\0\x80\3\x92\0\x94\0\x8f\6\xa0\0\x85\0\x80\3\x8d\0\xc0\0\x8f\27\xb0\0\x80\17\x8d\0\xa4\0\x8b\0\x8f\6\xb4\0\x80\3\x93\0\xb0\0\x8f\6\xb3\0\x86\0\x80\2\x81\0\x84\0\x8b\0\x8f\5\x90\0\x93\0\x80\27\x91\0\xbe\0\x8f\f\xa7\0\x80\a\x91\0\xb3\0\x8f\26\xa4\0\x80\5\xae\0\x8f\27\xa4\0\x80\4\xcd\0\x89\0\x8f\6\xb8\0\x82\0\x80\4\xa7\0\x8f\a\xa5\0\x80\4\xbc\0\xd6\0\x8f\6\xbe\0\x91\0\x80\4\x86\0\x8f\27\x8b\0\xc3\0\x80\r\x9a\0\xc0\0\x8b\0\x8f\6\xbf\0\x98\0\x80\3\xbb\0\xb5\0\x8f\6\xb4\0\x81\0\x80\2\xb9\0\xa8\0\x8f\5\x88\0\x9b\0\x8d\0\x80\27\xcd\0\x8f\r\xb9\0\x80\a\xa9\0\xbf\0\x8f\26\xa7\0\x80\4\x81\0\xad\0\x8f\26\xa2\0\x91\0\x80\4\xab\0\x8f\6\x8a\0\xab\0\x81\0\x80\4\xb8\0\x8f\a\x82\0\x80\3\x99\0\x97\0\x8f\a\xbf\0\x9a\0\x80\4\x9d\0\x8f\27\x8a\0\xac\0\x9a\0\x80\n\x92\0\xcd\0\xa1\0\x8a\0\x8f\6\x8b\0\xa4\0\x81\0\x80\3\xa4\0\x8f\a\xaf\0\x80\2\x99\0\xa1\0\x8f\6\xa6\0\x86\0\x80\30\xc0\0\x8f\r\x9c\0\x92\0\x80\3\x81\0\x9a\0\xa4\0\xb0\0\x89\0\x8f\26\xc2\0\xcc\0\x80\2\x9a\0\xa7\0\xd0\0\x8f\26\xc1\0\x92\0\x80\3\xcc\0\x90\0\x8f\6\xa2\0\x9d\0\x80\5\xb8\0\x8f\a\x93\0\x80\1\x8d\0\xb9\0\xb7\0\x8b\0\x8f\b\x9e\0\x80\2\x8d\0\xd1\0\xbe\0\x8f\17\x88\0\x8f\b\xb8\0\x9d\0\xb6\0\x80\4\x81\0\xb6\0\x93\0\xbb\0\xb7\0\xc5\0\x8f\a\x9f\0\x9c\0\xb6\0\x80\4\xa4\0\x8f\a\xa7\0\x80\0\x81\0\x98\0\xd5\0\x8b\0\x8f\5\xd0\0\xa5\0\x80\30\xb2\0\xaa\0\x8f\r\xa2\0\x95\0\x9d\0\x91\0\x93\0\x9d\0\x9c\0\xa1\0\x8f\32\xac\0\x9e\0\x85\0\xce\0\xa1\0\x8f\27\x89\0\xae\0\x80\4\x83\0\x88\0\x8f\6\xbf\0\x8d\0\x80\5\xc0\0\x8f\a\x97\0\xbb\0\xa5\0\xc1\0\xaa\0\x8f\n\xc8\0\x9c\0\x83\0\xae\0\xc1\0\x90\0\x8f\16\xbe\0\xc1\0\x9b\0\xa0\0\x8f\b\xa0\0\xb8\0\x8e\0\xa5\0\x85\1\xa5\0\xb4\0\x97\0\xb0\0\x8f\t\x8a\0\x94\0\xb6\0\x80\5\xa5\0\x89\0\x8f\6\xa6\0\xbb\0\xc9\0\xd2\0\x8f\6\x9f\0\x9c\0\x92\0\x80\30\xbb\0\xa2\0\x8f\17\xc5\0\xa3\1\xb3\0\x8f\35\x89\0\xa2\0\x88\0\x8f\b\x89\0\xd0\0\x88\0\x8f\2\x9f\1\x8f\a\xb0\0\x98\0\x80\3\x99\0\x95\0\x8a\0\x8f\6\x9e\0\x80\6\x85\0\x8f\b\x88\0\xa2\0\x8f\16\xa0\0\xa2\0\x8f\b\x8a\0\xc1\0\xa4\0\xce\1\xa4\0\x83\0\xb9\0\x91\0\x8d\0\x92\0\x87\0\x8f\v\x89\0\xa2\2\x8f\v\x8a\0\x97\0\x9a\0\x80\6\xa9\0\xca\0\x8f\a\xa2\0\x9f\0\x8f\a\xb0\0\x82\0\x80\30\x8d\0\xad\0\x8f'\x9f\0\xa1\0\xd2\0\x8f\23\xd5\0\xbc\0\xb9\0\xc9\0\xc0\0\xab\0\xa5\0\xc1\0\x8f\a\xc1\0\x81\0\x80\3\x98\0\xc5\0\x8f\6\xa3\0\xa9\0\x80\6\x86\0\xa2\0\x8f#\xaa\0\x93\0\x80\b\x91\0\xbe\0\x8f\31\xa0\0\xc0\0\x86\0\x80\a\xb6\0\xbf\0\x8f\20\xa8\0\xbc\0\x80\31\x9a\0\xcb\0\x8f\6\x8b\0\x9f\0\x8f\25\xa3\0\x9b\0\xae\0\x9c\0\x8e\0\xc1\0\x8e\0\xab\0\xae\0\xd1\0\xcc\0\x85\0\xc5\0\x8f\21\xaa\0\x9d\0\x80\4\xb6\0\xbf\0\x8f\a\xc6\0\x80\4\xa5\0\x8f\a\xac\0\x99\0\x80\a\x94\0\x8f\"\xa2\0\xae\0\x81\0\x80\t\xc3\0\xb0\0\x8f\26\x8a\0\xd0\0\xa7\0\x99\0\x80\t\xd1\0\x8a\0\x8f\16\xd2\0\xd1\0\x81\0\x80\31\x9a\0\xd6\0\x8f\6\x97\0\xa5\0\xa2\0\x8f\23\x90\0\xa5\0\x92\0\x80\b\x81\0\xcd\0\xa2\0\x8f\17\xa8\0\xb9\0\x80\5\x99\0\xc7\0\x8f\6\x90\0\x9a\0\x80\4\xae\0\x8f\6\x8b\0\xa7\0\x80\b\x9a\0\xac\0\x8f\16\xa8\0\x90\0\x8f\17\xa2\0\xae\0\x81\0\x80\v\x91\0\xb1\0\x8f\25\x95\0\xb9\0\x81\0\x80\n\x8d\0\x97\0\x8f\r\xa8\0\xba\0\x80\33\x86\0\xbe\0\x8f\5\xa2\0\xa5\0\x81\0\xc6\0\xd2\0\x8f\20\x8b\0\x97\0\x9d\0\x92\0\x80\v\xc6\0\xd2\0\x8a\0\x8f\v\x8b\0\xd5\0\x9d\0\x81\0\x80\5\x92\0\xb8\0\x8f\5\x8b\0\xc9\0\x80\5\xb9\0\x8b\0\x8f\5\xb7\0\xb2\0\x80\t\xb2\0\xbe\0\x8f\v\x8b\0\xad\0\xc4\0\xa9\0\xb8\0\x8a\0\x8f\v\x8b\0\xa1\0\xcd\0\x8d\0\x80\r\xb6\0\x9b\0\xa8\0\x89\0\x8f\16\x89\0\xa0\0\xc7\0\x83\0\x9a\0\x80\r\xb6\0\xc0\0\x89\0\x8f\t\x8b\0\x94\0\x98\0\x81\0\x80\33\x81\0\xcf\0\x8a\0\x8f\4\x95\0\x92\0\x80\1\x93\0\xd5\0\x8b\0\x8f\f\xa0\0\xb7\0\xce\0\x8d\0\x80\16\x86\0\xab\0\xc2\0\x8f\b\xa0\0\xac\0\xce\0\x86\0\x80\b\xbc\0\xca\0\x8f\4\xab\0\x99\0\x80\5\x8d\0\x9c\0\x8f\3\x9f\0\xa1\0\x98\0\x80\v\x99\0\x9b\0\xa8\0\x8f\a\xa2\0\xd5\0\xa4\0\x8d\0\x80\1\x8d\0\xae\0\xbe\0\x89\0\x8f\a\x88\0\xb8\0\x9b\0\x99\0\x80\21\xb2\0\xa4\0\xb7\0\xb3\0\x8f\n\x88\0\xbe\0\xb4\0\x9d\0\x8d\0\x80\20\x92\0\xa4\0\xa6\0\x8f\6\xa0\0\xb7\0\xae\0\x8d\0\x80\36\x9a\0\xd5\0\x89\0\x8a\0\x89\0\xd0\0\x94\0\x91\0\x80\3\x8d\0\x98\0\xcf\0\xaa\0\x8b\0\x89\0\x8f\3\x89\1\x9f\0\x88\0\xb4\0\xcd\0\x9a\0\x80\21\x81\0\x9a\0\xa5\0\xcf\0\x96\0\xa3\0\x88\1\xbe\0\x8e\0\xce\0\xd1\0\x9a\0\x80\v\x98\0\xb4\0\xa8\0\x88\0\x94\0\x8c\0\x8d\0\x80\a\x99\0\xae\0\xbf\0\x88\0\xa6\0\xaf\0\x9a\0\x80\r\x81\0\xa9\0\x8c\0\x9c\0\xb8\0\xd0\0\x88\0\xaa\0\x94\0\x9b\0\xb9\0\xb2\0\x80\5\x86\0\x85\0\xc9\0\xad\0\xa8\0\x88\1\xbf\0\x94\0\xce\0\x85\0\x9a\0\x80\25\x99\0\xbc\0\x8c\0\xab\0\xad\0\xa6\0\x88\2\xaa\0\x95\0\xcf\0\xae\0\x85\0\x9a\0\x92\0\x80\24\xcc\0\xbd\0\xc0\0\xcb\0\x88\0\xc5\0\xac\0\xc9\0\x85\0\x9a\0\x80!\x81\0\xc4\0\xa5\0\xbb\0\xa9\0\x80\t\x91\0\xba\0\xa4\0\x94\2\xae\0\xd1\0\x93\0\x8d\0\x80\xfe\x80\xfe\x80\xfe\x80\xfe\x80\xfe\x80\xfe\x80\xfe\x80\xfe\x80\xfe\x80A"
)


Le problème venait en fait de l'image qui est loin d'être aussi simple qu'il n'y paraît. L'image en réalité n'est absolument pas monochrome ; l'inscription bénéficie en effet d'un lissage en niveaux de gris avec pas moins de 252 tons différents, qu'img2calc réduisait malgré tout à 87.

Afyu pour sa part avait signalé la miniature de Super Dupont ci-contre, donnant quant à elle un script de 34,4 Ko ne rentrant même pas sur une NumWorks :
Code: Tout sélectionner
#palette for your image
#252 RGB-888 colors
palette = (
(0,67,116),(2,63,107),(2,54,99),(7,71,116),(7,71,107),(2,50,107),(0,63,99),(7,63,99),(0,63,90),(0,54,107),(7,80,124),(27,80,107),(7,84,133),(45,97,124),(7,76,116),(7,63,90),(0,54,99),(0,45,90),(0,35,81),(0,50,81),(2,80,116),(0,12,45),(7,54,81),(0,2,7),(0,31,64),(0,45,99),(0,54,116),(7,31,45),(0,12,27),(7,50,73),(7,12,27),(0,31,45),(0,45,73),(7,35,64),(0,7,7),(0,84,133),(2,4,45),(2,2,2),(27,50,73),(0,0,2),(7,12,7),(2,109,175),(2,7,2),(0,101,157),(0,0,18),(7,31,36),(7,2,7),(0,80,182),(0,0,0),(0,114,207),(0,2,27),(7,135,190),(0,50,149),(0,67,167),(0,80,149),(0,35,90),(27,118,175),(116,118,141),(107,151,175),(27,0,0),(149,155,167),(27,31,27),(116,76,73),(182,88,99),(157,84,107),(215,109,107),(0,21,73),(0,35,99),(0,84,207),(81,114,141),(141,122,133),(231,59,64),(239,80,73),(141,84,73),(255,54,45),(255,35,27),(239,105,99),(141,45,36),(255,84,64),(81,54,73),(107,45,36),(81,84,90),(215,76,73),(255,31,8),(223,63,45),(0,12,64),(247,67,45),(239,101,90),(239,41,36),(45,67,73),(255,67,55),(215,50,45),(174,80,73),(81,71,81),(174,50,45),(0,35,157),(7,101,149),(255,50,27),(45,50,45),(255,71,64),(207,114,81),(36,45,45),(0,0,7),(0,17,81),(157,105,81),(81,101,107),(73,41,45),(36,88,141),(141,76,45),(73,101,167),(124,84,81),(0,58,207),(90,88,99),(81,58,99),(64,54,64),(223,35,27),(247,8,2),(73,84,107),(116,67,45),(174,80,55),(45,54,64),(81,67,64),(141,105,81),(73,67,81),(107,88,107),(182,114,107),(64,63,64),(0,26,81),(90,21,18),(99,58,64),(81,63,55),(174,26,27),(45,31,27),(7,35,99),(207,7,2),(207,31,27),(190,12,7),(157,17,7),(215,26,18),(247,31,7),(174,26,18),(107,4,2),(157,22,18),(190,31,27),(133,17,18),(198,12,27),(207,35,27),(45,17,27),(99,101,107),(141,114,107),(174,4,2),(124,97,90),(149,4,2),(174,155,149),(116,12,7),(73,80,81),(223,0,0),(73,4,2),(174,114,81),(215,151,141),(215,183,175),(207,203,207),(215,211,207),(231,232,231),(255,247,240),(149,168,157),(190,172,149),(239,155,141),(124,12,7),(215,172,149),(223,232,240),(215,240,247),(207,216,223),(223,220,223),(239,236,240),(223,228,231),(141,131,116),(157,172,175),(239,220,223),(215,143,107),(207,199,190),(182,179,175),(190,187,190),(190,199,190),(174,172,175),(207,191,198),(124,135,141),(190,199,207),(255,255,255),(239,251,255),(0,26,73),(182,224,231),(157,155,149),(141,139,141),(141,143,149),(255,251,255),(36,4,7),(190,207,215),(166,168,157),(45,35,45),(223,224,231),(247,232,215),(27,31,45),(27,17,27),(107,109,116),(133,12,7),(116,118,124),(36,31,18),(0,17,64),(133,0,0),(174,183,190),(239,240,240),(247,247,247),(174,139,116),(149,151,141),(255,236,223),(239,240,247),(247,243,247),(239,187,175),(166,159,167),(239,151,116),(247,203,175),(73,151,182),(239,183,157),(255,216,190),(255,203,190),(239,203,190),(36,101,141),(255,172,133),(239,216,207),(190,135,99),(255,240,240),(124,139,149),(255,187,157),(182,187,198),(247,179,149),(223,155,116),(141,176,198),(27,151,207),(36,168,215),(7,0,0),(36,139,182),(7,109,149),(255,220,207),(239,172,141),(247,168,124),(215,155,107),(255,199,175),(255,199,149),(207,220,231),(182,135,90),(107,172,207),
)

#your image data
#75x100 RLE-8 pixels
image = (
b"\0\0\1\0\2\0\1\2\0\0\3\1\1\1\3\0\4\2\5\0\1\0\6\0\2\0\a\0\b\0\6\0\a\1\6\1\b\0\6\0\4\1\t\0\4\1\2\0\n\0\v\0\f\0\r\0\3\0\n\1\4\0\16\0\n\3\r\0\n\2\4\1\n\0\v\0\n\0\r\0\n\1\v\0\n\0\4\2\v\0\4\0\v\0\17\0\4\1\v\0\4\1\v\0\4\0\t\0\20\0\t\1\20\0\t\2\1\3\t\0\0\0\1\1\6\3\21\0\22\0\23\0\21\0\23\0\21\0\2\1\1\0\2\0\6\0\3\1\1\0\6\0\n\0\2\0\4\0\3\0\4\0\3\0\1\0\4\0\16\0\n\0\16\0\3\1\n\0\4\0\n\0\a\0\4\0\20\0\a\0\24\0\3\0\4\0\6\0\4\0\v\0\4\3\a\0\b\0\6\0\4\0\b\1\a\0\17\0\b\0\17\0\1\0\20\1\t\5\1\1\24\1\25\0\2\0\3\0\t\0\1\0\t\0\26\0\23\0\21\0\2\1\6\0\t\0\6\0\24\0\1\2\3\2\0\0\n\0\27\0\t\0\16\0\30\0\3\0\n\0\4\1\3\1\n\0\3\0\n\0\3\0\n\0\4\0\n\0\4\3\1\0\4\1\v\0\4\0\b\0\24\0\v\0\4\0\a\1\24\0\17\0\a\0\4\0\17\0\b\0\24\0\1\0\31\1\1\1\32\0\6\0\t\1\1\0\20\0\0\0\33\0\34\0\35\0\26\0\36\0\24\0\20\0\37\0 \0\23\0\0\0\20\0 \0\37\0\23\0\2\0\1\0\t\0\3\0\16\0\n\1\f\0!\0\"\0\n\1\26\0\a\0\4\1\6\0\3\0\n\0\3\1\16\0\24\0\4\0\16\0\3\2\n\0\v\0\4\0\a\0\4\0\24\0\17\0\b\1\a\0\4\2\17\0\4\0\17\0\4\0\17\1\4\0\t\0\31\0\t\2\1\0\6\0\1\1\24\0\0\0\22\0\37\0\0\0\25\0\36\0\37\0\24\0#\0\a\0\"\0$\0\21\0\0\0\30\0\27\0 \0\23\0\t\0\2\0\30\0\4\0\26\1\f\0\34\0\35\0!\0\26\0\33\1\n\1\4\0\3\0\16\0\n\1\4\0\n\1\4\0\n\0\4\1\n\2\3\0\n\0\4\1\n\0\4\3\v\0\4\0\16\0\a\0\17\0\4\0\17\0\24\0\t\0\31\0\t\1\1\1\t\0\0\1\1\0#\0\37\0\30\0\24\0\"\0\36\0\23\0\0\0\23\0\25\0\33\0\23\0\34\0\23\0\34\0\30\0\f\0 \0\33\0\30\0\27\0\33\0\36\0\16\0\26\0%\0!\0\34\1\36\0\26\0\f\2\n\0\f\0\r\0\n\0\f\0\n\0\v\0\24\0\3\0\24\0\n\0\26\0\35\0\n\1\26\0\35\0\17\1\35\1\26\0\35\1&\0\35\0\4\1\17\1\4\0\3\0\t\0\31\2\20\0\6\0\1\0\4\0\t\1\30\0\"\0\37\0'\0$\0#\0\6\0\27\0\34\0\30\0\37\0\33\1\34\0 \0\0\0\25\0\34\0\"\0$\0\27\0!\0\f\0\2\0\"\0\33\0\35\0(\1\4\0\f\0\2\0\26\2\5\0\35\0\33\0\4\0\23\0\35\0\17\0\v\0\23\0\0\0\4\0\26\0\"\0\37\0)\0\34\0*\0)\0\22\0\37\0+\0#\0\0\1!\0\b\0\4\0\17\1\1\0\t\1\20\0\31\0\21\0\1\0\0\0\6\0\20\1\t\1\34\0\27\0\23\0\3\0\30\0\25\0\26\0,\0\"\1\27\0\"\0\35\0\3\0\36\0\34\0-\0\26\0\34\0\36\0\4\0\36\0!\1\t\0\0\0\t\0\26\0\4\0.\0\0\0/\x000\0\23\x001\0\34\0\21\x001\0/\0\0\0\27\0\20\x001\0)\0/\x002\x000\0\f\x001\0\25\x011\0\32\0\0\x003\x001\x003\0+\0\30\0\17\1\v\0\5\0\21\0\20\0\31\0\20\1\t\0\23\1\30\0\21\0\t\0\0\0\25\0\34\0\37\0\0\0\23\0\34\0\37\0\"\0\34\0 \0\0\0\30\0 \0\23\0\35\x004\0\23\0\36\x005\x006\0\0\0\34\0\4\0\36\x007\x001\0/\0+\0 \x000\0\"\x001\0/\x000\0\32\x001\0\25\0\32\0)\x001\0\0\0\34\0\0\0)\08\09\0\33\0'\0\r\0:\0;\0\34\0<\0=\0>\0?\0@\0A\0?\0\37\0\4\1\2\0\21\0\20\0\31\0\t\0\6\0\30\0B\0\22\0C\0\22\0-\0\27\0 \0\23\0\33\0\23\0\30\0!\0\5\0\31\0\5\0\26\0\4\0\34\x004\x005\2/\0\25\0\31\0D\0/\0D\0\5\x000\x014\0/\1D\0\34\x000\0\34\08\0E\x000\0E\0F\0(\0@\0G\0H\0I\0\25\0E\0J\0K\0L\0\33\0M\0N\0O\0P\0N\0Q\0R\0K\0S\0T\0P\0\6\0\17\1\2\x007\0\t\2\30\0C\x005\x024\x002\0\25\0\22\0\23\0\30\x004\0\32\0\27\x005\0/\x005\1C\x000\0\30\0/\x005\x006\x005\x012\0\32\x005\1/\0U\x000\1E\0@\0?\0F\0-\0*\0V\0W\0\17\0V\0X\0Y\0Z\0[\0X\0V\0Q\0K\0H\0\\\0J\0]\0^\0S\0>\0\\\0H\0(\0\33\0W\0R\0 \0\23\0\4\0\17\1\1\0\31\0\t\0\0\0\34\x002\x004\x025\1_\x005\x004\0\34\0\27\x005\0D\0\25\1/\x004\x005\0D\0\25\x000\0C\x005\2`\0\v\0(\09\0@\0?\09\0\"\x000\0H\0K\0J\0a\0\\\0\17\0J\0^\0\37\0N\0M\0b\0Z\0\26\0>\0c\0d\0J\0e\0\34\0T\0\\\0H\0S\0A\0L\0M\x000\0=\0N\0P\0\31\0\4\0 \0\17\0\v\0\t\0\31\0\t\x010\0'\0\32\0_\x004\0_\x005\x014\0/\0C\x000\x002\0D\0/\0f\0g\0/\x005\0/\1'\x000\09\0?\0[\0a\0A\0Y\0a\0K\0a\1h\0\33\0Z\0R\0i\0X\0J\0Q\0c\0P\0e\0H\0j\0P\0N\0k\0J\0\\\0T\0R\x000\0%\0H\0\\\0R\0A\0S\0N\0b\0'\0l\0N\0\35\0\23\0\35\0\17\2\1\0\20\0\t\0\22\x000\1$\0C\0_\0m\0n\0?\0n\0_\0o\0$\x000\x007\0D\0\n\0,\0p\0@\0R\0?\0q\0\34\0N\0K\0Z\0V\0>\0b\0J\0>\0Q\0K\0c\0\r\0c\0l\x000\0R\0Z\0I\0Z\0b\0P\0W\0r\0\\\0K\0Z\0V\0e\0s\0R\x004\0M\0H\0R\0^\0O\0S\0T\0\27\1N\0T\0\b\1\17\1\26\0\17\0\t\0\31\0\t\0\23\0%\x000\1\4\0d\0a\0S\0a\0\\\0\25\0m\x010\0(\0A\0R\0Y\0c\0S\0a\0t\0c\0u\0a\0G\0D\0B\x000\0v\0N\0\5\0\35\0Z\0w\0r\0N\0q\0\23\0Z\0\\\1c\0#\0M\0Z\0\17\0[\0S\0\\\0\4\0\"\0R\0a\0R\0N\0n\0H\0M\0\36\0L\0n\0\30\0&\0h\0x\0\6\0\a\0\17\1\23\0\4\0\2\0\20\0\21\0\0\0\25\x000\0=\0W\0S\1N\0A\0y\0e\0N\1\"\0&\0J\0s\0Y\0c\0R\0Q\0[\0a\0z\0X\0R\0k\0u\x000\0M\0N\09\0c\1\37\0P\0Z\0`\0@\0Z\0&\0M\0J\0E\0J\0^\0b\0N\0I\0\1\0#\0\6\0{\0R\0a\0|\0 \0n\0&\0\17\0\4\0\26\0\4\0\33\0\27\0\21\0\4\0\17\3\4\0\2\0\20\0\31\0\0\0\t\0'\0I\0J\0K\0}\0\v\0\27\x000\0~\0J\0R\0%\0Y\0c\0^\0Y\0N\0I\0\0V\0[\0Q\0J\0S\0a\0d\0\27\0I\0J\0S\0H\0e\x000\0\\\0c\0}\0K\0@\0\x80\0\x81\0R\0a\0R\0 \0y\0A\0 \0#\0\4\0\f\0\0\0 \0\37\2\"\0\23\0\"\0,\0\"\1\27\0\34\0\a\2\17\0\a\0\26\0\4\0\2\0\31\x007\0\31\0\32\0 \0T\0S\0N\0/\0_\x000\1\x82\0Z\0R\0%\0y\0c\0^\0r\0N\09\0@\0Z\0y\0r\0a\0R\09\0!\0\27\0[\0c\0N\0R\0\30\0'\0H\0K\0J\0I\0j\0t\0\x83\0v\0I\0P\0\x84\0\30\0\21\0+\0k\0\4\0\f\0\33\0'\0\"\0,\0(\0\34\0\26\0\33\0\35\0\26\0\a\0\16\0\4\0\a\3\26\0\b\0\4\0\1\0\t\1\22\1\30\0\\\0K\0S\0?\0D\0\x85\x000\0y\0Z\0\\\x000\0y\0Z\0I\0j\0c\0K\1}\0\"\0M\0J\0m\0o\0C\0=\0J\0\\\0u\0V\0W\0\v\0@\0I\0n\0P\0\x86\0\x87\1\x88\0\x89\0\x8a\0\x8b\0\x8c\0\x80\0\26\0#\0+\0\f\0\2\0\a\1\n\3\f\0\n\0\3\0\16\1\4\1\2\0\4\0\a\0\4\0\17\0\4\0\t\1\0\0\37\0U\x004\0\35\0W\0S\1W\0m\0\27\0j\0N\0R\0%\0>\0c\0P\0O\0J\0K\0?\0\34\x000\0\\\0J\0@\0^\0R\0Y\0L\0l\0\x8d\0I\0l\0P\0M\0\x8e\0\x86\0\x8a\0\x8f\2\x87\1\x8f\1s\0\x8a\0\x88\0\x80\0\23\x006\0`\0\f\2\n\0\3\0\4\0\3\3\4\4\26\0\2\0\17\0\4\0\2\0\21\0\0\0 \x000\0/\x004\0=\0d\0c\0t\0Z\0n\0x\0J\0A\0\25\0M\0N\0\x82\0j\0J\0@\0\x90\0\x8d\0,\0R\0J\0Z\1I\0j\0n\0M\0\x86\0\x88\0\x89\0\x8a\1s\0\x91\0\x87\4\x8f\4\x92\0\x8b\0\x88\0\x93\0\0\0+\0\f\0\16\0\f\0\3\0\16\2\3\2\4\3\26\0\a\0\26\0\4\0\2\0\31\0\32\0\21\x000\x007\0D\0$\0\"\0\x94\0H\0t\0Z\0\x95\0K\0?\x005\0I\0J\0~\0P\0c\0>\0\x96\0\x8a\0j\0\x97\0I\0>\0\x81\0\x90\0\x8a\0\x86\0\x91\0\x87\1\x92\0\x8f\0\x87\0\x92\0\x87\0\x92\1\x87\a\x8f\1[\0\x8b\0\x98\0\22\0+\0\f\0\16\0\n\0\16\1\n\0\3\1\16\0\3\0\4\1\a\0\5\0\a\0\17\1\2\0\20\0\t\0\0\0\27\x000\0/\0_\x000\1i\0J\0S\0\x99\0J\0t\0}\0X\0Z\0Y\0I\0A\0j\0\x88\1\x8f\0\x9a\0\x8e\0\x86\0\x8a\0\x86\0\x8a\0\x92\0\x91\0\x86\0\x91\0\x86\2\x91\0\x8a\1\x92\0\x87\0\x92\1\x87\2\x92\0\x87\2\x8f\0\x87\0\x8b\0\x86\0\36\0#\0`\0\16\2\3\4\4\0\5\0\4\1\a\1\4\0\2\0\31\1\0\0\22\0%\0?\0m\0\26\0-\0@\0K\0J\0\x9b\0Q\0Z\0S\0J\0@\0\x80\0\x81\0P\0\x89\0\x87\0\x83\0\x87\0s\0\x8a\0\x87\0\x88\0\x96\2\x88\0\x87\0[\0^\0[\1J\0\x86\1\x9c\0\x86\0\x8a\0s\1\x87\1\x92\1\x8a\0\x92\0\x87\1\x8f\0s\0t\0\x9d\0#\0`\0\16\1\3\0\16\1\3\1\4\4\a\0\16\0\2\0\31\0\20\0\t\0\21\0\37\0Z\0S\0H\0W\0S\1d\0-\0\x80\0>\0@\0n\0P\0\x86\0\x96\0\x88\0\x8f\0\x83\0\x8f\1\x88\0\x9c\0\x96\0\x92\0\x9e\0\x9f\0\xa0\1\xa1\0\xa2\1\xa3\0\xa4\0\xa5\0\xa6\0\x9f\0\xa7\0R\0\x86\0\x9c\0\x86\0\x92\0s\0\x92\0\x87\0s\0\x87\0\x92\0\x87\0\x91\0\x8f\0\x92\0\x8b\0\x9d\0\24\0`\0\n\0\16\3\5\0\3\1\4\1\a\0\4\0\v\0C\0\21\0\20\1\32\0\21\0d\0a\0K\0S\0a\0A\0Y\0\xa8\0\x88\0\xa8\0\x9a\0\x98\0\x96\0\x83\0\x8c\0\x83\0\x88\0\x8f\0\x88\0\x96\0\x91\0\x9e\0\xa9\0\xa2\0\xaa\0\xab\0\xac\0\xad\0\xae\1\xaf\0\xa2\0\xb0\0Y\0\xab\1\xb1\0\xaa\0\xb2\0\x9f\0[\0\x9c\1[\0s\3\x92\0\x87\0\x92\1s\0\x8b\0\x8d\0#\0+\0\16\0\f\0\16\1\3\0\5\0\3\0\4\2\a\0\4\0\23\x007\0\21\1\20\0\31\0\23\0u\0n\0I\0u\0\37\0\x8d\0\x8a\0\x89\0\x8c\0\x88\0\x83\0\x8c\1\x83\0\x8f\0\x88\0\x96\1\xb3\0\xa2\0\xab\0\xad\0\xa2\0\xb4\0\xa1\0\xa3\0\xa2\0\xb4\0\xb5\0\xb6\0\xb7\0\xb8\0\xa3\0\xb6\0\xb5\0\xb9\0\xba\0\xbb\0\xbc\0\xbd\0\xa0\0R\0\x9c\0\x86\0X\0\x87\0s\2\x92\3S\0\x9d\x006\0\f\0\16\1\3\0\16\0\n\0\3\0\4\2\2\0\16\0\26\0\21\1\31\0\21\0\20\0\31\x007\0\xbe\x004\0$\0\x8d\0\x8f\0\x89\1\x83\1\x8e\0\x8c\0\x83\1\x96\0\x9c\0\x9e\0\xa1\0\xbf\0\xa1\0\xb4\0\xa1\1\xa2\0\xaf\0\xb5\0\xc0\0\xc1\0\xc0\0\xb5\0\xc2\0\x94\0e\x000\1~\0\xa2\0\xc1\0F\0\xaf\0\xc3\0\xbd\0\xa9\0\x8a\0\x9c\0s\4\x92\1\x87\0s\0\x8b\0\xc4\0+\0\f\0\16\0\3\0\0\0\16\2\4\3\23\0C\0\21\0\20\0\31\0\20\1\t\0#\x007\0\x8d\0\x88\0\x89\2\x83\0\x8e\0\x8c\1\x83\0\x96\1\xa9\0\xc5\1\xb6\0\xb4\0\xa1\0\xb4\0\xad\0\xa3\0\xc6\0~\0b\0\xc7\0(\x000\6=\0\xa1\0\xb6\0F\0\xc1\0\xc8\0\xbd\0\xb2\0R\0\x9c\0s\0X\0s\3\x92\0\x87\0X\0t\0\33\0+\0\16\0\f\0\16\0\n\0\3\0\16\1\4\1\16\0\23\0\22\0\0\21\0\31\0\20\0\31\0\t\0\32\0\xc4\0\x88\0\x89\0M\0\x89\2\x8e\0\x83\0\x8c\0\x96\0\x8f\0\xb7\0\xbf\0\xb5\0\xb6\0\xb4\0\xa1\0\xb7\0\xc9\0\xaf\0\xb0\0\xca\1\xcb\0\36\0\xcb\1\xca\1=\0\"\x000\2'\0\xcc\0\xb8\0\xc0\0F\0\xad\0\xbd\1\xa7\0\x9c\0\x8a\0s\2\x92\0s\0\x92\0\x87\0X\0\x96\x007\0+\0\f\0\16\1\3\1\5\0\3\0\5\0\16\0\22\1\1\22\1\31\0\0\0$\0\x96\0\x8e\0\xcd\0\x89\1\x83\0\x8c\1\x88\0\x96\0\\\0\xc5\0\xbb\0\xb5\0\xb7\0\xb4\0\xb7\0\xb4\0\xc9\0\xad\0y\0(\0\xca\0{\0\xca\0'\x000\0.\0\xca\1\27\x000\6\xb5\0\xc1\0\xc6\0\xc3\0\xaf\0\xbd\0\xa0\0\x9c\0\x8b\0X\0s\2\x92\0s\0\x87\0S\0\xa8\0#\x006\0\16\0#\0\16\0#\0\3\1\4\0\v\0\22\0\30\0\22\0\0\22\1\32\0\21\0\x8d\0\x88\0\x90\0\x89\3\x8c\0\x83\0\x98\0l\0\xbb\0\xb7\0\xa6\0\xb7\2\xb4\0\xad\0\xaf\0~\0(\0b\0=\0'\x000\1\xcb\0r\0x\0(\0'\x000\3%\0<\0\xb6\0\xaf\0\xce\0\xa1\0\xa4\0\xa3\1\xbd\0\xb9\0\x9c\0\x8b\0s\0X\0s\2\x92\0[\0\x8b\0\xca\0+\0\16\1\f\0\n\1\16\0\3\0\16\x007\0\0\22\1\0\21\1\xcf\0\x8c\0\x90\1\x89\3\x8e\0\x98\0l\0\xb7\0\xb5\0\xc6\0\xb4\1\xb5\0\xb4\0\xa1\0\xa2\0\x94\0e\0\xc7\0.\x000\0'\0\xca\0]\0u\0r\0.\0'\x010\4\x94\0\xbc\1\xc2\0\xaa\0\xae\0\xa3\1\xaf\0\xbd\0\xa0\0\x9c\0S\0X\0s\3\x87\0K\0\x96\0\32\0`\0#\0\16\0\n\0\0\0\f\0\0\0\3\0\22\0\21\0 \0\22\1\32\0\xd0\0\xd1\0\x89\0\x90\0\x89\3\x8c\0\x98\0\x96\0\xb5\0\xd2\0\xc6\0\xa6\0\xb5\1\xb4\2\xc0\0{\0r\0.\1\xc7\0p\0\xcc\0]\0(\x000\6=\0\xc2\0\xb5\0\xd3\0\xbc\0\xa0\0\xa2\0\xd4\0\xa3\2\xae\0\xbd\0A\0\x9c\0X\0s\1X\0s\2S\0\x93\0)\0\f\0#\0\3\1\n\0\0\0\16\0\t\0\21\0\x007\0\21\0\31\0\xc4\0\x96\0\xcd\1\xa8\0\x90\0\x89\2\x98\0\xd5\0\xb1\0\xd6\0\xc6\0\xb5\0\xb7\0\xb6\1\xb4\0\xb6\0p\0u\0\xca\0\xc7\0]\0|\0\xcc\0r\0\27\x000\6=\0\xce\0\x94\0(\0*\09\0\xa0\0\xad\0\xd4\0\xae\0\xd7\0\xae\2\xbc\0R\0t\0X\1s\1X\0s\0X\0\x96\0\t\0`\0\f\2\n\0\16\0\n\0\2\0\t\0\22\1\31\0\30\0\xa8\0\x89\0\xcd\2\x8e\0\x90\0\x89\0\xd1\0I\0\xb7\0\xb0\0\xc6\0\xb5\2\xb7\0\xb4\0\xc6\0\x94\0u\0{\0x\0]\0p\1q\0%\x000\a%\x000\1(\0'\0%\0\xbb\0\xbc\0\xc3\1\xd3\0\xae\1\xa3\0\xbd\0\xa3\0\x9c\0\x8b\0X\1s\1X\0s\0S\0\xc7\0/\0\f\0#\0\f\0\n\0\16\0\f\0\2\0\31\x007\0\22\x007\0\xcb\0\x98\0\xcd\0\x90\0\xcd\0\x89\0\x90\0\xcd\0\x98\0\x89\0\xa5\1\xd5\0\xa5\0\xc6\1\xb7\0\xa2\0\xc6\0{\0Y\0q\0x\0{\1]\0r\0.\x000\6'\1.\0\xc1\0\xb6\0\xb5\0\xc1\0p\0\xa1\0\xd8\0\xa3\0\xc8\0\xa3\0\xd9\0\xbc\0\xd9\0\xa3\0\xbd\0\xa7\0\x9c\0X\2s\1\x8a\0K\0\x89\x004\0`\0\f\1#\0\3\0\16\0\23\x007\0\22\0\21\0\30\0\x9d\0\x98\0\xcd\1\x90\1\x89\1\xd1\0\x95\0\xd2\0\xb0\0\xa5\0\xc6\1\xa6\0\xa2\0\xb0\0e\0=\0.\1\36\0.\0(\0\36\x000\6\xca\0]\0r\0%\0Q\0\xbc\09\x000\0\xa1\0\xd6\0\xc0\0\xa2\0\xa1\0\xac\0\xad\0\xb5\0\xb6\0\xd3\0\xc3\0\xd8\1s\0t\0G\0X\4t\0!\0)\0\f\2#\0\f\0\23\0\0\22\0\20\0\37\0\x8d\0\xcd\2\x90\2\xd1\0\xcd\0\xa5\1\xc6\0\xd6\0\xc6\1\xb4\0\xb0\0'\x000\2'\x000\6,\0b\0\x95\0\x99\1\xda\0\xa9\0%\0(\0\xd4\0\xd3\0(\0\xc4\0|\0p\0\xca\0=\0r\0\xce\0\xa2\0\xb5\0\xc2\0\xae\0\xd9\0\xbd\0\xa7\0\x9c\0X\5K\0\x80\0+\0\f\x006\0\n\0\f\1\22\1\21\0\t\0\xcf\0\x98\0\xcd\1\x90\1\x89\0\x90\0\x8d\0z\0\xa5\0\xc1\0\xd5\0\xc6\2\xb5\0y\x000\v\x84\0\x9f\0\x99\0\x95\0\xa6\0z\0\xcf\x000\1\xcc\0\xbc\0\xdb\0\xcf\0Y\0\xb8\0\27\0f\0.\x000\0\x94\0\xbc\0\xad\0\xc1\0\xbc\0\xd8\0\xd3\0\x8b\0S\0X\1s\0X\0s\0K\0\x96\0#\0+\0\f\1#\0\f\0\23\0\xbe\0\22\1\x9d\0\x98\0\xa8\2\xcd\2\x98\0\xc1\0\xa5\0\xb0\0\xa5\0\xc6\0\xd6\0\xb0\2\33\0-\1\"\2%\0(\2b\0\xca\0\"\0(\0I\0j\x000\0(\0\"\0~\0\x84\0\x95\0\xbc\1\x95\0j\0\xb9\0%\0\36\0\27\x000\0\xa2\0\xd4\0Q\0\xc2\0\xbc\0\xd4\0\xbc\0L\0t\0K\0X\2s\0X\0t\0\2\0)\x006\0\f\0#\0\f\0\22\0\xbe\1\25\0\x8d\0\x89\0\xa8\1\x9a\0\xcd\0\xa8\0\xd1\0M\0\xa5\0\xd6\0\xa5\1\xd6\0\xb0\0\xcc\1i\0\4\0\v\1\n\0\6\0\v\0\x9b\0)\0=\0l\0\xd5\0\xb4\0\x95\0P\0\xdc\0\x9e\0\x93\0}\0\xc6\0\xd6\0\xdd\0\x95\0\xc0\0\xbc\0\x95\0\xa0\0r\0\27\x000\0*\0\xa2\0\xa1\0!\0{\0\xbc\0\xc8\0\xac\0\xd8\0\xa0\0\x9c\0t\1S\0K\0X\1S\0j\0)\x006\0`\0#\0\f\0\23\0\xbe\x007\0\25\0\xa8\0\xcd\0\x90\0\xcd\0\xa8\0\xcd\0\x90\0\xd1\0I\0\xa5\0\xb0\3\xce\0\xcc\0\xce\0Y\0\b\0\17\1 \0\x97\0\xa9\0\xde\0)\0\xcb\0R\0\xdf\0\xda\0}\0\\\0\xe0\0\x9e\0\x93\0}\0\xa7\0\xe1\0\xbc\0\x9e\0~\0\xaf\0\xe2\0\xb5\x000\0%\0\36\0\xa3\0\xc0\0$\x000\0\xc2\0\xaf\0\xa1\1\xa3\0\xd3\0\xa0\0A\0R\0s\0\x9c\1\x8b\0a\0\x80\x006\0`\x006\0\f\0#\0\35\0\x007\0\36\0\xd1\0\xa8\0\xcd\0\x90\0\xcd\0\x90\0\xcd\0\xd1\0\xce\0\xa5\0\xd6\1\xc6\0\xd6\2\xba\0\b\0\v\0\b\0\34\0\xb0\0\xe0\0\xa7\0\xe3\x003\0\4\0M\0\xe4\0\xe5\0\xa9\0\x9e\0W\0\x80\0b\0\xe6\0\xdf\0\xe7\0\xe4\0\x9d\0\xd2\0\xae\0\x94\0~\x000\0e\0\xad\0p\0'\0Y\0\xa0\0\xad\0\xb2\0\xe5\0\xa2\0\xe2\0\xe5\0\xc3\0\xbc\0\xc3\0\xd4\0\xe2\0A\0\x8a\0t\0\xd1\x006\0+\0#\x006\0`\0\22\2\xc4\0\xcd\0\x9a\0\xa8\0\x90\2\xd1\0\xcd\0\xd6\0\xa5\0\xd6\2\xc6\1\xb4\0\xe8\0\24\x003\0\17\0\x99\0\xe9\0\xa9\0\xe1\0\xde\0+\1O\0L\0\xa9\0\xc4\0R\0\xe2\0\x9f\0\xdc\0v\0j\0\xda\0d\x000\0\x99\0\xbc\0\xcb\x000\0x\0\xea\0j\0\27\0\xc0\0\xa0\0\x95\0~\0\35\0\4\0\v\0\4\1\v\0u\0i\0\xc1\0\xd2\0\xd9\0\xd4\0\xa7\0\x89\0U\0/\0+\0\f\1\23\0\22\x007\0\xc4\0\x98\0\xa8\3\x9a\0\xcd\0\x90\0\xa5\0\xd6\2\xa5\0\xc6\0\xa6\0\xb4\0\xba\0#\0\37\0\xa6\0\xd4\0\xe2\0\xc8\0\xd4\0\xb5\x006\0#\0i\0\xdc\0}\0(\0I\0\xe1\0\xdc\0\xa8\0\xcb\0\xc7\0\xeb\0\xec\0\xcb\0n\0\xad\0=\0-\0\xed\0\x84\0\"\0\xba\0\x94\0 \0\22\0+\0)\x003\0\xee\0\xef\0\xee\x003\0)\0`\0\0\0\a\0x\0\xba\0\xa2\0\xd4\0\xb1\0\16\0C\x006\0`\0\22\1\30\0\xc4\0\xcd\0\xa8\0\x9a\0\xa8\1\xcd\0\x98\0M\0\xe8\0\xb0\0\xd6\0\xa5\0\xd6\0\xc6\0\xa6\0\xb4\0\xe3\0\b\0\x9b\0\xe0\0\xe5\2\xd4\0\xa0\0C\0\t\0\4\0\xa7\0v\0-\0\36\0\xf0\0;\0'\0\34\x000\0>\0z\0\x94\0\xbc\0\xd6\0\27\0m\0\"\0\37\0\v\0\37\0\6\0\xee\0\xef\x003\0\xee\0\xf1\0\xf2\0#\0\xf2\0\xf1\0\xee\0\xef\0\xee\x003\08\0\0\0\33\0Q\0\xe5\0\xbc\0<\0C\0\32\0\30\0\22\0\30\0\x9d\0\xcd\0\x9a\0\xa8\0\x90\0\xcd\0\xa8\0\xd1\0v\0\xa5\0\xd6\3\xb5\1\xc6\0\r\0\37\0z\0\xe4\0\xa7\0\xda\0\xf3\0\xad\0\xce\0\xc1\0U\1}\0\xd5\0%\0\x80\0I\0j\0h\0\\\0I\0\x84\0\xcf\0\xae\0\xbc\0(\0\f\0-\0\37\0\26\1\xee\0\xef\x003\0#\0\23\0\34\0'\0\36\0\x9b\0b\x000\0\37\0\r\0\xf1\0\xee\08\0\xf1\0\xee\0\a\0,\0\x95\0\xbc\0\xc3\0E\0\22\1\30\0\x9d\0\xcd\1\xa8\0\xcd\1\xa8\0\xd1\0I\0\xa5\0\xc1\0\xd6\0\xc0\0\xc6\1\xc0\0\xce\0\17\0\37\0P\0\xb3\0\xf4\0\xe9\0\xe1\0\xb0\0\xb1\0\xbb\0p\0\34\0,\0\xb4\0\xe2\0\x9d\0M\0l\0w\0I\0j\1\xad\0\xbc\0\xcf\0\35\0\v\0\36\0&\0k\0\xef\0\xf2\0\30\0\33\x000\0\xc4\0\x81\0j\0y\0\xc0\0\xb9\0\xb6\0\xcf\x000\1\v\0\xee\x003\1\xf1\1 \0(\0\xa0\0\xbc\0\22\0\xbe\0$\0\xc4\0\xcd\0\xa8\0\x8d\0\xa8\0\xcd\0\x90\0\xd1\0l\0\xa5\0\xc1\0\xd6\1\xc6\0\xd6\0\xb0\0\xce\0\17\0\30\0v\0\x9e\0A\0\xe4\0\x99\0\xb1\0\xaa\09\0z\0\xa0\0\x95\0Q\0\xdd\0\x9e\0\xc2\0\xa0\0\xa6\0h\0%\0\xb2\0\xbc\0=\0'\0\26\0\30\0\5\0)\1\37\0.\0|\0\xcc\0\xb3\0\xa9\0\xda\0\xdd\0\xa9\0\xd5\0j\0\xea\0\xbc\0\xc2\0%\x000\0\34\0\xe3\0\xf1\2\xee\0\n\0\34\0F\0\30\0\xbe\0\xd0\0\x9d\0\x98\0\x9a\0\xa8\1\xcd\0\x90\0\x98\0v\0\xa5\0\xc2\0\xd6\0\xa5\1\xc2\0\xb0\0\xcc\0\17\0 \0n\0\x9e\0l\0h\0\xdb\0\xc8\0\xc3\0\xe8\0\xf0\0\xdc\0\xeb\0\xb4\0\x95\0\xe4\0\xf3\0\xbc\1\xe9\0n\0\xa3\0b\x000\0!\0Y\0x\0\v\0\r\0{\0j\0\xb1\0<\0\xec\0\xf3\0\xd7\0\xb2\0\xe2\0\xd7\0\xbc\0\xa0\0\xf0\0\xc2\0\xbc\0\xa3\0=\x000\1\35\08\0\xf1\08\0\xee\x003\0\37\0\30\0B\0\xbe\0\x9d\0\x98\0\xa8\0\x90\0\xcd\1\xa8\0\xd1\0M\0\xa5\0\xc0\0\xd6\0\xc6\0\xc0\0\xc2\0\x95\0\xcc\0\17\0\37\0Y\0\x9e\0l\0v\0\xac\0\xd8\0\xbc\0Q\0\x9d\0\xdc\0d\0\xf5\0\xa6\0z\0h\0\x80\0d\0v\0\x95\0y\0'\0\34\0}\0\xe1\1\xdd\0\xf4\0F\0\xea\0\xbf\0I\0\xe4\0\xf3\0\xe7\0\xb2\0\xf3\0\xe2\0\xb2\0\xa4\0\xdf\0\x80\0|\0\xbc\0\xae\0%\x000\1(\0\r\08\0\xf1\0\xde\0\xf1\0\30\0B\0\0\xc4\0\x98\0\xcd\0\x90\0\xa8\0\xcd\1\x8d\0M\0\xd6\0\xc1\0\xd6\0\xa5\0\xc0\0\xb0\1\xce\0\v\0 \0\xc7\0I\0h\0>\0\xd8\1\xc3\0{\0l\0\xdc\2\xf5\0}\0z\0\x95\x000\0(\1%\0'\0\xcf\0\xf6\0\xdc\0\xe4\0\xe0\0\xdb\0\xc2\0\xbc\0\xce\0\\\0\xe4\0\xe1\0\xb2\0\xe7\1\xd7\0\xf3\0\xa4\0\xd7\0\xf7\0\x80\0\xcc\0\xc3\0\xc0\x000\2\xf0\0\xe3\0\xf1\1\xde\0\22\0\xbe\0C\0\xc4\0\xcd\2\xa8\0\xcd\1\x98\0\xcd\0\xd6\0\xa5\0\xd6\1\xc0\0\xc1\0\xce\0\x95\0Y\0\33\0?\0P\0v\0F\0\xd8\0\xbc\1\x94\0w\0\xdc\1\xda\0\xdc\1\xe9\0\xbc\0\xd6\x000\2(\0d\0\xdc\0\xec\0\xeb\0\x9f\0<\0\xaa\0\xae\0\x82\0d\0\xf4\0\xdf\0\xf3\0\xd7\0\xae\0\xd7\0\xe7\0\xa4\0\xe7\0\xf3\0\xf5\0;\0\xb9\0\xbc\0.\x000\3\r\0\xf1\0\xde\0\5\0\30\0\31\0(\0\xd1\0\xcd\1\xa8\0\xcd\2\x98\0\xb0\0\xa5\0\xd6\0\xc0\0\xa5\0\xc1\0\xc2\0\xcc\0x\0h\0I\0P\0j\0\xc2\0\xbd\0\xe7\0\xbc\0\xce\0l\0\xb3\0\xec\0\xdd\0\xf7\0\xa7\0\xda\1\xf7\0\xa9\0\x95\0\xd5\0\xf3\1\xa1\0\xe5\0\xdd\0\xdb\0\xac\0\xbd\0\xea\0l\0\xdc\0\xb3\0\xeb\0\xdd\0\xf3\0\xd7\1\xe7\0\xa4\1\xc9\0\xf8\0l\0O\0\xbc\0\xc2\x000\4\r\0\xde\0\22\1\31\0\25\0\x8d\0\x89\0\x90\0\xa8\0\xcd\0\x90\1\xd1\0I\0\xa5\0\xc1\0\xc6\1\xb1\0i\0y\0}\0P\0O\0P\0\xcb\0\xc0\0\xd8\0\xe7\0\xbc\0\xc1\0l\0\xe6\0\xb3\0\xf4\0\xda\0\xe5\0\xf3\0\xdc\0\xb3\0\xf8\0\xe0\0\xf3\0\xe1\0\xb4\0\xad\0\xe5\0\xa9\0\xbb\0\xc3\0\xd8\09\0\x9e\0\xf6\0d\0\xdc\0\xf4\0\xe1\0\xd7\0\xf3\0\xd7\2\xc9\0\xe4\0\x9e\0\x84\0\xd3\0\xc3\0\"\x000\4\r\0\22\0\0\31\0\xd0\0\x8d\0\x89\0\xcd\0\x90\0\xa8\1\x90\0\xd1\0M\0\xa5\0\xc1\0\xc0\0\xa5\0x\0\xcf\0\xf4\0\xa4\0=\0.\0j\0\xc7\0\xdb\0\xaa\0\xd4\0\xc3\0<\0P\0\xb3\1\xa9\0\x9f\0\xe5\0\xdd\0\xb3\1\xa7\0\xf4\0\xdf\0\xa9\0\xda\0\xb4\0\xda\0\xb5\0\xaa\0\xbc\0\xc8\0I\0d\0\xb3\0d\0\xb3\0\xe4\0\xe1\0\xf3\2\xc9\0\xd7\0\xf3\0\xeb\0A\0\xc4\0\xc0\0\xbc\0p\x000\5\22\0\x007\1\x9d\0\x89\0\x90\2\xa8\1\xcd\0\xd1\0\xb0\0\xb1\0\xb8\0e\0\x80\0\xe9\0\xd7\0\xf3\0\xd5\x000\0.\0r\0\xad\0\xd9\0\xd3\0\xa4\0\xab\0\x97\0\x9e\0\xd5\0\x9f\0\xec\0\xdd\0\xec\0h\0\xb3\0\xec\0\xa9\1\xda\0\xe5\0\xdd\0\x9f\0\xc5\0\xc3\0\xd4\0\xc5\0\x95\0\xb3\0A\0\xb3\0d\0\xa7\0\xda\0\xe0\0\xc9\0\xf3\1\xd7\0\xf3\0\xda\0\xec\0\x80\0]\0\xbc\0\xc2\x000\5\30\0\22\1\31\0\xcb\0\x98\0\x90\0\xa8\1\xcd\0\xa8\0\xcd\0\xd1\0h\0\xd2\0Y\0(\0\xf4\0\xe5\0\xb2\0\xf5\0\xe4\0y\x000\0(\0\xa3\0\xbc\0\xd3\0\xd9\0\xbc\0<\0v\0}\0\xb3\0\xec\0\xdd\0h\0I\0\xe6\0\xb3\0\xa9\1\xb4\0\xda\0\xe9\0\xb5\0\xd9\0\xc3\0\xd4\0\xea\0\xd5\0\xdc\1\xf6\0\xec\0\xa7\0\xdf\0\xf3\1\xe5\0\xd7\1\xf3\0\xf7\0\xdc\0>\0\36\0\xc3\0\xb5\x000\4%\0\22\x007\1\31\0\37\0\x8d\0\x98\0\xa8\2\x90\1\x98\0\x9a\0u\0\"\0\x9e\0\xe1\0\xb2\0\xdf\0\xf5\0\xf4\0\xb3\0\xc4\x000\0\xa1\0\xbc\0\xd8\0\xd3\0\xc3\0\xd8\0|\0I\0\xe6\0\xb3\0\xdf\0n\0P\0z\0\xd5\0\xa9\0\xb3\1\x9f\0\xa6\0\xaa\0\xbc\0\xd4\0\xd8\0\xea\0\xd5\0\xe4\0\xa7\0\xdc\0\xa7\0\xf4\0\xe9\0\xdd\0\xe1\1\xe5\0\xf3\1\xf7\0\xdc\0I\0.\0\xb9\0\xa2\x000\4%\0\22\x017\1\xbe\0\x9d\0\x89\0\xa8\0\xcd\0\xa8\0\xcd\0\xa8\0\x8d\0\x9d\0;\0y\0\xda\0\xb2\0\xd7\0\xf5\0\xeb\0\xec\0A\0j\x000\0\xc0\0\xbc\0\xd4\0\xe7\0\xd3\0\xbc\0\xac\0>\0w\0\xec\1\x82\0j\0z\0\xe6\0\xd5\0\xb3\0\x99\0\xa9\0\xac\0\xc3\0\xd3\0\xe7\0\xd4\0\xd2\0\x9f\0\xdd\0\xe9\0\xeb\0\xa7\0\xeb\0\xa7\0\xe9\0\xda\2\xe9\0\xda\0\xe9\0\xdc\0>\0.\0\xa0\0\xd4\x000\4%\0\22\0\xbe\0\22\1C\0\xcb\0\x98\0\xa8\1\xcd\0\xa8\0\x8d\0\x9d\0;\x000\0z\0\xf3\0\xe7\0\xf7\0\xec\1\xdc\0h\0j\x000\0\xce\0\xc3\0\xd4\0\xe7\0\xd3\0\xd4\0\xbc\0\xbb\0z\0\x9e\0h\0\x93\0j\0l\0h\0}\1\xb4\0\xaa\0\xc3\0\xd4\0\xd3\0\xae\0\xd4\0\xd2\0\xa0\0\xe0\0\xda\2\xf4\0\xeb\0\xe9\0\xda\1\xe9\0\xeb\0\xe9\0\xeb\0d\0>\0.\0\xa2\0\xbc\0\xce\x000\3%\0\22\0\0\22\0\xbe\0\31\0\xbe\0\x8d\0\xcd\0\xa8\1\x8d\0\x9d\1\xf0\0\xc4\0\x9f\0\xe7\0\xf3\0\xf4\0\xda\1\xb3\0O\1\xf0\0Y\0\xab\0\xd8\0\xbc\0\xd8\0\xd3\0\xd4\0\xbd\0\xc5\0\xd6\0\x95\0b\0\x81\0>\0\x97\0\xb5\0\xaa\0\xbd\0\xbc\0\xe7\0\xd8\0\xd3\0\xae\0\xd9\0\xb8\0\xa0\0\xc9\0\xf3\0\xe5\0\xf3\0\xda\1\xdf\0\xeb\0\xe9\1\xeb\0\xe9\0\xe4\0h\0.\0|\0\xbc\1\xc3\0(\x000\2%\0\22\0\x027\0\30\0.\0\x98\0\x9a\0\x8d\1\x9d\0;\x000\0\x95\0\xa4\0\xf3\0\xf5\0\xb3\0\xf3\0\xf8\0>\0j\0\x81\0\x84\0(\0\xd2\0\xf9\0\xa3\0\xd4\0\xd3\0\xa3\0\xae\0\xc3\0\xab\0\xbb\0\xb6\0\xbf\0\xf9\0\xae\0\xc3\0\xbc\0\xd4\0\xd8\0\xd4\0\xd3\0\xae\0\xa3\0\xd3\0<\0\xa0\0\xc9\0\xf3\0\xda\1\xdf\0\xe9\0\xdf\0\xeb\0\xe9\0\xeb\0\xe9\0\xeb\0\xf5\0w\0\xc4\0\xae\0\xbc\2\xb6\x000\2%\0\23\0\1\22\0\x007\0U\0\x8d\0\x89\0\x8d\0\x9d\0%\x000\0x\0\x94\0\xb8\0\xe1\0\x9e\0\xda\0\xeb\0}\0\x84\0j\0O\0\xc7\0.\0p\0\xc5\0\xac\0\xf9\0\xd8\0\xe7\0\xd4\0\xd3\0\xeb\0H\0\xd1\0?\0\xda\0\xd4\0\xc3\0\xe7\0\xd3\2\xae\0\xa3\0\xe7\0\xd3\0<\0\xa6\0\xf7\0\xe4\0\xeb\0l\0(\0\xb3\0\xe0\0\xe1\3\xe0\0\xf3\0\xe0\0z\0\xb8\0\xc3\1\xbc\1b\x000\1%\0\22\0\30\0\x007\2C\0\xc4\0\x98\0\x9d\0\x84\0\xb0\0b\0\xca\0\x94\0\x9b\0\x94\0\x99\0\xf6\0\xe6\0\x81\0r\0j\1\xcb\0{\0=\0Q\0\xb7\0\xbb\0\xac\0\xaa\0\xd3\0W\0^\0\x80\0P\0\x9d\0\x86\0A\0\xc3\0\xae\0\xd3\1\xa3\0\xd7\0\xae\0\xe7\0\xbc\0\xed\0\x95\0\xdc\0\xb3\0v\0(\x000\0\xb3\0\xe1\0\xf3\1\xc9\0\xd7\0\xa4\0\xbc\0\xc3\0\xe9\0P\0\xa2\0\xbc\2\xc0\x000\1%\0\22\0\xbe\0\22\x007\0\0\22\0\31\0B\0;\0\xf0\0\xa6\0\xa4\0\xdf\0Q\0\xc3\0\xc1\0'\0\xcc\0h\0n\0j\1(\0e\0Y\0{\0x\0\xc7\0x\0<\0\xb1\0\xc5\0\x99\0\x96\0\xcf\0:\0\xab\0Y\0\xc4\0\x96\0\xe2\0\xc3\0\xd7\0\xd3\0\xae\0\xa3\0\xae\0\xe7\0\xae\0\xc8\0<\0n\0\x93\1\27\0\xcf\0\xf5\0\xeb\0\xe2\0\xd7\0\xc9\0\xd7\0\xa4\0\xbc\1\xe0\0d\0\x84\0\xa3\0\xbc\1\xad\0'\x000\1\30\0\xd0\0\x017\0\0g\0\25\0\"\0v\0\x97\0\xa9\0\xb3\0\xdd\0Q\0(\0\xcb\0(\0Y\0j\0~\0e\0b\0x\2!\0\xcc\0\x94\0\36\0p\0\xa5\0y\0\x9d\0j\0\v\0)\0i\0Y\0\x9d\0@\0\xc3\0\xa3\1\xae\0\xe7\0\xae\2\xb9\0\xbb\0\xe8\0r\1.\0\36\0\xdc\0\xe9\0\xda\0\xe2\0\xf3\0\xd7\0\xa4\1\xbc\0\xe1\0\xf5\0\x9d\0\x94\0\xbc\2=\x000\0%\0\30\0B\0\1\xbe\0B\0,\0j\0\xd5\0y\x000\0>\0\xec\0\xd5\0b\0.\0\36\x000\0\34\0\xc4\0\x9d\0\x94\0\xce\0Y\0e\0x\0\33\0p\0\xbb\0\xc0\0p\0\x9b\0\xca\0\xf0\0O\0-\x000\0&\0\xb1\x000\0\xc7\0\xa3\0\xf9\0\xac\0\xaf\0\xa3\0\xaa\0\xac\0\xc8\0\xac\0\xd2\1\xc1\0]\0\36\0\27\0\xe6\0\xe9\0\xdf\0\xda\0\xf3\0\xc9\0\xd7\0\xa4\0\xd7\0\xe1\0\xe4\0v\0\x84\0\xd4\0\xbc\1=\x000\0*\0\30\0\x007\0\0\25\0,\0\xcf\0\xdf\0\xda\0\x97\0\x95\0\xe6\0\xd5\0\xf4\0\x95\0\x84\0(\x000\0(\0\xa8\0\xd1\0\xa8\0y\0Q\0Y\0&\0\36\0\xa1\0\xac\0\xb1\0\xc8\1\x99\0\x8d\0\x95\09\0 \0i\0\xc2\0\x80\0\xc4\0\xcc\0\xd2\0\xac\0\xc8\0\xac\0\xaf\0\xa2\0\xbb\0\xb7\0\xb1\0p\0\x93\0%\x000\1y\0\xe4\0\xe9\0\xdd\1\xe0\0\xf3\0\xd7\0\xf3\0\xf7\0\xf5\0j\1\xa3\0\xbc\0\xc3\0\36\x000\0%\0\22\0\1U\0\25\0%\0\xd5\0\xc3\0\xe0\2\xf6\0\x84\0\xd5\0n\0.\0\"\1\x8d\0\x89\0\x90\0\xa8\0\x9d\1x\0\33\0=\0\xa2\0\xbc\0\xa1\0\xb8\0\xab\0\xf9\0G\0M\0Y\0\xc2\0{\0M\0[\0@\0\xe8\0Q\0p\0\xcc\09\0\xba\1\x94\0x\0\xcb\2\xc7\0.\0'\0\27\0h\0\xe4\0\xe9\0\xda\0\xf7\1\xe2\0\xe1\0\xf5\0I\0\x80\0>\0\xe7\0\xbc\1b\x000\x017\0U\0\25\0\"\x000\0\xcf\0\xdd\0\xf4\0\xfa\0l\0\xb3\0h\0z\0\x84\x000\0j\0\"\0\x8d\0\x8c\0\xcd\0\x90\0\x9a\0\x8d\0;\1(\0x\0\xf9\0\xae\0\xd4\0\xd8\0\xa2\0\xab\0}\0\x98\0[\0T\0\x83\0\x87\0?\0\xd8\0\xbc\0\xac\0<\09\0\xcc\1F\0\xba\09\0i\0\xce\0\xc1\0]\0(\0x\x000\0%\0\x95\0\xdc\0\xf5\1\xe4\0\xf5\0\xdc\0\x9e\0O\1\x80\0\xa1\0\xbc\0\xd8\0F\x000\1\22\0\25\0$\0'\0f\0\27\0\x84\0P\0v\0\x97\0y\0\x97\0\xe4\0z\0\xcf\0\x82\0x\0\x8d\0\xcd\0\x90\0\x8d\1\x9d\0;\x010\0~\0\xab\0\xc8\0\xd3\0\xd4\0\xd9\0\xbc\0\xab\0\x95\0R\0^\0?\0\xa6\0\xbd\0\xd4\0\xa3\0\xc3\0\xbc\2\xc3\0\xa3\0\xac\0\xbb\29\0{\0\xea\0~\x000\0\36\1I\0h\0\x9e\1h\0v\0P\0>\0I\0P\0\x97\0\xbc\0\xea\0\xc2\0(\x000\0\22\0U\0\25\x002\0,\0'\x000\0\xec\0\xe0\1\xf8\0\xf5\0\x95\0\xb3\0h\0\xcf\0r\0\x8d\0\xcd\0\x90\0\x8d\1\x9d\0;\x010\0b\0\xf9\1\xae\0\xd8\0\xc3\0\xd4\0\xbc\1\xac\1\xbd\0\xbc\0\xd4\0\xd3\0\xe7\0\xd3\1\xd8\0\xc3\0\xae\0\xaa\0\xad\0\xa3\0\xaa\0\xe8\0\xcc\0\xaa\0i\x000\0\xc7\0]\0\36\0'\0j\0>\0v\0>\2I\2v\0\x95\0\xae\0\xa0\0\xce\x000\0\xbe\x002\1f\0,\0f\0\"\0\xd5\0\xb0\0v\0\x82\0j\0\xd5\0\xa9\0v\0\x82\0\x9d\0\xcd\0\xa8\1\x8d\0\x9d\1;\1.\0\v\0\xbb\0\xea\0\xc5\0\xac\0\xbc\0\xd4\0\xae\0\xd3\0\xbc\1\xd4\0\xae\0\xd3\0\xd8\0\xd3\0\xe7\0\xd4\2\xbc\0\xc3\0\xd4\0\xbc\0\xbb\0\xea\0\xbc\0\x94\x000\0<\09\0\xc7\0%\0\27\0'\0\xc7\0P\0j\0P\0v\0h\0\xfa\0h\1l\0\x95\0\xbc\0\xd3\0(\0\30\0\25\0$\x002\0f\x020\0(\0\xfa\2I\0Q\0\xf6\0y\0;\0\x89\1\x9a\0\x8d\0\x9d\0\xc4\0\xf0\2 \0\xcc\0\xd2\0\xb8\0\xbb\0\xc8\0\xbc\0\xe7\0\xd4\1\xd3\0\xd4\1\xd3\0\xe7\0\xd8\0\xd4\2\xd9\0\xd4\0\xa3\0\xbc\0\xea\0\xbb\0\xbc\0\xce\x000\0<\0\xf9\0\xcc\0'\0\xcb\x010\1y\0P\0h\0\xa9\0\xdd\0\xf3\0\xc9\0\xf8\0\xf6\0v\0F\0\xbc\0\x94\0\22\0g\0\25\0$\0,\0f\0,\0f\0(\0h\0\xfa\0z\0\xcf\0P\0z\0\30\0\0(\0\xd1\0\x89\0\x8d\0\x9d\0;\0\xf0\2\36\0\2\0\xc1\0\xc0\0<\0\xc5\0\xae\0\xd4\0\xd8\0\xd9\0\xd4\5\xd9\0\xe7\0\xd8\1\xd3\0\xbc\0\xad\09\0\xbd\0\xe8\x000\0\xc2\0\xbb\0\x94\0\36\0\x9b\0r\x000\1,\0}\0\xf8\0\xf7\0\xc9\0\xe7\0\xa4\1\xd7\0\xe0\0\xf5\0\x80\0\xa1\0\xd2\0\22\0U\0$\0,\0f\0,\2\27\0%\0'\0j\0I\0j\0$\0g\0C\1\34\0\x9d\0\x8d\0\x9d\0;\0\xf0\2\30\0#\0\26\0\xe8\0\x95\0\xea\0\xc5\0\xaa\0\xc3\0\xd4\0\xd9\0\xd4\5\xd8\0\xd4\0\xd8\0\xd3\0\xd4\0\xba\0\xac\0\xb1\x000\0\xc2\0\xea\0y\0\x84\0\xce\1%\x002\0$\0\x95\0\xf8\0\xf7\0\xe0\0\xe7\0\xa4\0\xc3\0\xa4\0\xd7\0\xe0\0\xf5\0\x84\0|\0\xb6\0\22\0\0U\0\25\0,\0'\0\27\0f\0,\x002\0$\0\33\0B\0g\0\1\xbe\0\22\0\31\0\xd0\0.\0;\1\xf0\2(\08\0C\0\16\0Y\0\x95\0\xaa\0\xbb\0\xf9\0\xd4\1\xe7\0\xd3\0\xd8\0\xd4\0\xd3\0\xd4\1\xe7\0\xa4\0\xbc\0\xac\0\xbb\0\xb6\0j\0\xce\0\xcc\0\x97\0\5\0k\0r\0\"\0\30\0$\0\x95\0\xf8\0\xe9\0\xf3\0\xd7\0\xa4\1\xc9\1\xe2\0\xf6\1j\0|\0\xc2\0\22\0\0\xbe\0\25\x002\0,\1f\0'\0\34\0\25\0U\0\xbe\0\0\xbe\0\1\22\0\0\30\0B\0\34\0\27\0\xf0\x020\0\xde\0)\0\0#\0\32\0\xc2\0\xc8\0\xd3\0\xc3\0\xbc\4\xc3\2\xbc\0\xd4\0\xd8\0\xc5\0\xa5\0\v\2&\18\0\22\0B\0\t\0B\0]\0\xf8\0\xe9\0\xe0\0\xe7\0\xa4\1\xc9\0\xd7\0\xf3\0\xf5\0\xfa\0\x9e\0\xc4\0F\09\0B\0U\0\0B\1\25\x002\0,\0\25\0\xd0\0\2\xbe\0\x027\1\xbe\0\xd0\0\25\1,\0\27\x000\1\xb0\0\xfb\0C\0\0\32\0\20\0E\0\xfb\0\xde\0:\0\xfb\0\xed\0\xbf\0\xc5\0\xed\0:\0E\1\xe3\0\4\0\0\0\31\0\1\0\t\0\22\0r\0\xde\0\xf2\0\30\0`\0\0\0\37\0\xec\0\xf8\0\xdd\0\xae\0\xa4\1\xd7\0\xc9\0\xdd\0\xf5\0\xb3\0d\0\x81\0f\0\x99\0\xce\0\22\0\25\0B\x007\1\xbe\0\xd0\0B\0\xbe\0\0\xbe\1\5\22\0\0B\0\25\x002\1,\x002\0'\0\xcf\0\xbc\0\xfb\0\31\0\22\0\32\0\31\0\32\0\t\0C\x007\0C\0\31\0\32\x004\0#\0\0\1\24\0#\0\xf2\1`\1\xc1\0\xe8\x003\0\n\0\0\x012\0y\0\xf8\0\xe1\0\xd7\0\xc9\0\xe2\0\xc9\0\xe5\0\xdf\0\xec\0\xfa\0}\0h\0x\0r\0b\0%\0\22\0$\0\25\0\xbe\x007\0B\0\xd0\0\xbe\0B\0\xbe\1B\0\xbe\0\2\xbe\1\1\xd0\0\25\0\34\x002\1,\x002\x000\0\xc0\0\xbc\0\xea\0k\0\32\x006\0)\0`\0+\0#\0\24\x006\0#\x006\08\0)\x013\0\xee\x003\0\xf1\0\xee\0\xf1\08\0\xf1\x003\0\a\0\xbe\0\36\0f\0\x9e\0\xf7\0\xd7\0\xc9\0\xe5\0\xdd\0\xdf\0\xa9\0\xec\0\xd5\0\xfa\0\x95\0\x81\0\x93\0r\x000\1\22\0B\1\25\0U\0B\2\xbe\0B\0\xbe\0B\1\x057\0\xbe\0\25\x002\1,\2'\0(\0\xb9\0\xbd\0\xab\0<\0\xf1\0\xf2\0+\0)\x013\0\xf2\0`\1)\08\0E\0\r\0\24\1\xe3\0\f\x003\1)\0\xe8\0\xc7\1-\0O\0\xf8\0\xe0\0\xe5\0\xe0\1\xb4\0\xa9\0\xf6\1z\0\xfa\0z\0\xc7\x010\1%\0\22\0\0g\0\0g\0\1U\0B\1\xbe\2\0\22\0\3\22\0\xbe\0\25\0$\x002\1,\0f\x002\x000\0\x9d\0\x9f\0\xab\1\xa2\0\xea\0\xde\08\0)\0+\2)\0+\0y\0\xeb\0\xdd\0\xb4\0\xa9\0\xf4\0\xa9\0u\0E\0\xcc\0\xce\0Y\0-\0\xca\0\xeb\0\xe1\0\xe2\0\xdd\2\xc6\0\xd5\0\xf6\0z\0h\1j\0]\0(\x000\1%\0\22\0B\0U\0C\x007\0\0B\1\xd0\0\xbe\0\0B\0\xbe\0\0\22\0\1\22\2\0\xbe\0\25\x012\0,\x012\0,\0\xf0\0\xd1\0\\\0\xb6\0\xbf\1\xae\0\xad\0\xed\0:\0\xde\3\xa9\0d\0\xdc\0\xf7\1\xf5\0\xf8\0\xb3\0b\09\0i\0\x9b\0>\0\xd5\0\xf3\1\xe2\0\xdd\0\xa9\0\xf6\1\xe6\0\x97\0z\0h\0O\1\xc7\0'\x000\1%\0\30\0B\0\0B\0U\0\xbe\2B\1\xbe\0B\0\xbe\0\2\xbe\1\x017\0\xbe\0\xd0\0\25\x002\0f\0,\x002\0,\0\x9d\0\x80\0\x9d\0\xd1\0}\0\xa2\0\xf9\1\xd3\0\xc3\0\xbc\1\xb2\0\xec\0\xf5\0P\0j\0l\0\x9e\0\xdc\1\xc9\0\x99\0-\0Y\0\x97\0\xfa\0\xf6\0\xa6\0\xa0\0\xf7\0\xdd\0\xe6\1\xb3\0z\0h\0z\0\x84\0O\0\xc7\x000\3%\0\22\0\0B\0\25\0\xd0\0\xbe\0\3U\0B\0\xbe\1B\3\xbe\0\x007\0\0\xd0\0\25\x002\2,\0\36\0\x94\0\x80\0\x9d\0\xc4\0\x8d\0\x83\0\x9f\0\xa1\0\xab\2\xbc\0}\0\x80\0h\0z\0\xf0\x000\0(\0l\0\xf5\0\xe0\1z\1\xfa\0v\0\x97\0\xec\0\xfa\0\xf4\0\xf5\0\xe6\0\xfa\0n\0z\0h\0j\0]\0\xc7\x000\4%\0\22\0g\0B\0U\0B\1\xbe\0\22\0\0B\1\1U\0\xbe\0B\1\xbe\2\1\xbe\0\25\x012\x010\0~\0\xbc\0\xe8\0\x9d\0P\0\x80\0\x9a\0\x89\0\x8f\0A\0\xa0\0\xb9\0\xbc\0\xab\0\x95\0\xf5\0\x9e\0j\x000\0\xf0\0I\0\xeb\0\xf3\0\xdd\0\xe0\0\xf8\0\xf7\0\xd7\0\x97\0z\0\xf8\0\xfa\1z\0>\0n\0>\0j\0O\0\xcb\0'\x000\4%\0C\0U\1\2\22\0B\0\xbe\2\0B\2\1\xbe\0B\0\xbe\0\2B\0$\x002\0'\19\0\xc2\0\xbd\0Q\0\x9d\0\x80\0\x9a\0^\0\x8e\0\x96\0\x91\0G\0W\0\xb3\0z\0\xf6\0\xdf\0\xe2\0\xe6\0\xb3\0\xec\0\xe5\0\xf3\1\xf7\0\xe1\0\xf3\0\xf7\0\xf5\0>\0\xd5\0\x97\0>\0P\1n\0O\0b\0.\x000\6%\0\22\0g\0B\0\xbe\0B\0\xbe\0B\0\xbe\1B\0\xd0\2\xbe\0B\0\xbe\0\1B\0\xbe\0B\0\0B\0\25\x002\0f\x000\0\xc0\0\xbd\0\xba\0\xc2\0\xac\0e\0\xc1\0\x82\0\x8d\0\x8e\0^\0M\0\x8e\0\x91\0\x8e\0\xf6\0v\0\xdf\0\xa4\0\xd7\0\xc9\0\xb4\0\xf3\0\xe0\0\xf8\1\xf4\0\xf8\0\xf5\0\x9e\1\xb0\0\xce\0\x82\0j\0y\0\x84\0*\x000\b%\0\22\x007\0\0B\0\xd0\0B\0\xd0\1B\1\xd0\0B\0\xbe\3\2\xbe\0B\1\25\1'\x000\0\xb1\0\xbd\0\xbf\0\xbd\0\xcc\0\xb7\0\xba\0p\0\xba\09\0\x81\0\x8d\0\x98\0\x8e\0^\0\x80\0n\0\xf6\0\x82\0\xf6\0\xf8\0\xeb\0\xf7\1\xf8\0\xe9\0\xa9\0\xdc\0\xfa\0\xf6\0z\0\x95\0\x94\0<\0~\0*\x000\2'\x010\6%\0C\0B\0\xd0\0B\2\xd0\2\xbe\1\1B\0\1\xbe\0\3\xd0\0U\0,\x000\0\xb1\0\xbd\0\xac\0\xaa\0\xbd\0\xae\0p\0\xbb\0\x94\0p\0\xb1\0\xc5\0\xbb\0\xc2\0I\0\x8e\0P\0j\0I\0\xf6\0v\0\xdc\0\xf5\0\xf4\0\xf6\0\xec\1\xdc\0\xf6\0\xfa\0}\0n\0\x97\0\xb8\0\xba\x000\1'\x020\0%\x000\6%\0\22\0B\0\xd0\1B\1\25\0\30\0\xd0\1\xbe\1\x057\1\xd0\0$\0f\x000\0<\0\xd8\0\xac\0\xad\0\xd3\0\xad\0\xd3\0<\0\xcc\0\xac\0\xc2\0\xcc\0\xa2\0\xbc\1\xab\0\xc8\0F\0\x80\0v\0\x9e\0\xf6\0P\0\xb0\0\x9e\0\xb3\1\xf6\1\xe6\0h\0I\0P\0\xcb\0e\0'\x000\1%\x000\0'\1\27\x000\6%\0\30\0U\0\xd0\1B\2\xd0\0B\0\xbe\0B\1g\0\3C\x007\0\25\0$\0,\x000\0\xc2\0\xbd\0\xac\1\xc8\0\xaa\0\xae\0\xc2\0\xc8\0Q\0\xb1\0\xbc\0\xe8\0\xd2\0\xad\0Q\0\xc2\0\xac\0\xaf\0\x82\0P\0v\0\x9e\0\xe6\0h\0\xe6\1\x9e\0n\0v\0P\0\x84\0\xc4\x000\0'\x000\0'\0.\0(\0.\1(\0.\x010\6%\0B\0U\0\xbe\0B\0\xd0\0\25\1B\0\xbe\0B\1\4C\0\0$\0!\0\33\x000\0\xcc\0\xbd\0\xac\0\xc8\0\xb2\0\xa3\0\xaf\0\xad\0\xb1\09\0\xd2\0\xc7\0\xae\0\xa3\0\xb9\0\xb8\0\xba\0\xc2\0\xcc\0\xbb\1j\0v\0z\0h\1j\0\x84\0\xc4\x000\0'\0%\0\27\0%\0.\0(\0.\0(\0.\4(\0.\x000\6%\0!\0\25\0\xbe\0B\1U\0\37\0B\0\xd0\0B\0\1\xbe\0\30\0\1\xbe\0$\0'\0\xcc\0\33\0x\0\xbc\0\xc8\0\xad\0\xb2\0\xa3\0\xad\0\xd9\0\xa1\1F\0\xe8\0{\0\x94\0\xc3\0\xad\0\xd2\1\xdb\0Y\0\xdb\0\xd2\0\xbb\0\x93\0v\0\x80\0\xc4\0\x93\0\xcb\0r\09\1\xcc\0\x94\0Q\0]\1r\0x\1.\1\36\0(\0\36\0(\x000\6%\0U\1B\2\xd0\0B\2\xbe\3\x007\0\xbe\0$\1u\0x\0'\0\xaa\1\xad\0\xa3\0\xc8\1\xf9\0\xa1\0\xa3\0\xdb\0\xd2\0\xce\0\xba\0e\0\xb1\0\xac\1<\0\xc1\0\xb9\0\xb8\0\x9b\0\xcc\0\xc0\0O\0b\0\x9b\0\xc1\0\xb5\0\xc0\0\xc1\0\xcc\0Q\3]\0{\0r\0\xc7\0\xca\0\xcb\0\36\0.\0\xc7\0(\x000\6%\0U\0\25\0B\1U\2g\0\1\xbe\1B\0\0B\0\25\0,\0\xcb\0p\x000\0\xea\0\xbc\0\xa2\0\xc8\0\xac\0\xc8\0\xac\0\xa1\0\xc5\0\xb9\0\xb6\0\xc2\0\xb8\0\x94\0r\0b\0\xb1\0\xbb\0\xd8\1\xbd\0<\x000\0~\0\xbd\0\xce\0\xe8\0\xaa\0\xdb\0\x9b\0~\0{\0Q\0p\0\xcc\0p\0\x94\0p\0]\0{\0r\0\xcb\0\36\0.\0\xcb\0b\0%\0'\x000\6!\0\25\0\30\3\22\0\30\0\22\0\30\0\22\2\30\1$\x002\x010\0\xba\0\xbc\0\xc8\0\xa3\0\xc8\2\xf9\0\xa1\0\xac\0\xb9\0\xd2\0<\0\xc1\0\xba\0Q\0=\0{\0\xbb\0\xb8\0\xc1\0\xb8\0\xc1\0(\0\xd2\0\x94\0\xba\0\xa2\0p\0\xc7\0\x94\0\xc0\0\xb1\0\xd2\0\xbb\0\xb6\0<\0\xc2\09\0\xce\0p\0{\0r\0x\1]\1%\x000\0%\2\27\0%\x000\0%\0"
)


Ici encore, le problème venait de l'image. Bien qu'ayant l'air d'une miniature de rien du tout, l'image comportait pas moins de 253 couleurs différentes, qu'img2calc ici ne réduisait automatiquement qu'à 252 couleurs.

Bref, img2calc s'en sortait très bien niveau compression RLE lorsque tu lui fournissais des images propres ou simples, soit avec un jeu de couleurs réduit ou de larges formes de couleur unie. Facile lorsque c'est toi qui conçois l'image.
Mais si tu convertis une image récupérée en ligne, ce ne sera pas forcément le cas :
  • photo
  • image au format JPEG
  • miniature obtenue par réduction d'une image originale plus grande avec interpolation de couleurs (cas de Super Dupont)
  • ...
Comment faire pour gérer ce cas et obtenir malgré tout des tailles de script acceptables ?

Et bien dès aujourd'hui nous te proposons une solution. img2calc te permet dès maintenant de préciser le nombre maximal de couleurs à retenir pour la conversion, par défaut à 256 dans le cas de la compression RLE.

Pour Bomber par exemple, on peut tenter de limiter à 8 couleurs au maximum, pour un script qui ne fait maintenant plus que 5,9 Ko (-68,78%):
Code: Tout sélectionner
#palette for your image
#7 RGB-888 colors
palette = (
"w","#d0d4d0","#b8c0b8","#a0a0a0","#585c58","k","#282828",
)

#your image data
#240x74 RLE-3 pixels
image = (
b"\xf8\x88\1\2\3\2\xd0\16\4%\3\xb8\16\4-\6\1\0\1\3$\3\1\x90\6\1\3\4\3\1\x98\a\3=\3\4\6=\6\3\1\xf0\5\3\6\35\3\x90\a\4\xa5\1\6\3\xe0\5\1\6-\3\x80\a\1\xbd\1\3\xd8\5\x045\4\x80\a\3\xc5\1\3\xc8\5\1\x065\4\x80\a\4\xc5\1\6\1\xc0\5\3=\4\xf8\6\1\6\xcd\1\4\xc0\5\4=\3\xf8\6\3\xd5\1\6\xb8\5\1\x065\6\1\xf8\6\6]\6\24\6U\2\xb0\5\3=\4\xf8\6\1U\4\2\1\20\1\4M\3\xb0\5\4=\2\xf8\6\4E\6\x030\1\6E\4\xa8\5\1\x065\6\xf8\6\1\6=\6\2@\4E\4\xa8\5\3=\4\xf8\6\2\6=\3H\4E\2\xa8\5\4=\3\xf8\6\4=\6P\4E\1\xa0\5\1=\6\1\xf8\2\1\n\1\xd8\3\6=\3H\1\6E\xa8\5\3=\4\xf0\2\1\4\6\25\4\1\xc0\3\2=\6\2H\2E\4\xa8\5\4=\1\xe8\2\1\4-\6\xc0\3\4=\6\30\t\30\2\6E\2\xa0\5\3\x065\6\xf0\2\4=\4\xb0\3\1\6=\3\0\1\4\36\3\1\2\6E\4\1`\1\2\33\2\1\x90\1\1\23\1\b\1\2\33\28\1\2\33\2\1p\4=\4\33\2\1\xa0\1\1\2\33\2\1P\1\6=\6\1\xa8\3\3E\1\2\6\x8d\1\2P\1\3\4=\6\3\1p\4%\4\3\6-\6\4\1\b\1\3\4=\4\2X\1\6u\4\2\xf8\0\1\3\4=\6\3@\3M\3\xa8\3\4=\4\1\6\x8d\1\4H\1\4\6]\6\3`\4\x85\1\4\1\3\6]\4P\2\x85\1\6\3h\2\6]\6\x020\4M\3\xa0\3\1E\v\x8d\1\4\1@\1\4\xfd\0\4P\2\6\x8d\1\6u\4H\4\x95\1\4X\3\xfd\0\3(\4M\4\2\x98\3\3=\6\1\6\x8d\1\2@\1\4\x8d\1\4H\3\x9d\2\48\1\6\x9d\1\3H\4\x8d\1\3 \3U\16\3\1\x80\3\6=\4\1\x85\1\6\2@\1\6\x9d\1\3@\6\xa5\2\x020\3\xa5\1\6\18\3\x95\1\6\1\30\1\6m\4\1\xe8\2\1\6=\t\xfd\0\6\1H\4\xa5\1\48\1\xad\2\x040\4\xad\1\x030\2\6\x9d\1\3 \4u\6\2\xe0\2\4=\6\0\1\x85\1\3@\3E\6\4\v\6E\x020\3M\f\3\4U\6\24\6=\4(\1\6E\6\4\3\4\6=\4(\1\6E\4\3\4\6=\6 \1\x85\1\3\xd8\2\4=\3\b\6\xfd\0\6\28\4=\6\1\30\4=\x030\4E\4\1\b\1\4M\3\20\3=\4(\3E\6\2\20\2\x065\6\1 \2E\4\20\1=\6\1\30\3\x8d\1\2\xc8\2\2=\6\1\b\3\x85\1\x040\1=\4\1 \1\x065\4(\2\6=\4 \4=\6\3\30\1\x065\4(\4=\4\1 \4=\1 \4=\4 \3=\3\30\4\x8d\1\6\1\xc0\2\3=\6\30\3\x85\1\1(\3=\x020\x065\4(\3=\6\1 \6=\3 \2=\4 \1\6=\2(\4=\1\30\1\6=\1 \3=\4\20\1\6\x95\1\3\xb8\2\1\6=\3 \1\4&M\4 \1\x065\x060\1\x065\4(\x065\6\3 \2\x065\6(\4=\3 \4=\4(\1\4=\1\30\3=\6(\3=\3\20\x045\16U\4\xb8\2\3E\x010!\3E\4 \2\x065\x040\2\x065\3 \1=\6(\3=\3(\x065\6\1 \4=\3(\2=\6 \4=\3(\x045\6\1\20\4-\6\1\2\4\6E\4\xb8\2\4=\4h\4=\6\1\30\x035\6\x020\4=\2 \4=\3 \1\x065\6\1 \2=\4 \1=\6\1(\3=\4\30\1=\6\2 \3=\6\1\b\x025\3\20\2E\4\xb0\2\1\6=\3h\3E\2\30\x065\68\x045\6\1\30\1\6=\2 \2=\4(\4=\3 \3=\x040\6=\3\30\3E\4\2\t\2\4\6=\4\20\4-\6\1\30\6=\3\xb0\2\2=\6\n+\2\1 \2E\2\20\1=\3 \2\3\4=\4 \3=\6\1 \4=\3 \1\6=\1 \6=\2\20\1\3\4E\6\1\30\6\xbd\1\2\b\1\6-\4 \x065\6\x020\21\xe0\1\4=\16=\6\4\2\20\2E\2\20\4=\1\20\1\4U\3 \4=\4(\6=\1 \3=\4 \1\x065\6\20\1\6U\4\30\1\6\xb5\1\4\20\x035\3\30\1=\6(\1\4\26\4\xd0\1\1\6\xa5\1\4\1\0\3E\2\b\1\x065\4\20\1\6U\6\1 =\6\2 \3=\4(\x045\6\2 \4=\3\b\1\6]\2\30\4\xb5\1\6\1\20\4-\6\1\30\4=\3 \1\6%\4\xc8\1\3\xb5\1\6\3\4=\6\1\b\3\x065\4\20\4]\4 \3=\6(\4=\3 \1=\6\1\30\1\4=\2\b\3]\6\1\20\1\6\xb5\1\3\20\1\6-\6\30\1\6=\1 \3-\6\1\xc0\1\4\x8d\2\4\20\4=\3\b\1\6U\6\1\30\1\6=\3 \1\x065\6\1 \4=\3 \2=\6\1\b\4]\4\30\3\xad\1\6\3\30\x035\4\30\3=\4(\6-\6\1\xb8\1\1\6\x8d\2\4\20\x065\6\1\b\3]\3 \3E\1 \3=\4 \1\6=\1 \3=\4\20\4U\6\2\20\3\xad\1\6\2 \x045\3\30\4=\3 \x025\4\xc0\1\3\x95\2\2\b\3=\4\20\3U\4 \3E\4(\6=\2 \3=\4(\6=\3\20\4U\6\1\0\1\4M\v\x065\16\3\1 \1\6-\6\1\20\1=\6\1 \4-\6\2\xc0\1\6\xfd\0\16\xfd\0\6\20\4=\2\20\2U\6\20\1\4\6E\3 \1\6=(\4=\4 \1\6=\1\20\4]\f\6U\20\1\3\34\3\18\x045\4\30\2=\4 \x025\6\xc0\1\2\6e\6\2\1\b\1\3\6e\3\1\2\4=\6 \4U\f\16M\6\1 \3=\3(=\6\1 \3=\4\30\1\6\xbd\1\4\x88\1\x035\6\1\30\4=\3 \x045\3\xc0\1\4e\6\2(\2\6]\16M\4 \2\xc5\1\6(\4=\2 \1=\4(\4=\2 \4\xbd\1\6\x80\1\3=\4\30\1\x065\6 \x035\6\1\xb8\1\1\4e\38\1\6\xb5\1\3(\3\xbd\1\3 \2=\4\1 \3=\3 \1\x065\4\1(\xc5\1\1h\1\4=\6\1\30\2\x065\4\30\2\x065\3\xc0\1\2m\28\1\6\xb5\1\3(\4\xb5\1\6\1 \3=\3(\4=\1 \4=\6\1 \1\xc5\1\4\1X\2\4E\3 \3=\3\30\x045\6\xc8\1\4m\3(\1\3\6\xbd\1\6\1\20\1\3\6\xb5\1\4 \1\x065\6\1(\4=\1\20\2\4M\3\30\2\4\xcd\1\4\18\1\2\4\6E\3(\3=\3\b\1\x045\6\3\xc8\1\6m\6\4\31\3\4\xd5\1\4\3\2\3\4\xc5\1\3 \2=\x060\4=\4\2\3\4\6U\6\3\2\3\4\6u\f\3U\f\3\n\3\f\6U\x040\3=\6\2\3\6=\3\xc8\1\2\6\xfd\0\36\xf5\1\6U\6m\6\1 \4=\x030\2M\6\xfd\0\6M\4\33\n\1\b\4e\26e\4\x010\1\6=\6E\6\1\xc8\1\4\xc5\2\4\6\x9d\1\4\1\2\3\4\v\4=\4 \1\x065\6\18\6\x9d\2\6\1@\1\4\xd5\1\4H\6\x85\1\6\1\xc8\1\1\4\xf5\1\6\23\24\v\2\1\2\6\x8d\1\6\1(\6=\2 \3=\4@\4\x95\2\6\3P\1\6\xbd\1\6\3P\2\xfd\0\6\2\xd0\1\1\x065\4\3\6\x9d\1\6\3P\2\6\xfd\0\6\x020\x065\6\1 \3=\3@\1\4u\16\xfd\0\6\3`\1\4\xad\1\4\2`\4m\6\1\xe0\1\4-\6\3\0\2\6\x8d\1\4\1`\2\6m\4\18\x045\3(\x025\4X\4e\4\t\4m\4\2\xf8\0\3\6\x8d\1\6\2\1p\4]\4\1\xe8\1\3-\4\20\1\4u\4\3\x80\1\3\6M\4\3H\1\6%\38\3%\4\1`\3\6=\6\4\3\30\3\4M\4\3\x98\1\3\4\6]\f\1\x90\1\3\6=\4\3\xf8\1\1\4\25\6\4\1 \1\3\6M\4\2\1\x90\1\1\v\4\6\r\f\3\2\1X\1\4\6\5\4\3H\3\6\5\6\3\1p\1\v\4\6\5\6\4\3\28\2\3\4\6\r\6\4\3\2\1\xb0\1\1\v\4\6\25\6\4\v\2\1\xa8\1\1\3\f\5\6\4\3\2\1\x90\2\1\3\2\1H\t\3\24\3\2\1\xc8\x93"
)

Un choix judicieux, la dégradation du lissage de l'inscription sur seulement 4 niveau de gris n'est pas flagrante.

Pour Super Dupont qui est une image certes miniature mais en couleur, soyons moins extrêmes. Mettons la taille maximale de la palette à par exemple 16 couleurs, pour un script de seulement 9,8 Ko (-71,51%) :
Code: Tout sélectionner
#palette for your image
#16 RGB-888 colors
palette = (
"#004468","#002450","#085898","#002048","#081020","k","#488ca8","#a0a098","#605458","#b85c50","#c89068","#e02018","#981008","#602018","#e0bca8","#e8ece8",
)

#your image data
#75x100 RLE-4 pixels
image = (
b'\20\1\xe0\1\1\0\1@\1P\1\20\2\xe0\4\1\20\1\xe0\1\1\3Q\0\1P\1\xf0\1\1\xb0\1\1\20\21\20\1\20\21\x90\1\4\x010A\xb0\1\5\20\3\xd0\2\1\x90\1\1\20\21`\1\0\24\3\1\4\0\1\4\3\1\0\1\3\4\21P\2\3\5\20\1\xd0\2\21\xb0\1\1\x80\1\3\4\0$\0\2\0\5\4\1\0\3\5\3\1\0\1\3\0\21\2\4\23\1\24\xa0\4\1\xf0\0\2\4\3\0\5\4\1\0\1\24\1\4\1\4\3\2\3\4\3\5\24\0\1\5\3$\1"\0\2\20\2P\1\3\20\1\3\20\23\1\23\1\3`1@\3\5\4\5\4\2\0\5\4\x034\3\0\24\5\4\5\3\2\1\5\4\3\25\0\x021\0\3\4\0\1\3\20\1\20\1\5\4\2\4\5\2\3\4\22\20\3\1P! \21\20\4\5\1\0\3\4\1E\3\0$\1\24\0\4\23 \1\0\5\0\2\5\1\2\4\1\22\0\5\1"\25\22\24\2\x102\x030A\0\21\3\1\20$\0\1\24\5\4\3\0\23\1\3\2\1\4\22\0\4\0\4\1"\3\25\22\5\0\2\4\0\22\0\4\0\22\6\4\5\0\6\5\4\a\4\b\31\n\t\4\x101\20#\1\3\4\5\3\1\4\1\23\0\1\0\1\0\4B\4\1"\0\x152\4\5\4\2\6\5\6\a\5\t\v\31\4\6\33\n\4\f\v\b\r\v\b\t+\r \21 \3\x012\5\4\3\1\3\2\0\x052\1\5\3B\5\0"\3\25\6\31\a\4\5\v\t\0\33\0;\b\v\31\v\b\f\v\b\31\5\4\31\3\x010\1\20\4\5\xf2\0\4\5\22\x142\4\5\x012\0\5\6\31\6\25\t+\t\0\v\f\4\v\f\4\v\1\b\v\t\v\24\v\31\v\32\f\5\4\v\r\1\0\3 \1\20\25\0b\1\25\22\5\x032\25\6\t\33\n\0;\t\4\v\t\b\33\b\v\r\4\t\35\v\2\v\t\v\t\25)\n\33\4\5\t\v\3\1\x030\1\0\3\25\4\1\2\6\b\t\b\22\4\5\1\2\0\5\b)\b\4;\b\4\v\30\33\0\v\t\5\t\v\t\v\4\r\t\r\t+\4\v\t\2\f\31\f\b\33\25\33\21\20\1\20\1\0\1%\0\t+\t\4\26\25\n\t\0K\b\33\2\3\5\r\v\0\3\v\t\r\v\b\1\v\31\v\2\f\v\0\33\t\0\5\t\v\t\v\b\t\f\4\n\b\3\1\t\x040\1\0!\0\4\5\4\t+\n\b\4\33\5\1\33\0\v\t\b\33\t\v\t\2\b\5\f\v\6\33\4\r\v\2\t\v\1\f\v\6\v\f\4\v\t\0\2\0\b\t\v\b\3\b\1\20\1\0\4\5\1P!\20\5\t\33\t\0\25\b\v\t\5\0\v\f\0\v\t\3\33\b+\t\5\t\33\t\4\5\t\v\t\v\t\r\b\t\v\t\3\b\n\3\2\0\2\0\3$\5\1E\4@\1\x001\0\3+\22\25\r\v\t\5\b\v\f\r\v\6\t\v\b\r\v\t\6\3\5+\t\3\5\t\33\t\r\v\f\r\t\r\4\3\1\22\0\2\x045\4\1\4\3\1`\x110#\t\33\t\2\1\5\b\v\t\5\b\v\t\r+\t\5\f\v\6\2\1\4\v\t\b\v\t\0\31\b\r+\34\33\f\r\1"\1P\2P\1\xf0\0\4\3\2\3\t\33\t\6\5\r\v\t\5\b\v\r\b\33\t\4\5\t\v\t\f\t\0\n\t\r\31\r\34\xab\1\f\r\1B\xb0\1\21\20\21\0\3\5\22\4\t+\b\4\v\n\4\f\v\35\v\t\f\r\5\t+\t\r\b\f\v\34\xfb\1\f\4\0\22\0\2\xa0\1\1\0\1\0\21\0\1\5\1\2\4\5\b\t\33\b\v\t\2\t\v\b\r\v\b\f\v\r\b\t\30\f\xfb\2\f\3\22\xf0\1\21\20\25\22\25\b\33\a\33\t\33\0\t\n\r\34\v\r\f\xcb\3\4\22\xe0\1!\0\3\5\t\6\1\4\t\33\30+\t\r\b\r\f\v\f;L\33\f\xcb\2\r\22\xd0\1!\0\1\4\33\31\33\t\4\r\b\t\b\r\v\34\v\f\33\f\v\f\v\t\nN\37\27\32\t\xeb\1\r\0\2\xc0\x011\0\1\t;\n\0,\r\\\v\34\v\t\36o\16\a\0\37\a\37\n\xdb\1\r\22\0\2\x90\1a\30\t\b\4\r\vl\v,\n\16\37.\17\36\a\36\a\17\16\a\16\a\16\37\16\t\xbb\1\r\22\x80\1\1\0\xf1\0\3\2\4\r\v\x8c\1\v\t\16\17N\17W\b\4\25\b\16\27/\16\xbb\1\4\22\x90\1a\0\2\1\r\xac\1n\37\a\b\24\xf5\0\4\36\27/\t\xab\1\4\2\0\2\xf0\0\1\x131\20\4\x9c\1\v\16\17\a>\37\a\x84\1E\b\'/\n\x9b\1\f\1\22\xf0\0S\1\0\4\x9c\1\t\36\a>\37\b\5\4\b\4%\24\xf5\0\'/\16\x9b\1\f\22\0\2\0\x020S\0\1\r\x8c\1\t\36\a>\37\b\5\24%\4\r\4e\a\16\17\b\16?\16\x9b\1\4\2\20\2@\x013\21\4\x8c\1\t\16\27\36\a.\b\24%\4\30\r\xf5\0\b\37\a_\16\x8b\1\f\0\22 \2\20\3\1#\0\3\x9c\1W.\a\b\r\25\4(\xf5\0\4\27\37\36_\n\x8b\1\4"P\1\3!\4\x8c\1\n7N\30\24(\r\xf5\0\4\30\25\6\16\xff\0\t\xfb\0\f\x002 \1\0\23\1\3\x8c\1\t\16G\36\a(\48\xe5\1\16\x8f\1\x8b\1\x042\20\2!\3\1\4\x8c\1\27\n\'\36\a\b\0\b\4(\r\xa5\1\a\16\27\b\16\x8f\1\n\xfb\0\fB\20\21\3\1\3\r\xfc\0\bW\16\a\24\25\4\25\4e\4\b\r\5\b\17\6\5\16\27\36\37\a\16?\x8b\1\3R\1\23\1\4\r\xfc\0W\16\a\xc5\1\4\b\27\36\25\37\5\4\30\24\r\b\16\27/\n\xfb\0\r"\0\22\23\1\0\4l\r\t\27\n7\b\xb5\1\4\n\a\b\a\t\4\25\b\17\a\4\0\a5\b\37\a/\xfb\0\fR\1#\r\xfc\0\x87\1$e\24\25\t\r%\b\4\b\37\b\r\16\5\4\25\16\17\b\a/\n\xfb\0\1B#\4\r,\r<W(P\b\2\4\t\n\16\b\r\n\t\4\t\27\16\b\a\17\b\16\r%\36\3\b?\16\xfb\0\rB\1\3\1\4\xfc\0\tG(\0\1\20\3\b\16\6\2\4\t\36\31\16\t\4\t\n\16\17\t\b\17\16\a\25\4\17\a\4\5\a\17\36\37\16\n\tK\rB\23\1\4\xfc\0\b\xf7\0\1\0\1\4\a\16\n\22\0\f\16\17\16\31\r\4\n\16\17\16\r\a\17\30\5\4\17\b\5\0\16/\36O\16\n\33\fB#\4\f\r\\g\16\a\0\2\0\a.\6\22\b\n\16\4\t\16\32\35\16\t\5\a\17\4\5\4\a\r\5\a\16\30\3@\30\27\37\n\f\x032\1\3\1\4L\r\34g\16\a\2\4\a\17\16\37\a\22\b\n\t\5\t\16\n\f\24\16\n\4\b\17\24\a\4\5\a\b\23"&"\20\4\a\16\17\a\0\1\22#\4\34\rLg\16\2\1\b\16?\16\1\20\n\r\24%\4\5\b\t\b\17\a\5\6\5\4\0\4\0\26\2\26"6\22\0\4\b\37\a\1\0#\r\f\rL\r\xf7\0\0\4\t\16\n\16\37\b\a\23\t\n\5\r\t\r)\24\37\5\2\24\21\26\22\1\4\5\4\b\4\5\4\0\26\2\26\0\5\b\37\6#\rl\tg\b\0\4\r\n.\27\16\b\4\5\36\r\f)\35\37\4\3\0\4\1\2\6\2\3\4\5\4\b\r\b\a\36\4\25\0\6\22\26\3\5\16\17\23\24\34\r<\tg\b\0\3\r\t\n\16\27\17\6\t\16\30\16\t\a\16\a\t\5\37\4\5\1\3\0\22\4\5\30\n>\n\r\a\17\a\25\4\x026\0\4\a#\r\f\rL\rg\b\0\3\b)\a\37\a\5\n\36\b\16/\16\b\17\4\5\3\0\4\20\b\r\27\n/\16\37\16\5\a\37\4\25\3\2\6\2\6\2\4#\r\xfc\0W\30\0\4\0\31\r/\b\r\n\t\n\a\31\r\t\r\30\5\4\t>\27\17\t\16?\16\37\16\r\b\x1f5\0\2&#\4\\\r\fg\b\0\3\4\31\b/\b\t:\31\bE\4\32\36\27\17\b\t\36o\16\r\b\17\a5\2&\23\1\4\xfc\0W\30\0\4\t\35\a/\b\t\32\16\32\16\17\a5\t\32\16\n\a\37\r\t\36\xff\0\n\5\16\17E\0\26\0\3\1\5\xfc\0g\b\4\31\35\a/\b\t\32\36\n>\b\n\37\16\17\16\a\37\a\t\32\36o\16\t\b\17\aE\0\6\23\1\4\rl\tG\30\t\r\b\r\4\a/\a\t\32\36\37\32\36\17\36\37\36\37\6\t\n\t\n\36_\16\t\4\37U\0\23\1\3\r\xfc\x007\24\16\17\4\5\r\4\a/\a\r\32\16\n\17\16*^\a/\31\n\t\n\36_\16\n\4\a\17\bU\23\21\r\xfc\0\'\4\r\16\37\n\25\rO\b\t*\16\n\t\32.\17\16\n\16\37\16\b*\t\n\36O\16\n\r\b\17\aU#\1\4\xfc\0\t\a\0\5\16\37\n\16\b\25O\a\r\t\32\16\31\32N\a/\aZ\16_\16\n\b\4\17\aU\3!\4\rl\r\b\5\t\16\17\16\n\16\n\4\5\16O\b\t\32\16\b\r\t\n\16*\a?\a\n\16*N/\16\n\t\5\36U\23\21\3\r\\\35\5\b\16\37\n\16\32\r\5\a_\b\t\32\35\t*\a\16O\a\n.\n\16\nn\n\b\5\16\17U3\1\4L\35\25\t\37\16*\t\r\5\b_\16)\4\r9\16_\a\xde\1\t\b\5\16\17\bE3\1\3\r,-\5\4\n\37.\n\30\5\0o\16\a\b\4(\a\xff\0\a\16?\x8e\1\t\5\b/E3\1\3\5\f=\25\b\37\32\17\16\b\r\b\4\5\a\xff\0\36\xbf\1\a\16\37\x9e\1\n\t\4?\x0e5\x013\1\3\r\f\35\25\4\b\a\16\t\36\t\4\r\b\4\5\b\16_\16\t\f\t\16\x9f\1\27.\t\5\n^\17\16\t\a?\4%#1\4\f\r\4\a\24(\a\32\b-\4\b\4\b\36/\t\f-\v\n\x8f\1\a\b\32\r\25\n\16o\16\r\16/\a%#\1\23\1\3\25\a\17\16\b\17\a\5\b\t\b\35\5\4\0\b$\27\16\a\f\4\6\17\0\4\f\16\x8f\1\a\b\24\5\4\n\36_\16\t\4?%3\1\23\4\5\r\b\16\n\16\b\5\4\5\0\r\bD\3\30\4\b\a\b\35\0\2\b\0\r\t\xff\0\36\a\35\5\4\n.O\16\n\r\b/\4\25S\5\r\n\b\5\b\32\4\5\4\5\24\r\30\0$\b\16\a\30\4\5\b\4\5\1\a\5\4\x8f\1\'\b\4\5\n.O\36\r\4/\4\25\23\1\3\4\5\4\36\30\32\16\b\4%,\30\0\1\4\16\17\a\37\a\r\b\6\3\b\a\r\4\b\a?.\a\b\4%\bN/\16\n\35/\4\x153\4\5\n\17.\n\4\n\b%\r,\35$\16\17\16\a\37\v\f\0\a\b\f\v\t\a(\6\27\bD%\tn\n\t\r\b/\4\25\1\3\4\25\4\36\n\t\n\31\4\5\r\5\r,\35%\4?\16\17\t\f\33\f\v\t/\a\6\30\27\6\30\a\b\5\4\25\b*\16\32\t\30\r\16\37\a\25\3\24%\4\35(\16\t\4\r\4\r\34-%\bo\b\t\f\t\a\x9f\1.\6\b\a\b\5\24I\35\b\t\r\b\17\27\25\23\x045\n.\n\b\n\t\4\35\34-%\4\xff\2\a\b\17\b\5\4\b\4\5\r\b\r()\r\b\17\16\b\5\3U\n\a-\n\16-,-%\0\16\a\16\xbf\2\16\a\17\b\5\a\6\4%\4=\t\n)\b\37\5\3\24U*\t\b\n\b\5\34-\4%\3\b\27\16\x9f\2\a\16\17\b\5\a\17\b\5\24\25\b\r\t\36\37\16\n\r\a\17\b\23\24E\t\n\t\4\r\t\23\5\34\x1d5\4\1\'\16\x8f\2\6\17\a\5\a\16\b\4\b\r%\t\36O\16\n\r\16\a\23\4\xf5\0\r\t\r\4\3\21\4-5\3\2\1\a\b\a\16\xef\1\a\17\a\5\27\b\4\30\25\4\b.O\16\n\4\b\16#\4U\24S\1\3e\2\1\20\b\17\16\xdf\1\36\r(\0\2\r\5\3\4\b\36_\16\32\r\b\a#\4E\24\x93\1\4E\6\2\3\2\0\a\xdf\1\16\a \21\2\23\0\3\b._\32\t\4\a\6C\4\25\4\xf3\0\21\23\x145\a\6\1\3\0\1F\a\17\16\a&\2\20\1\20\3\r\6\2\3\2\0\4\n\36O\16\32\t\b\5\a\b\3\4\3\21\xf3\1\4E\4\17\6\1\3\0\1\x101\0\22 B\27\2 \5\b\36\37\16\37\16\32\31\4\r\4\5\3\24\3\1\xf3\1\24E\a\17\a\2\0B\0b\6\2&\2\6\2\0\3\4\5\t\16/.*\30\4\r\25#\4\xe3\1\1\3\4e\16\37\a\6\x92\1\6 B\a$\b\36\17>\32\t\n\t\24%\xc3\2\24U\r\n\37\16\a\6b\b^\b\6\30\0\24^\a\32)\r\b5#\21\x83\2\24U\f\t\16?\aF\16\t\n\36\n\16\n\4\6(\n\37.*\b\31\30\x045\xb3\2\1\23\4E-\f\t\16o\32\35\31\32\17\a\4\0\b\32\a.*)\4\b\4E#\4\xf3\1\1\23\x045\4\b\35\4\r\f\n\16?\t\r\31%\t\n\36\31\n\r\b\32\16*\b\31\r\b\4U\xe3\2\24%\b\17\a=\f\v\n\36\37\b\n\t\r\25\t\16\17>\17\b\t\16\32\t(\r\b\4e\1\xe3\2\4%\6\a\17\b-,\33\t\n\t\n\36*/\36\17\16\n\b\n\30\35\30\4\x85\1\xe3\2\4%\a\17\27\17\4\a\35<\v\f\n\r\16/\16\17N\n\31\a\b\35\b\4\xa5\1\3\1\xb3\2\24\25\a/\b\16\a\b\a\6\b\r,\r\b\n\r\nn*\t\30\a\b\xd5\1\1\xd3\2\25\aO\b\16\30\a\36\a\t\f\35\t\n\r\32\16Z\t\30\27\xe5\1S\4\xa3\1\21\3\4\25\a_\a\b\17\a\b\16?\a\35\t\n\r\a\tJ\31\r\24\xf5\1\x83\2\21\24\25\a_\a\17\b\a\17\27\17\b\a\37-\t\n\t\32\t\b\35\24\xa5\2C\24\x83\1\1\3\4\3\4\5\bo\a\6\a\4\37\16\'\b\36\35)\r\24\xf5\2\3\x043\4\x93\1\4\5\b\24o\36\27\30\37\'\0\27\16\4\35$\r\26H\r\24\25\4\5\4\x85\1\xd3\1\1\3\24\b\4\5o\16\17\27\b\a\4\a\37\27\16\a\30\a\b\4\b7h\r4\5\4\x85\1\3\4\xc3\1\4\5\4\b\5\a\17\16?>\27\b\r\4\a\16/\a\5\b\17\b\a\17\a\xa8\1\r\24\5\24\x85\1\3\4\xc3\1\4%\ao\16\17\x0e7\b\4\b\x0e7\5\a\b\a\16\b\4\b\'\36\27\6(\r\24\30\x85\1'
)

Choix ici aussi bien dosé, l'affichage de Super Dupont semble toujours correct en 16 couleurs.

Voilà, si tu es sur une des plateformes aux mémoires de stockage et heap limitées, et si tu juges le script converti par défaut trop gros relativement à la complexité de l'image que tu as fournie, c'est très probablement qu'il y a surabondance de couleurs et il te suffira tout simplement d'en réduire le nombre maximal.

Un gros merci à Afyu, cent20 et redgl0w qui ont rendu cette mise à jour possible ! :favorite:


Liens :
Lien vers le sujet sur le forum: Mise à jour img2calc Python: miroir + optimisations palette (Commentaires: 4)

Mario | Oiram: pack de 5 niveaux pour fêter 2022 !

Nouveau messagede critor » 27 Jan 2022, 13:17

12303En janvier 2017, c'est tout un monument du jeu vidéo qui débarquait sur calculatrices TI-83 Premium CE et TI-84 Plus CE, j'ai nommé Oiram CE par MateoconLechuga.

Oiram CE est un moteur de jeu Mario-like reprenant partiellement le gameplay ainsi que les sprites de jeu Super Mario Bros 3 sorti en 1988 pour la console de jeu japonaise Nintendo Famicom puis en 1990 pour sa déclinaison internationale Nintendo NES.

Outre les niveaux intégrés, tu peux rajouter pléthore de packs de niveaux additionnels, et même en créer toi-même très facilement grâce à un éditeur dédié pour Windows ou Mac.

Grâce à Oiram CE, ta TI-83 Premium CE se transforme en formidable console de jeux portable. ;)

En août 2020, Thomas Williamson portait Oiram CE pour calculatrices Casio Graph 90+E et fx-CG10/20/50.

Le portage avait comme gros point fort le fait d'accepter directement d'ouvrir les fichiers de niveaux au format .8xv de Texas Instruments.

Mais la version Casio bénéficiait également d'avantages spécifiques, comme celui de tirer profit de la puissance supérieure du matériel pour nous offrir une hauteur d'affichage bien plus grande. Tu peux comparer toi-même, rien à voir avec le demi-écran de la TI-83 Premium CE : :D
1249512784

Aujourd'hui il est encore temps de présenter ses vœux pour la nouvelle année. Et voici justement les vœux de Ninjaa, nous la forme d'un pack de 5 niveaux pour fêter la nouvelle année, nommé tout simplement Welcome to 2022 :

Sauras-tu franchir tous les obstacles que t'opposeront Bowsers et ses sbires afin d'arriver à fêter 2022 ? ;)

Attention, Oiram CE rentre dans la catégorie des programmes en langage machine dits ASM.

Sur Casio, aucun problème. :)

Mais par contre chez Texas Instruments, suite à un acte irresponsable d'un enseignant de Mathématiques français avec ses gesticulations aveugles dans le contexte de la réforme du lycée, le constructeur a réagi en supprimant la gestion de tels programmes depuis la mise à jour 5.5.1.

Si tu es sur une des versions ainsi bridées, tu peux quand même jouer sans trop d'efforts. Il te faut :
  1. installer arTIfiCE pour remettre la possibilité de lancer des programmes ASM
  2. ensuite de préférence installer Cesium pour pouvoir lancer les programmes ASM plus facilement, ou même AsmHook pour pouvoir les lancer comme avant
  3. installer les bibliothèques C nécessaires au fonctionnement de certains jeux dont celui-ci (mais rien de compliqué, juste à transférer le fichier et c'est tout)


Téléchargements :
Lien vers le sujet sur le forum: Mario | Oiram: pack de 5 niveaux pour fêter 2022 ! (Commentaires: 0)

Mise à jour TI-Nspire CX II 5.4.0.259

Nouveau messagede critor » 27 Jan 2022, 21:35

15158Texas Instruments nous sort à nouveau aujourd'hui une mise à jour 5.4 pour ses calculatrices TI-Nspire CX II.

Le numéro de version complet est 5.4.0.259, et la compilation a eu lieu le 11 janvier 2022.

Cette mise à jour fait donc suite à la version précédente 5.4.0.257 compilée le 11 novembre 2021 mais publiée seulement le 6 janvier dernier.

Nous sommes très hautement surpris d'avoir une nouvelle mise à jour après seulement 3 semaines, compilée visiblement quelques jours après la sortie de la version précédente. Il faut croire qu'un défaut significatif a été identifié suite à la publication de la version 5.4.0.257, sans toutefois être trop complexe à corriger. Peut-être quelque chose touchant à la sécurité ou au mode examen, deux arguments de vente majeurs chez Texas Instruments.

Attention, comme toutes les versions précédentes depuis la 5.3.2 incluse, cette nouvelle version 5.4.0.259 n'est pas compatible avec Ndless r2018, et son installation est comme à l'habitude bien évidemment sans aucun retour possible. Toute tentative de réinstaller une version inférieure te sera par la suite refusée.

Si tu choisis de mettre à jour ta calculatrice avec l'une de ces versions, tu renonces donc à Ndless pour une durée indéterminée, des jours, semaines, mois ou même années comme c'est déjà arrivé, nous l'ignorons.

Le changelog officiel n'a pas été mis à jour, évoquant vaguement que les deux mêmes choses que pour la version précédente :
Texas Instruments a écrit:
  • améliorations des fonctionnalités « Mode examen »
  • diverses corrections de bugs mineurs


Nous avons cherché pendant plusieurs heures, aussi bien niveau mode examen que niveau bugs déjà rencontrés, mais n'avons strictement rien réussi à trouver comme nouveauté ou amélioration visible pour l'utilisateur.

Il y a toujours les problèmes avec les images-ressources que tu importes dans tes documents via l'éditeur Lua du logiciel TI-Nspire.

Elles sont affichées correctement par les scripts Lua, mais sont inversées verticalement lors d'un affichage par les scripts Python via le module ti_image.

Pire, sur certaines images nous avons même avec une distorsion horizontale en prime... :(

Niveau Python, il y a toujours un bug bien violent avec la fonction set_color() de la bibliothèque ti_draw. Si jamais tu commets l'erreur de lui passer le paramètre de couleur sous la forme d'une liste au lieu d'un tuple, la calculatrice redémarre instantanément :
Code: Tout sélectionner
from ti_draw import *
set_color(255, 0, 0) # ok

c = (255, 0, 0)
set_color(c) # ok

c = [255, 0, 0]
set_color(c) # reset



Téléchargements :
Lien vers le sujet sur le forum: Mise à jour TI-Nspire CX II 5.4.0.259 (Commentaires: 5)

Jetpack Joyride, porté sur TI-83 Premium CE et TI-84+CE

Nouveau messagede critor » 28 Jan 2022, 16:33

Jetpack Joyride est un jeu vidéo à défilement horizontal sorti en septembre 2011 par Halfbrick Studios. Tu y contrôles Barry Steakfries, homme d'affaires sur le déclin muni de son jetpack, et dois lui faire parcourir la plus grande distance possible tout en lui faisant ramasser les pièces et éviter le florilège de pièges mortels (zappeurs, missiles, lasers, ...).

Suite à l'engouement de sa sortie, Jetpack Joyride avait rapidement bénéficié d'adaptations sur calculatrices graphiques, mais hélas uniquement pour modèles monochromes, les modèles couleur étant beaucoup moins accessibles à l'époque :
  • juin 2012 : Jetpack 8x par matref pour TI-83 et compatibles (TI-82 Stats, TI-76.fr)
  • juin 2012 : Jetpack 8x+ par matref pour TI-83 Plus et compatibles (TI-82 Plus, TI-84 Plus monochromes, TI-84 Pocket, TI-82 Advanced monochrome via un kernel)
  • janvier 2015 : Jetpack Joyride par Drakalex007 pour les Casio de génération USB Power Graphic 1/2 (Graph 85/75/95, fx-9860G, fx-9860GII, Graph 35+E tweakée, Graph 35+USB tweakée, fx-9750GII tweakée)
  • octobre 2020 : Jetpack Joyride par Drakalex007 pour les Casio de génération USB Power Graphic 3 (Graph 35+E II, fx-9750GIII, fx-9860GIII)

15173Et bien aujourd'hui c'est le grand jour, Jetpack Joyride arrive enfin en version couleur sur calculatrices, en exclusivité sur TI-83 Premium CE (ou TI-84 Plus CE à l'international) ! :bj:

Cette nouvelle adaptation est l'œuvre de King Dub Dub, avec l'aide de commandblockguy, MateoConLechuga, Lionel Debroux et KryptonicDragon, ainsi que comme testeurs TIny_Hacker, roccolox programs, Randomguy et thelastmillennial.

Une nouvelle fois un portage de très haute facture : de superbes graphismes pour une fois en couleurs 16 bits (chose assez rare pour les jeux sur cette plateforme), et une fluidité excellente malgré cela et le fond d'écran qui défile en permanence ! :favorite:

Zappeurs, missiles et lasers sont déjà là, ainsi que les pièces à ramasser. Par contre, le magasin n'est pas encore ouvert... À bientôt. ;)

Attention, ce jeu rentre dans la catégorie des programmes en langage machine dits ASM.

Or, suite à un acte irresponsable d'un enseignant de Mathématiques français avec ses gesticulations aveugles dans le contexte de la réforme du lycée, Texas Instruments a réagi en supprimant la gestion de tels programmes depuis la mise à jour 5.5.1.

Si tu es sur une des versions ainsi bridées, tu peux quand même jouer sans trop d'efforts. Il te faut :
  1. installer arTIfiCE pour remettre la possibilité de lancer des programmes ASM
  2. ensuite de préférence installer Cesium pour pouvoir lancer les programmes ASM plus facilement, ou même AsmHook pour pouvoir les lancer comme avant

Téléchargements :
Code source : https://github.com/KingDubDub/Jetpack-Joyride-CE/
Lien vers le sujet sur le forum: Jetpack Joyride, porté sur TI-83 Premium CE et TI-84+CE (Commentaires: 7)

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1381 utilisateurs:
>1351 invités
>24 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)