Discuss Scratch

imfh
Scratcher
1000+ posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

Scratch to Python
sb3topy is a Scratch to Python converter I have created. I've been working on it intermittently for a long time now, but finally had some time to get it ready to release! Check it out on GitHub: https://github.com/BirdLogics/sb3topy

Converted projects do not run (always) faster than Scratch, but the code is converted into single readable file. Most blocks are converted to a single line of Python code.


Projects in the above image above by @griffpatch(left), @RokCoder (middle) , and @jonzo (right).

What's Supported

Although many blocks and features have been implemented, there are still a few major features missing. Click here to see a full list of supported blocks.

Working
  • Graphics
  • Sounds
  • Custom Blocks
  • Pen
  • Color, Brightness, and Ghost effects
  • Touching [sprite v] block
  • Cloning
Not Yet
  • Variable monitors
  • Speech bubbles
  • Some “hacked” blocks
  • Touching color block
  • Sprite dragging
  • Music blocks
There are also some edge cases where the timing of a project might not always exactly match the Scratch player, although I've made an effort to make it as close as possible. Unfortunately, the asyncio module doesn't provide control over the execution order at the level I would need unless I rewrite the event loop, which would be slow unless it was done in C.

About SVGs
Currently, I'm using the CairoSVG library to convert SVGs to PNG. I've had some trouble installing it on one of my computers, so let me know if you also have trouble. I'm considering adding support for a different library which is easier to setup (let me know if know a good one). If someone wants to add a “convert all costumes to bitmap” feature to nono word that could also be handy…

Last edited by imfh (May 7, 2022 20:28:24)


Scratch to Pygame converter: https://scratch.mit.edu/discuss/topic/600562/
mbrick2
Scratcher
1000+ posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

Wow!!!!








My Forums
ATs
Collabaration
My collabs
AIPoint
AspectOS
CoreOS
OddyseyOS
Cops and Robbers
#BringBackManagerRights
#ReturnRightsToManagers
#WeAreForManagerRights
#LetsRemindAboutMangers
#WeAreMangers
#MangersMustManage

The road to 1000 posts!
0 ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ 1000
80% complete

Banner Made By @Abcde26



Card Made By @Polygon
skymover1239
Scratcher
500+ posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

That is awesome!!



First time a moderator got ninjaed??
500 Posts
Current Mainline projects
AquaCSS - A CSS framework.
Ink - An editor that does, lots of things.
Sid72020123
Scratcher
500+ posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

WOW!!!

god286
Scratcher
1000+ posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

I will try it soon! This is cool!

Also there is another project https://github.com/Secret-chest/scratch2python/ I am not sure if it has some of the functions in your to-do list though

meowclient
Typescript and ESM support
Kind-of good documentation
Easy to use
meowclient


                 _ ____  ___   __   
__ _ ___ __| |___ \( _ ) / /_
/ _` |/ _ \ / _` | __) / _ \| '_ \
| (_| | (_) | (_| |/ __/ (_) | (_) |
\__, |\___/ \__,_|_____\___/ \___/
|___/
^ inspired by @Chiroyce, made with figlet
Retr0id
Scratcher
51 posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

It would be cool to see some example output (e.g. for the projects demoed in the screenshot)

btw i use aarch64
SansStudios
Scratcher
1000+ posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

Cool! I did a bit of testing, and it's pretty awesome! Will support for the “For Each” control block ever be added? I use it in most of my projects

scratchcloud
Click above to check it out! I've worked on it for over a year!























Just like sudden sadness comes hangin' on the breeze
imfh
Scratcher
1000+ posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

Retr0id wrote:

It would be cool to see some example output (e.g. for the projects demoed in the screenshot)
Do you mean like the output log in the GUI? I guess I could add a screenshot of that.

SansStudios wrote:

Cool! I did a bit of testing, and it's pretty awesome! Will support for the “For Each” control block ever be added? I use it in most of my projects
Yeah, I'll probably add it eventually. Right now, I'm working on rewriting how blocks are stored so everything is saved in a single JSON file instead of messy Python code (see the feature-type-switches branch, it's currently broken). That means I have to finish that before adding new blocks, however, so it might be a little while until I add the for loop.

Once I do get new format done, adding new blocks like that should be pretty easy.

Scratch to Pygame converter: https://scratch.mit.edu/discuss/topic/600562/
NFlex23
Scratcher
1000+ posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

Very cool! I can't wait for variable monitors to be implemented so I can test out one of my projects in it.

Edit: I keep on getting this error when trying to convert https://scratch.mit.edu/projects/540224710

Another edit: it's probably because the costumes are SVGs…?

Last edited by NFlex23 (May 1, 2022 18:20:06)

Retr0id
Scratcher
51 posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

imfh wrote:

Retr0id wrote:

It would be cool to see some example output (e.g. for the projects demoed in the screenshot)
Do you mean like the output log in the GUI? I guess I could add a screenshot of that.

I mean like, an example of the python code that it generates.

btw i use aarch64
imfh
Scratcher
1000+ posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

NFlex23 wrote:

Edit: I keep on getting this error when trying to convert https://scratch.mit.edu/projects/540224710

Another edit: it's probably because the costumes are SVGs…?
Ok, I found the issue. Since you don't have SVG conversion setup, it can't convert SVG files and needs to use a fallback image. However, it was still trying to get the bitmap resolution for the fallback image. I've fixed the error for now by just adding a default bitmap resolution.

Retr0id wrote:

imfh wrote:

Retr0id wrote:

It would be cool to see some example output (e.g. for the projects demoed in the screenshot)
Do you mean like the output log in the GUI? I guess I could add a screenshot of that.

I mean like, an example of the python code that it generates.
Oh, yeah that could be helpful.

Last edited by imfh (May 1, 2022 21:28:45)


Scratch to Pygame converter: https://scratch.mit.edu/discuss/topic/600562/
imfh
Scratcher
1000+ posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

Version 1.1 Beta is now out! I finished refactoring the specmap and added hidden blocks. I also fixed a bug which broke a lot of projects, and improved performance by avoiding debug logs by default.

The new specmap, which stores the data for each block, is pretty neat. All of the blocks are stored in a JSON file, so it's really easy to add new ones or modify existing ones. Here's an example block:
{
    "control_for_each": {
        "type": "stack",
        "args": {
            "SUBSTACK": "stack",
            "VARIABLE": "variable",
            "VALUE": "int"
        },
        "code": [
            "for i in range(1, {VALUE}+1):",
            "    {VARIABLE} = i",
            "    {SUBSTACK}"
        ]
    }
}
You can see the file all of the blocks are stored in here and the documentation for it here.

Scratch to Pygame converter: https://scratch.mit.edu/discuss/topic/600562/
imfh
Scratcher
1000+ posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

Here's some example output for Opac3tyD by @griffpatch (the others are too big to post):
import math
import time
 
import engine
from engine.events import *
from engine.operators import *
from engine.types import *
 
 
@sprite('Stage')
class Stage(Target):
    """Sprite Stage"""
 
    def __init__(self, parent=None):
        super().__init__(parent)
        if parent is not None:
            return
 
        self._xpos = 0
        self._ypos = 0
        self._direction = 90
        self.shown = True
        self.pen = Pen(self)
 
        self.costume = Costumes(
           1, 100, "None", [
            {
                'name': "backdrop1",
                'path': "4b2a86f1da4c2593288abbe7f56eab5a-svg-2x.png",
                'center': (480, 360),
                'scale': 2
            },
            {
                'name': "backdrop2",
                'path': "a10d191b1511644ed42d3e869577e1ce-svg-2x.png",
                'center': (480, 360),
                'scale': 2
            }
        ])
 
        self.sounds = Sounds(
            100, [
 
        ])
 
        self.var_Resolution = 3
        self.var_Zoom = 299
 
 
 
        self.sprite.layer = 0
 
 
 
 
@sprite('Blank')
class SpriteBlank(Target):
    """Sprite Blank"""
 
    def __init__(self, parent=None):
        super().__init__(parent)
        if parent is not None:
            return
 
        self._xpos = 36
        self._ypos = 28
        self._direction = 90
        self.shown = True
        self.pen = Pen(self)
 
        self.costume = Costumes(
           0, 100, "all around", [
            {
                'name': "costume1",
                'path': "3339a2953a3bf62bb80e54ff575dbced-fallback.png",
                'center': (0, 0),
                'scale': 1
            }
        ])
 
        self.sounds = Sounds(
            100, [
            {
                'name': "pop",
                'path': "83a9787d4cb6f3b7632b4ddfebf74367.wav"
            }
        ])
 
 
 
 
 
        self.sprite.layer = 3
 
 
 
 
@sprite('3d demo')
class Spriteddemo(Target):
    """Sprite 3d demo"""
 
    def __init__(self, parent=None):
        super().__init__(parent)
        if parent is not None:
            return
 
        self._xpos = 132.1725565687481
        self._ypos = 4.912546966277481
        self._direction = 90
        self.shown = False
        self.pen = Pen(self)
 
        self.costume = Costumes(
           0, 100, "all around", [
            {
                'name': "big rect",
                'path': "c4958b3fc53e567c3f2d6903f3a7c11a-svg-2x.png",
                'center': (522, 388),
                'scale': 2
            }
        ])
 
        self.sounds = Sounds(
            100, [
            {
                'name': "Julius_-_3d_Demo_Tune.mp3",
                'path': "4baafbd297c5163c9bfe5da2a4b7a8b6.wav"
            },
            {
                'name': "silence",
                'path': "22392866c0f23819792658e9bc4f6c0a.wav"
            }
        ])
 
        self.var_pos = 1992
        self.var_lastquad = 30
        self.var_lastrendertime = 0
        self.var_incx = 72
        self.var_incy = 78
        self.var_ymin = 90
        self.var_ymax = 84
        self.var_xmin = -93.44758896468164
        self.var_xmax = 300
        self.var_xcnt = 55.67592596131997
        self.var_xminprv = -76.10188833345045
        self.var_xmaxprv = -9999999
        self.var_p = 6
        self.var_ply = 6
        self.var_pOrd = 38
        self.var_distance = 4.500000000000004
        self.var_speed = 0.5400382381196349
        self.var_speedTarget = 0.6
        self.var_starIdx = 192
        self.var_GUI = 0
        self.var_Stars = 300
        self.var_ZoomSx = 0.399999999999975
        self.var_beat = 7
        self.var_beatTimer = 28.516000000000002
        self.var_beatSize = 1.2893518518518519
        self.var_a1 = -0.7020497095555254
        self.var_a2 = 0.511866032704478
        self.var_svx = 300
        self.var_svy = 300
        self.var_svz = 300
        self.var_acc = 0
        self.var_peri = 527.0775063128438
        self.var_ind = 35.53957386718539
        self.var_td = 0.0957606658924196
 
        self.list_points = List(
            [-0.8040276720500144, -0.29271526339301984, 0.13363113549602848, -47.911626143953875, 13.445139405650869, 61.975484984148316, -0.5061708219851443, 0.6538253400375734, 0.2574947084610783, -38.88029270113208, 23.89699921288966, 77.33822300053956, 0.01381562942416649, -0.6126629922077974, 0.6119258045434227, 6.004924678902964, 35.531837354590095, 58.52431526753469, 0.3116724794890361, 0.33387761122279763, 0.7357893775084734, 26.866185715758053, 50.36695870415431, 72.03718446689328, -0.3116724794890361, -0.33387761122279763, -0.7357893775084734, -22.995111691367022, -43.109723620989236, 61.65754678663661, -0.01381562942416649, 0.6126629922077974, -0.6119258045434227, -7.884602343092702, -46.65410859267782, 76.84375374556744, 0.5061708219851443, -0.6538253400375734, -0.2574947084610783, 29.27939299558875, -17.99599701442316, 58.2407195907593, 0.8040276720500144, 0.29271526339301984, -0.13363113549602848, 55.35826330256229, -15.534842526976146, 71.60798937920059, 1.2516880008601288, -1.0616680911978267, -1.1351819042106337, 67.6241797993048, -61.796975030599754, 53.90906904828621, 0.9734028857521868, -0.8751494534208689, -1.5063532774331263, 54.10765307121713, -84.45917407126471, 55.749027701194485, -1.0724442096211277, -1.654249298486482, 0.309552256112522, -50.87156180170708, 15.471626388616022, 48.48204875370223, -1.3507293247290697, -1.4677306607095304, -0.06161911710997848, -66.61051083333321, -2.4757579894906603, 49.965101763102474, 1.3507293247290697, 1.4677306607095304, 0.06161911710997848, 132.1725565687481, 4.912546966277481, 99.14374107970566, 1.0724442096211277, 1.654249298486482, -0.309552256112522, 110.75265681961221, -33.68333243903171, 105.55043952572944, -0.9734028857521868, 0.8751494534208689, 1.5063532774331263, -79.79722095673223, 124.55922577748973, 82.21789763713979, -1.2516880008601288, 1.0616680911978267, 1.1351819042106337, -108.60164179576256, 99.24339143561592, 86.57573997496672, 1.0729604317551955, -0.878239189426486, -0.5722340487931296, 60.104749633485035, -32.42391212308745, 55.73066203911069, 0.5163902015393135, -0.5052019138725763, -1.3145767952381233, 30.550744891785886, -78.90050805164623, 59.81219060830805, -0.5871340043028463, -1.3015114803469603, 0.4597189228662642, -29.18742124287494, 23.933447513366314, 51.47577793817772, -1.1437042345187258, -0.9284742047930521, -0.28262382357872984, -62.339880852353936, -14.964981438402184, 54.9385086139351, 1.1437042345187258, 0.9284742047930521, 0.28262382357872984, 95.3694079008873, 22.89387466762048, 84.04656803688688, 0.5871340043028463, 1.3015114803469603, -0.4597189228662642, 53.12230722131608, -43.55985892315359, 93.68803318846312, -0.5163902015393135, 0.5052019138725763, 1.3145767952381233, -38.17092300043672, 98.58041852015454, 74.73096090730736, -1.0729604317551955, 0.878239189426486, 0.5722340487931296, -88.71398307386997, 47.857355846529, 82.25787544215683, 1.4705955986416253, -1.1129323546504821, 0.35878978205499035, 102.48209568488191, 23.816605196065094, 53.44256463273567, -0.19911509200601463, 0.006179472011234938, -1.8682384572799942, -18.50704863519583, -160.01940969568008, 66.49667969962444, 0.14252004979519134, -1.4515501873868624, 1.1843521593825015, 11.071858746144576, 76.65734402765746, 50.25577174938265, -1.527190640852448, -0.3324383607251463, -1.0426760799524786, -121.76466322491632, -81.7714278809795, 61.633737932011066, 1.527190640852448, 0.3324383607251463, 1.0426760799524786, 142.38215031514335, 95.61716369656168, 72.06971141134844, -0.14252004979519134, 1.4515501873868624, -1.1843521593825015, -21.59454499433319, -149.5124262967825, 98.01881952701814, 0.19911509200601463, -0.006179472011234938, 1.8682384572799942, 18.477995707473546, 159.76820636036223, 66.3922911897563, -1.4705955986416253, 1.1129323546504821, -0.35878978205499035, -168.37909504796193, -39.130917485907865, 87.80666134669723, -192.26192053601963, -174.00688689781055, -196.54504635194874, -317.17182014405154, -322.05863168518374, 1.6531120122882732, 173.5558715443796, 53.13940744302991, -40.10688178423276, -1016.3119080175866, 245.38398639931688, -5.8907569274120855, -225.22454882515484, -227.646269331458, -19.623365576069766, -283.3350581809263, -22.416976361931383, 1.2729316976338891, -48.76826731940144, 120.71832829993404, -176.23206449344138, 134.03127985821374, 454.7097634367476, -2.586674064449883, 182.50380724837163, 326.543905150942, -89.93573044034407, -163.84439779655244, 84.43353812857224, -0.9221403986062678, 179.78754746827403, -133.1917439481557, -100.69456904635393, 398.3269626438108, -225.7489422027148, 2.2068055861708267, 228.72607461792128, -85.24344380185924, 168.24962550341175, 795.5123194236439, 571.7422220394085, 3.440094729883623, -34.93355548077656, 348.0218715726326, -182.84261426345796, 35.58485167886467, 159.08704391500228, -0.8715988648726193, 67.21690284236072, -69.48321066083899, 267.62468124810874, 288.0666485176335, 1091.7864942265705, 4.088881088911711, -265.5517176249297, 287.26994087326875, -28.341920761260603, 288.09078352334006, 27.781030636783505, -1.0697993680706386, -175.80077762729297, -133.7152996779527, 53.835898802702246, -369.95716019371844, 118.02985026471049, 2.1303377712188336, -266.15535611576036, 52.95843172887552, 64.5114662714884, 1760.8876016958636, -442.45302199770487, -6.6149700575201775, -301.11811215299775, 128.73579531253384, 89.73837227865852, 748.7223483408355, -229.24779826722323, -2.4803692080800186, 39.01460417624886, 51.98139130986975, -3.129781861597584, -239.08223742352385, 21.686537784491968, -6.234990594580671, -74.23395590621182, 132.34822907171124, 297.28482031736894, 172.3693355622398, -701.6540054887984, -2.35504835322982, 304.89070273544723, -144.65958494069804, -4.925635308467054, 630.3992097294794, -15.728347345571565, 2.0562030080907334, -89.8453031686831, -83.48431075660312, 340.627639594944, -288.0116033943637, 1146.4711681148215, 3.3579821888439247, -19.81563198720707, -167.17215397464747, -28.736933165444245, -31.34570027668764, -49.673033558065725, 1.7393273374972194, 239.3814956991933, -56.96636429281584, -49.14602283128587, 1223.9666360326553, -261.9566260729376, 5.108098849198443, -276.7479651305599, 126.41192665530093, 106.67045870566174, 699.5782504728904, -275.3249856032113, -2.5227103198850287, -15.545223206711347, -93.31399890210425, -152.43307771677016, -48.08250903123014, -464.56711092106724, 3.0505801264309484, 386.7489773921464, -145.52504365724252, 27.56241914434311, 800.0920633971921, 49.61548668106367, 2.058200339656161, 87.55525585169912, 342.908153963228, -168.13409136645956, -72.09196223907269, 148.78754095467255, -0.8808710050730783, -58.03253485600112, -108.70739200789282, 300.0598704395114, -141.81941390471113, 789.1760881726049, 2.625630317626764, -96.22774768441079, 179.16127917303302, -73.56259978894205, 170.7685420707136, 125.31537032212893, -1.7237327120711181, 50.154250817250464, 59.97265536217123, -109.84457823124276, -258.26874983745387, 588.118697501457, -5.332559676151834, 92.04593869659791, 64.12225775649804, -133.77922324621775, -443.3736548657077, 662.6688703389234, -4.923385093549136, 234.45415725117243, -195.78945902261972, -38.42830461506092, 358.1869397282766, -61.37526368153722, 1.514642112554995, 241.9097553891191, 212.00846664080933, -14.215413704817946, -339.77829946836675, 23.265870984882337, -1.420731661570064, 41.125312662024726, 202.63278169755154, 73.68625276169294, -59.1528715074413, -110.363549216654, -1.505315056613652, -298.3659804108997, -24.495365879903833, -84.96891527632143, -2735.5328485657365, -753.4857924484423, 9.155352182406514, -11.709245956057263, -62.90923308153223, 154.98168099687135, -42.29523621297174, 686.6319621798629, 4.42759549091203, 335.49685482759463, 239.17418114054217, 68.01887623971191, -417.16164104753176, -81.41860475409698, -1.2522287012118758, -172.5824060609677, -261.48775048466143, -123.24555776788999, -190.10870087637525, -135.72726870355913, 1.115271557614242, -320.5583240377461, 89.82234468375691, 30.875638398538484, 1180.4995503795462, -123.94070125158963, -3.673606334361113, 26.81488707784487, 148.95412582542212, 127.48972401331325, -53.95254755937768, -262.77696708506045, -2.0651247381936866, -146.1709451055022, -94.97094643407553, 266.6244025384008, -421.23760691260543, 791.3807584841538, 2.953799421142513, 304.6455086565721, 96.77718859493534, 62.69997829838292, -946.6933639394834, -186.7816262653324, -3.114278716066836, 128.4611360163066, -298.8595909879796, -45.778602143276125, 130.49116354029044, -46.49394557860668, 0.9908266519950556, 311.8542389421845, 110.72848918054027, 116.84234034319596, -846.3136770397889, -309.8614106203002, -2.716850727584743, 133.96208387790298, 160.7478079734251, -144.93895591755586, -247.5213421782281, 276.780153715297, -1.8940687618826775, -310.5432045819966, 222.87053150644152, -59.3012820134749, 437.2870693119004, 78.77633070414828, -1.3936636077707536, -139.28090047136246, -50.11696568261712, -83.75631250797001, -739.9455241337347, -437.9653369823779, 5.308111868446278, -85.36388478568206, -83.85616250402967, 153.87706260058155, -277.5000299182539, 517.2967241895308, 3.345307578740305, 86.82734084256194, -16.15932251317108, 136.92658141781698, 1347.51149536859, 2079.109549265455, 15.271239640487874, -13.7839774946763, 3.615276817650848, -111.78072963530212, -4157.843680712906, -31313.948452776018, 280.457422094808, -11.080653069983345, 194.14957739635466, -102.92793635414104, 22.687099458212888, 162.25107181638643, -1.5779365585927425, -42.72454124647645, 96.36872880302587, 321.58774831829226, 134.25462000158515, -1053.5364781466676, -3.272293461263567, -53.88486107475325, -16.04877367491883, 389.31331320740725, -709.2354759291852, 5506.404576736134, 14.126985417583084, -78.41124465602591, -266.5578201373408, -125.00241597339367, -83.81824782645363, -136.6290957897552, 1.0992153627346932, 296.851133393138, -189.99054816778212, 11.99976166807852, 468.860720741208, 14.645155039284154, 1.5667749947559042, -253.84260458925326, 101.16837327126056, 1.3751251438654153, 815.1421063967218, -11.642863712261041, -3.1961252182506805, -37.766936992525444, -110.36626743875435, 81.96917179925393, -92.51221348245492, 213.41006059229693, 2.5929709926475835, -36.183637371449244, -150.0184746856947, 83.75679760894849, -64.82676731441435, 162.24804304497118, 1.9297621177073343, -325.9843506969062, 58.438818592337014, -33.363231827481656, 1957.7038257414258, 182.31978815612393, -5.9875770301369755, 334.9207502312929, -108.22045248110004, -65.70709426276952, 923.9042655416207, -189.10903329213917, 2.752817845821667, 363.65017079422853, -133.03853099256133, -29.669845064746173, 820.0340263244299, -73.95982281569601, 2.2468322268246856, -115.522737784733, 205.89174352029121, 187.38219217644885, 173.97188900795246, -281.69431763617797, -1.4951391863454877, -18.590020652148475, -77.51230632048258, 310.4114231876311, -54.071712432999, 1129.6673075841854, 3.6374572113216326, 24.681980410142227, -51.19375444792632, 262.90492212845834, 149.368025396936, 1418.7376702286263, 5.401136170296284, 90.42078783018077, -42.5889641684952, 166.7520932438373, 601.2691721284359, 1079.54162045827, 6.505706209537987, -121.50685122527547, -5.665565283328418, -50.497386982541514, -3125.416352192137, -1267.0933008879265, 25.644535780758005, -144.01746312415463, -370.583772166251, 193.86499095935483, -109.29108931637852, 154.85171008067013, 0.7935259426848453, -165.92001595830516, 158.8133271713293, 197.46866618196944, 326.080089036425, -390.5963991835826, -1.963357812770747, -101.63126192452143, -47.48442541472343, 1.147010724358604, -567.5281865956297, 11.543530395928174, 5.617560573955469, -73.55646197329725, -168.26876443715335, -195.1001505683045, -126.06893249901168, -334.73378468565176, 1.7215695398962028, 90.16811925137658, 8.838048357616303, 235.89107242594974, -5039.317506176801, -12854.449904073024, -54.68207203566801, 16.466366066130064, 194.56148910219767, -178.60482810159132, -19.623921784714582, 280.94913584505906, -1.5717890966450236, -237.0055101040107, 111.5300409377398, 104.41952288209433, 681.7124523869073, -305.90130041186046, -2.8714316975090317, 69.4138628740605, -33.60995031652267, 266.49218664397665, 579.8702211581484, 2135.3025235253012, 8.03163696211519, -29.014796257884925, -38.92246515815726, 344.3547315379032, -174.04062693329323, 2355.7775140770423, 6.836262813376172, 186.60806943945704, 232.22183774919438, -164.65856809836032, -236.97954554636823, 216.24042361429622, -1.3001540036003285, -275.75675938722316, -59.842226667088426, -173.56588142324256, -1220.7230183961374, -755.2557634048036, 4.414236487452396, 44.7083687467714, 102.34750945871632, 201.1147638923229, -137.47106735480833, -609.8132633815617, -3.0383208347708504, -181.84084375901344, -179.0802111449686, 168.92952214164075, -286.6721982711978, 274.48954708766405, 1.609463064353929, 116.79944697066608, 38.66364438906099, 261.8950368179907, -995.9689623800707, -2189.513587426294, -8.394049971011519, -18.225910069480488, -237.33927610335735, -4.569854561701366, -18.97006829274077, -5.443807116257143, 1.2353061125887272, -148.51111327717587, -85.6699482557785, -56.98340517835345, -480.90411245234696, -180.89769240081023, 3.2503760925442453, -56.63017426787696, 0.8934022150186097, 440.2978783853789, -3705.6806944184714, 30993.702534088785, 70.31459029041146, 307.4704494170437, -76.51905031985007, -25.15463391936967, 1192.7199932927256, -107.99173345432268, 3.8706080537859093, -180.4214018292526, 170.45754698470523, 78.13668514425723, 331.95722408529355, -145.6178854098321, -1.8260352699134288, -90.96588768500098, -1.073434638527773, -247.55616291172566, -4147.875793000821, -10986.365584122017, 44.527232256096305, 234.09569201551886, 159.54993433945086, 186.2042510726197, -442.6069306412746, -348.5642202605556, -1.8932852465622934, -289.0701312297313, 151.83521709374983, 103.08988364060072, 602.9691459176144, -219.72365014853483, -2.07937315962404, -196.18151892813523, -115.43774576349406, -174.95124130832136, -479.7301936825464, -423.2406814856343, 2.443770753685519, -219.81204056661582, -174.58550424596527, 68.98961208661541, -357.0261086813842, 116.71682948982121, 1.6450440922025316, -263.84195527125513, -201.82417493122153, -162.24494518428085, -374.9467020522853, -228.11922769476308, 1.4268027495264686, -70.3272630914353, 318.96846933097254, -92.7749448335672, 71.56808575530972, 87.8607943317393, -0.9535268850881597, -21.421737137338603, -91.86362704107165, 158.49032333705813, -58.43048614406426, 491.12866443253586, 3.0951788963773295, -256.473289598079, 31.443523858871266, -10.136817229530351, 3228.003681510227, 98.56878612712846, -12.564255004414342, 188.0972474283361, -19.60409738065256, -158.95944012150798, 2561.577875115355, -2201.628297198728, 13.70591106658382, -213.98899355731947, 68.23643763447042, 100.4315590122705, 1046.410641199856, -500.64148977273237, -4.891979298170431, 158.54224698225386, -19.064941863051246, -57.051584416371256, 2187.8021028818775, -808.2966174645703, 13.825150419813152, 370.3895509482492, -93.24305942017581, -16.072007892188225, 1191.338783142298, -62.17516162640001, 3.208164785382069, 132.3872153877578, -270.6778454720469, 65.1239447550521, 148.96013110295453, 69.89277538002439, 1.0931225149449142, -78.94366788467833, -289.0847056438151, 184.68331869523942, -74.86698368106488, 188.207442858694, 1.0152455621507261, 256.7048371661249, 51.16726022532056, -42.81981220228632, -1534.900201930804, 270.82813061153416, -6.003539582270415, 177.0610682306513, 287.8650872894075, -110.68002164664517, -180.68230026717612, 117.56523113504315, -1.0472826580175314, -152.7703908872902, 78.18551836642544, -192.37263640739818, 647.3801446686442, 795.5368550661407, -4.16511081114393, -231.82908550994378, 282.9672616077278, -12.680790361042119, 255.36429002385842, 11.509816014811413, -1.0848891425905702, -101.73553128536645, -99.92714628079887, 119.01027838226865, -281.40642925601196, 339.3596692091477, 2.8300160665916514, 124.46384005071978, -53.39362546686475, 69.79163893567814, 667.0408984838672, 364.362916407012, 5.305462296616829, -118.47069984635148, 61.615204182649975, -43.2117988184376, 642.5344983531955, 226.4578995747644, -5.37244982516657, -32.689371809007966, -22.20638284623683, -226.43162463267333, -379.5217188249461, -2492.185166788483, 11.02100146318495, 118.0497263990701, -185.30244813613695, -95.41102767905731, 189.62754508773554, -153.12816234988807, 1.587448196838764, -10.632792266249119, -173.01463645425292, -80.31736361463915, -15.53422368096858, -135.0227136152635, 1.683172677567968, 16.261997632586937, 266.13744069857813, -126.31867986611876, -13.557418767922654, 144.42628028822855, -1.1420806292224055, -137.80631094274676, -213.84418216712868, 161.55211110136557, -181.7482660512374, 221.229553419524, 1.35909778183325, 72.49155356255902, 123.36756354133495, -166.13072559811678, -173.53280138573135, 416.48247697126607, -2.497320920124876, 145.22094340345512, 292.5363629390353, 43.51266687457732, -146.51755264933294, -43.553926498167044, -1.0317515361366905, 26.903904915945294, -286.75894712242206, 107.84008997846357, 32.251881426984305, 110.59291864963312, 1.0278588170491958, 135.4604481542542, -141.10263178061223, -272.1516353253892, 279.85174578571, -567.7321364756019, 2.076935095813796, 58.2940365976277, 215.8165491908385, 159.04094251046467, -80.46919238819723, -223.53056851207936, -1.41016455528687, 3.065032888090375, 32.902826527662484, -357.5597954206483, 5.60688255750149, 3764.7509197384866, -10.528624593030655, -208.9614052598544, 45.10550504280237, -220.7501365100197, 1663.0973548650193, 1721.3952134241188, -7.864757519232542, 96.04500216508177, 240.02934863323088, -262.5685945514125, -114.65204171336951, 332.805041504468, -1.2634192903913743, -104.90369153831757, 181.47617898777716, -129.2076281562002, 184.28774764594723, 218.32316799351221, -1.7021218178262716, -295.816380837906, 138.3025281015969, -99.36839290176195, 685.4116736951752, 222.19187093905484, -2.2972284319367264, 214.42418351445318, 278.8519360365744, -5.819349788447696, -227.71836342007285, 8.350291830153928, -1.079587820666068, -237.97862082739735, 52.608523821550214, 41.863086095330495, 1576.0793941238153, -291.0214357149698, -6.616013886902045, -38.18958006907329, -75.23962335892236, -67.10107952756995, -141.14272489393736, -248.85430142809994, 3.7277505427458553, -131.56231642345728, 5.648411549206468, -153.1223418411277, -82715.35368906886, -94506.28121530352, 621.9936808318877, 298.71047875647326, 172.01341388533663, 161.53461606271475, -520.5423352676108, -277.4830984170167, -1.7467190902667136, -245.28465959161798, 47.46673073608521, 29.939003008406257, 1837.4250540946946, -240.39845240762241, -7.482267615237579, 16.077530039389497, 65.31626285745094, 279.40883573679565, -87.0530616447526, -1367.9296390812106, -4.8985130716897345, 50.1798783538343, 364.78871480261637, -122.38125376768404, -36.96350350060198, 101.76880987139629, -0.8285698583256305, -85.69998157092358, -62.61097548243769, 34.1376421727072, -371.23753600011815, 153.12213894083956, 4.387216034061772, 126.11236327041932, -44.98034102499225, 180.55038037630712, 800.4312671739222, 1119.667363304138, 6.240603004002219, -5.478878455856403, 134.9755768874976, 98.87656558079438, 14.327179833868323, -226.80579371097397, -2.292784097685381, 5.019337817296584, 196.8936263726841, 224.49878618174273, -7.164423399973881, -348.68199126501685, -1.5535298723915694, -100.403181344023, -78.23084048810459, 77.724746772329, -351.686497179316, 280.02273417732994, 3.561786892911227, 107.06963608369631, 87.56676823170974, 285.68190775165687, -384.4917313721352, -1008.6035557534441, -3.542514950486864, -49.09081679940234, -276.83865205449956, 156.33122157238685, -46.983284645769025, 166.27147179817948, 1.0606514081681668, 139.8698995967492, 262.50099075007864, -82.07094063911194, -156.4789270894857, 95.93063761934208, -1.1513904043329597, 82.58973060629422, 112.66508955646572, -315.1357036544986, -214.75442234764515, 865.3800136282487, -2.739749889190479, -198.10448835432894, -21.96880004348985, -100.94544281170448, -2055.515599564838, -1025.8388198252135, 10.34407619191553, -361.8358615247095, -158.48620275565415, -145.12728486989045, -644.9720694118432, -253.3981497812095, 1.785890198831347, 80.01375018301391, 319.5204198751301, -129.77865435398348, -70.90757272299308, 123.48297181443216, -0.9463145937412503, -63.940207575607765, -255.63552845331316, 63.61702103147021, -69.03013708452663, 73.5609617845278, 1.1460646419063978, 69.79052100329308, -53.93806968600549, -324.599701014942, 350.52975344163224, -1687.7336194458233, 5.189669519413027, -60.81564156151781, 255.18226428389974, 55.28534237743764, 75.89907216787728, -66.78871881205029, -1.1963635538197481, -307.11247349717087, -201.85209774336312, -224.11304170531773, -436.2901590132549, -314.98869244949987, 1.422967222484606, 307.4889730721536, 212.21973442314396, 211.5285133738096, -433.6574964249298, -295.15273660135955, -1.413749017880974, -314.8932480413668, 55.410673311510706, 82.07860436995637, 2000.2413155031077, -539.3771451819529, -6.35395072600807, 202.56704551258437, -44.10196449418278, -66.26920715687366, 1312.6605126821944, -441.30584236316247, 6.482525514186166, 342.46995868509657, 81.56831525987245, 94.05282672686242, -1259.271312214328, -334.76530074183523, -3.6791610951492855, 389.466663627288, -78.18992019180595, 32.419916393541676, 1499.3225673143595, 111.06395492218014, 3.8378282189030455, 107.71984870918793, 82.14994978561332, 269.0015211663384, -412.9738361401896, -1014.5261694934396, -3.785143486315452, 157.52327261365147, -188.7908701914874, 9.296516656135143, 249.8646905203663, 12.327316277786574, 1.5626170930316798, 303.7060094431977, -132.6582620747572, 32.97640588172267, 684.8244067553393, 67.81638278924535, 2.2409828220145376, 137.73015007816042, -7.083682162931004, 127.57047666528737, 4204.0702915489965, 3822.6456804502877, 30.258020471766937, -204.4174170152079, 96.88457164341115, 57.8091553934238, 682.1870239756212, -198.3808129077407, -3.3266930581025416, 60.54118594214363, -101.83044710719993, -103.29726301917478, 172.33157846238987, -294.02098069594706, 2.831644735792644, 6.193479047652108, 16.43463328416534, -229.43091053878803, -98.3487581251097, 5725.356774552244, -24.949579473558675, -121.29676638181866, -360.07439928285856, 141.69869001194812, -94.43778642495145, 116.63420273451658, 0.8168996685281826, -223.36436005199417, 32.83575460246687, 150.29030022326768, 2596.224501670522, -1777.6760483346386, -11.673751537731777, 65.47098519211981, 152.06295342278892, 47.53322886498274, -129.03463853475026, -94.61504589694239, -2.015382824188461, -75.8451373737298, 375.5860382505655, -111.37612520158744, 65.78622299305282, 89.42467972137949, -0.8078540135709921, -125.39503690934966, -102.03319993200583, 324.2827596749147, -335.55545421289753, 900.6280679321817, 2.7678414360513672, -22.284510963254565, 138.41252198486745, 226.35894802531755, 49.117869278997645, -506.8177105195149, -2.2371218507616946, -301.1848179220171, -188.3364927741768, -131.510713578647, -456.452306657743, -195.98137816598287, 1.5214198215948112, -44.18594697677704, -82.68294225332603, 300.06187915597906, -138.0586756347308, 1024.4930565801492, 3.4099228284814806, -49.254066477607886, -215.51766358767193, -134.68545861503597, -64.79677603527242, -181.93198221889938, 1.3552733334344764, -33.801270971914576, -287.4655026596302, 81.60304928597404, -30.218346699486784, 83.76500455613059, 1.0227497389844724, -107.9969236847696, -13.172682359834477, 99.94570741895159, -1684.166757834995, 1589.2915402089413, 15.750136719048124, 43.210939974307365, 147.47485470252442, -137.45174117155156, -83.71428505635188, 287.23431160555526, -2.0839406988536338, -65.56733222955525, -252.95994831528986, 13.645091986840432, -72.17700993501322, 16.47619974092063, 1.1578250491807351, -139.76069077562855, -266.8638138261884, 95.96172335546177, -148.5086978309984, 106.44641741746837, 1.0950549269452896, 340.51382557237184, 107.08715949743318, 80.05417962255179, -951.8871254692883, -215.67711617636678, -2.8006755795446043, 209.05627790439988, -205.97570773844782, -155.17241716707971, 302.2415132513188, -225.82756943506047, 1.4380820483015253, -191.0091216229755, -165.63687209080504, -282.18600160070616, -331.9043226426924, -486.1574475882405, 1.7333773008658961, 146.59323408800492, 84.39799517458219, -113.29784267927424, -529.1011360019578, 419.5423995362336, -3.6608348136122197, -237.40293611935115, 57.335282584277586, 50.54216077453232, 1423.0628567128547, -315.3683607217525, -5.988649654961074, -187.23710467286148, 57.84833878067454, 61.68334870998467, 1097.3030669740408, -371.0137390599034, -5.856238228967833, -230.92809761739917, -194.30466029863442, 118.60400620744204, -337.3449288586416, 178.9527102163723, 1.4830871903152867, -76.58171430780816, -341.60132264812574, 190.19930305795384, -60.91129537684709, 164.47552950768122, 0.8616884536496996, 234.2910936998803, -76.8568203120425, 12.0296054136393, 896.5272892459019, 37.85567621485612, 3.809929950951908, -73.55649702004787, 162.90737931047306, -34.06797872187583, 144.00060507124257, 63.42895767163745, -1.8985309981575738, 151.90644749272596, -302.965648295814, 63.900281169152855, 152.81179246536115, 61.19503793529645, 0.9784841167498138, 221.75500159525905, 138.95060737238725, 167.59309652096317, -482.85361797133436, -360.96813594596057, -2.1796890965990405, -66.35037994851355, 158.4329147794841, -200.6754532268328, 136.87008573366077, 390.7757100081264, -1.9531490929564606, 209.55829232787949, 207.2842224083768, -62.38245940330246, -300.6130755896993, 93.56367675937274, -1.4561967182818156, 109.22134529346066, 236.14775976328573, 20.613883462819995, -136.68400259755688, -25.20301091140128, -1.2834242967102139, -155.09220270500745, 215.67447701432235, -155.2189658891298, 227.3548021247175, 219.81509210485373, -1.428973817481504, -16.893112970633712, -211.39083800912738, 120.62560040411738, -18.298933316545632, 167.12615898309284, 1.3838188420687707, -0.764872889209264, -120.8815330034893, 232.14665354783975, 6.6549562428215685, 553.7101584080162, 2.385198959544599, -73.40770932727229, -53.976023312196006, 71.02039718177245, -363.1676734019559, 361.00120793525974, 5.036755726923069, 140.72075522378924, 314.72431284266565, -14.706257175103268, -131.05266811186272, 15.301465063504285, -0.9585692031388444, 37.25321613095274, -242.48909807860184, -91.85986362005124, 47.786142169398765, -111.81246011776638, 1.2128611320469358, 117.78349726136871, -30.977819015560726, 139.94792557847347, 1049.4882041969092, 1220.8034606182148, 8.789707838151841, -112.18794096061426, -227.0157719103335, 189.60934395203265, -138.29443512759914, 244.74976470033897, 1.2840744963467636, 146.2989308348164, 318.7477913489981, 11.422186429668209, -134.80610017252138, -9.570069006497455, -0.9461498053065058, 177.88947308865946, 108.47486891080818, -80.20933220932555, -495.31217912147207, 230.42566521972674, -2.817100504715394, -92.86352979614388, -12.350054435014695, 122.69001789229131, -1523.9144802337096, 2054.7433429067123, 16.6356137440523, -36.45199040744687, -91.0878559805698, 123.0010342537164, -106.60565900328972, 384.0392396984136, 3.114123532935643, -11.052535160843583, -25.805153082451458, 301.1078443335845, -79.11495166749367, 2961.854189630379, 9.833690602010096, -45.88265394576343, -60.72054421433828, -230.50552402666798, -214.4350408239563, -1045.4757277370488, 4.543839206582993, -160.1880811148066, 102.1132358647208, 307.4697766534957, 495.87478141898697, -965.3115121382501, -3.1251124611324403, 52.52666339255677, 147.1078834585669, 140.9617665537515, -108.48582235592163, -293.22070832651707, -2.087174918455067, -139.2900280761503, 117.17334047359175, 159.27239402462476, 375.2796603075527, -432.46186903452167, -2.694291830442138, 242.2669738510959, -185.9906843285693, -132.31091083382248, 387.9926087343683, -214.4085879183523, 1.594472083764723, 192.49130982499787, 249.68363697669506, -113.14669565278605, -227.59128580659558, 138.75621983472539, -1.2080272812611748, -16.365099060158713, 195.18530321524946, 5.2802042726439735, 29.36711558111021, -8.518011580069636, -1.5697950912568495, -131.21225638144722, 268.4034709971366, -104.86619764546884, 154.39150733305166, 118.2138252256118, -1.1400717557541737, 52.1819195714061, 67.42855101485083, -165.5428557900884, -234.66015335066538, 781.0991615558016, -4.705347937798019, -32.745171422087296, -195.37469353070682, -35.90936349194006, -45.78840485060624, -53.174519932705095, 1.4930205462695958, 172.69129516881546, 193.21864381874676, 202.01304497669648, -269.6493736465709, -314.0722107710188, -1.566740132583988, -103.10100342094194, -28.07776381884655, 152.09806555911143, -896.2905107932751, 1352.687440889967, 8.840339657621552, -4.247402235493655, 205.2925404415548, 92.87589506402163, 8.836840285455331, -138.39188262675242, -1.4895240960246126, -36.22984799918423, 13.686573069632889, 236.10394920819834, 1169.2053417028653, -8062.629795104431, -34.10325469933826, 234.39300473510707, -162.1481671391007, 136.13188334239118, 433.7918984812579, 244.73828235133234, 1.8259626257564157, 306.42265769811274, 214.06371779385714, 100.09933191558397, -427.03899815105456, -136.4661592152628, -1.4016962127384751, 308.2372030303256, -93.83014450125116, -77.53533704058697, 976.0352121136758, -253.87864692165752, 3.1621814618479034, -325.1526854207685, 32.52653131969404, -114.36237742421396, 4063.3960459300315, 1386.917654003148, -12.443966524386605, 22.75745063912823, 1.6579347092909533, -129.3845021005878, 2503.195771597655, -15031.963277246448, 116.00290466045858, -28.510810651646533, 139.6528672373184, -304.4900793259985, 73.08311352614389, 674.9994452045663, -2.218763700948843, -246.25938770713483, -228.04703029948556, -173.78683247403828, -310.9606045003864, -217.78335761853285, 1.2692824052746097, 149.7108836794905, 151.317828783129, 25.75975609927029, -297.8456467274754, -49.123939756239324, -2.01152300590007, -324.27568567211927, -25.81807500350987, 6.534841192836657, -2824.1285338242146, 82.24410361202747, 8.720114864602534, 210.52876486929938, 284.77036380329304, -48.4197945474789, -218.39887901037594, 53.17561906587616, -1.057197777832537, 185.98637030944988, 154.6260226332373, 331.6079918102122, -366.8762738173684, -647.1847841946653, -1.9615629284627407, -42.23365829679538, -154.8081115952867, -205.08477692861536, -78.87460250942371, -382.9233475181713, 1.870662774544653, 105.63590494580839, 51.682372191398876, -349.58830844679096, -628.8580020769242, 2163.847830598708, -6.17328467940006, -118.11726683101338, 160.99867849128157, 308.212158802615, 226.21336437907502, -596.2817102006476, -1.9281226339452409, 97.25387683966837, 116.66812657511795, 70.57783763362983, -254.38417451239036, -183.86022014680688, -2.6376454820289075, 22.748500414352648, 35.31331078658848, 0.6897662625636489, -214.6544072903198, -4.678985355329385, -9.617408409193057, -37.58804828615286, 19.447887164947005, -325.75898519300546, 842.8150178385408, 6733.294089546101, -20.691712612952536, 291.10782901520696, -53.20959684697158, -49.668589372848416, 1608.5442554887297, -288.6344204914745, 5.522279898598592, 91.551105663039, -318.733770190507, 99.88081646625996, 89.43544226297882, 91.96126006389002, 0.9283488547702003, 150.20117810780377, -117.64537607252798, -58.57619841590842, 375.54898410631637, -148.91438525006515, 2.485398303247675, -48.345110625160274, 214.34921686340775, 46.969809958142235, 72.22772379935327, -67.73154471145327, -1.428940580759666, 189.62325221974535, 336.8958631418871, -81.98900373457558, -165.04359094335317, 74.75761748701353, -0.8933775785697179, -224.41823583196006, -111.8226016922879, -224.70682886137277, -564.9905956505714, -559.123998809207, 2.5107390777173455, -200.08593706786974, -244.59933046632008, 35.18214372687529, -233.8848613114508, 43.94530299832212, 1.1887314900615513, 92.3141659237413, 6.136604515068434, 30.861572218688927, -9982.998807470733, -3241.433959837259, -107.9195895513197, -216.29975555387819, 61.73825267835837, 154.12917459239654, 1180.9582471996262, -854.58384470342, -5.4761580345414025, 300.6922916429186, 75.90449713552042, 32.27461376423125, -1194.6858821350334, -117.81783414467101, -3.982074054467668, -80.1303356304353, 75.01958662262422, 93.73468215732792, 344.83541730237164, -406.0771204506972, -4.29953303231435, -150.34023796018974, -167.87010318054874, -285.51083880177316, -258.8184931312324, -487.64494590225456, 1.7161148300101543, -202.82172062431252, 234.66656966887882, 159.5272680220389, 268.2272474881066, -211.86851793690366, -1.3132386639426765, 305.62573267431515, 120.30639339374979, 108.81305283451101, -763.0155194509014, -265.29819961944514, -2.5009642897806588, -302.09304195043933, -218.8688135862864, -50.529528222096005, -394.8245047990368, -62.982631442761964, 1.316836938984909, -218.85779270335047, -122.65371409544741, -284.1607472787243, -506.2532251982922, -649.7608322742005, 2.3025306737199265, 83.88629520354807, 283.462097277854, -241.05668700964694, -83.5771770624171, 258.25737813160333, -1.0680775082079237, -42.64293374946823, -103.42335165051202, -2.4880389636014595, -114.13415085752177, -5.809643663794627, 2.757327508798265, 217.20788748824046, 123.99522452478564, 251.04763592746363, -533.2852700797139, -609.61932696257, -2.4473154147200247, 44.92237773681762, 234.95495168691627, 201.58410005559858, -56.74172126078975, -260.38397868013675, -1.2943174874996743, 191.203232740007, 26.49992325697094, -78.84844203873571, -2336.6577778551614, 989.8691999679025, -12.288355042656425, -88.16699798268135, -34.995920015649126, -218.20601517445752, -660.4731567644052, -1601.221923174842, 7.364999101009269, -115.02992320579958, -73.45152134064445, 153.0587791029776, -424.9138553835787, 580.6756422087968, 3.7686558257362037, -154.84982418811336, 126.4372578363258, -158.48391325747696, 393.1343245735875, 391.3835224519126, -2.491393556105712, -31.621667328029286, 216.15060505907425, -173.46176805613928, 50.698710009066, 245.13106142221255, -1.4155323400030237, -78.58249319669223, 12.897796366450812, -278.108678676131, 3279.9755759007403, 11202.87377391098, -40.38591686968666, -292.9452307816561, 286.7335761064503, 103.73497889440232, 317.0966322548721, -114.12105115386753, -1.073091689449003, -210.03550543421622, -258.4361432006343, -33.01278732154164, -233.2814442099235, -35.0644464377682, 1.126203446525064, -19.169472284491217, -114.51876268523891, 358.2568656254007, -36.529901941899254, 898.9974858051049, 2.5082667864262667, 320.06067314085425, -19.05346511106695, 53.5549121811362, 4886.698525092436, 772.3608104045211, 15.235902831362178, 112.76902169932032, 127.7195320175895, 350.0812282561703, -274.2615504289076, -837.4302693630934, -2.399102439916358, -83.37238140695173, -49.762464219905745, -266.93958453681284, -460.24957067973196, -1438.9774197425272, 5.405947773585864, -118.12652054807342, -97.48919873920705, -123.42196134617166, -341.1382394165441, -353.6852384632205, 2.8904888514312406, 275.2963665919354, 301.98678772380555, 22.133393395511654, -270.10050644710753, -19.552818986444528, -0.9938852786917182, 99.92925592506154, -157.85889175557418, -243.15573777874695, 184.94826608159502, -452.7949704518886, 1.8554223127235958, -8.043655979878366, -141.51694441891925, 138.32661858597277, -10.383029675732997, 283.24710821336697, 2.046687296067853, -212.24212387878484, -211.5466418269764, 106.70659271034879, -285.3956925792934, 148.5271209255128, 1.3676728586976254, -6.195647405579523, 270.81708706283393, -38.42809480653016, 11.070251104865173, 43.096450665206206, -1.123145419723889, 76.76782108622878, 111.93404987944447, 2.7330887575039586, -208.07310866845364, -5.648443224625955, -2.7591545745449735, -9.207356371578912, 38.81690046246936, 150.3411867642336, 72.86703385584107, -1314.3754441086905, -8.738185033891046, 188.62479218075052, -124.43121956203187, -276.6921706451856, 443.05654500446065, -657.2235694111757, 2.36100320950239, 275.17444128772064, 65.0091219377018, -26.811171647299968, -1283.142315017678, 137.01060476691407, -4.6811772118503585, -132.30537960555742, 47.277037661865506, -189.57100845957368, 978.1823757972546, 1369.4077419134842, -7.269333314291645, 166.2484585622525, 64.99200803852627, -176.8515973806965, -783.814864061993, 853.0654178524231, -4.783640732945346, -208.84208212146106, 153.47863287291358, 275.463775739896, 425.18289364069784, -566.2325662780097, -2.0418131664047614, -187.47053229900075, -129.28598545611112, -286.7785400914035, -413.9431145809001, -626.3020527194316, 2.1968395646484975, 379.72558404684617, 86.839487596671, 72.81057926696282, -1303.5606031819902, -238.58336393446058, -3.437040606218969, 60.5374355422547, 64.3760344231829, 205.19001988445368, -303.63160014502967, -1009.1081914091076, -4.931114140953819, 205.71729426772737, -148.01576476876556, -225.92194764897457, 409.58402415965355, -453.956265511713, 1.993215378323415, 290.1986857038882, -55.255792866834156, -129.49331254898414, 1540.929563009414, -702.5789787256609, 5.319317096829011, -162.57686847903324, -215.35715595453888, -156.0610634307434, -217.41152474829659, -208.3665799519153, 1.347757432565357, 25.31478737801536, 242.39688593352554, 114.95177423623474, -29.33333291533088, -144.0024447779371, -1.2552401214481863, 192.8965259093468, -236.30284671729248, -152.90812125589673, 243.7809017826764, -193.89895220974725, 1.2539925265474303, 81.19064215053537, -196.35271373737032, -120.47693068412875, 123.44251860770302, -181.3203842013483, 1.4960742502907398, 109.2996651030947, 221.29349076116864, -233.42615953749848, -143.25541935690777, 321.3509691041092, -1.3709904963544255, 116.11763781157262, -160.01976478765624, -202.4953530553351, 213.1148636474652, -373.0911834512536, 1.8331500911417884, 10.28061707284499, 6.112146913530975, 290.375531191783, -2162.6906248797363, -49050.34710961527, -168.98057735719863, 117.69132117805921, -198.12958791701433, -203.9667084566345, 175.7833314327112, -304.6694376119402, 1.4861200327060373, 87.03866304681445, -276.43881189056987, -10.190860725354016, 96.50469380012052, -11.718446518603495, 1.0684190041434412, 94.10861036905796, -160.16016203036025, -1.513805945344063, 175.65008050702227, -4.305865526524845, 1.828799201793264, -236.9293813188425, 119.49252851588508, -31.73330547340615, 636.670928019735, 79.00811084601169, -2.667804955138077, -203.99444414652675, -168.52154319892122, 153.1265950001909, -341.67427051632757, 263.9895265576226, 1.703785943238236, 195.85176078896876, 25.892605766618885, 139.63043914541652, -2471.3128988576777, -1731.7237873820613, -12.56008176360326, -284.96195978108744, 287.3340609627466, 19.9202625426004, 308.5790348763381, -24.047760761794777, -1.0704444177825676, -280.02743927716705, 213.8448905548876, 113.99997399604703, 408.90382990941214, -169.16405740285393, -1.4520883163596034, 46.63355580069706, -109.63776806144489, 272.3084093099481, 132.74938262911135, 716.0536604322904, 2.6337030889301962, 135.0150926121084, -41.51384289226989, -61.46970923195447, 909.6000055280914, -422.40755436715506, 6.739818578010325, -93.32381167160987, -28.345823798977513, -49.34754485388361, -821.6090888960259, -426.7127470833716, 8.796050868113708, -220.67282504999162, -39.21695966354013, 82.42895711174654, -1413.7369802360777, 543.7494441908246, 6.442752101818647, -107.86287072224815, 20.635958980748583, -252.26723327110193, 2231.733060187549, 5081.880716089588, -20.222884841634926, 215.73780745278444, 182.4347765605042, 1.3224740967064592, -353.52106174179085, 1.0016650173915507, -1.6559179038057814, -188.6843940682933, -176.56379382722952, -193.77673804173995, -306.9024256672869, -313.1847022855473, 1.6304623562104499, -94.76931473838451, 55.67592596131997, 147.52615932611886, 562.5530797603858, -886.7596031079629, -5.9768018793175335]
        )
        self.list_polys = List(
            [0, 12, 18, 6, 15790320, 128, 24, 30, 42, 36, 15790320, 128, 12, 36, 42, 18, 4253248, 128, 0, 24, 30, 6, 4210918, 128, 48, 60, 66, 54, 12853280, 128, 72, 78, 90, 84, 12853280, 128, 60, 84, 90, 66, 4253248, 128, 48, 72, 78, 54, 4210918, 128, 96, 108, 60, 48, 12853280, 255, 108, 132, 84, 60, 4253248, 255, 132, 120, 72, 84, 12853280, 255, 120, 96, 48, 72, 4210918, 255, 102, 114, 66, 54, 12853280, 255, 114, 138, 90, 66, 4253248, 255, 138, 126, 78, 90, 12853280, 255, 126, 102, 54, 78, 4210918, 255, 144, 156, 180, 168, 16776960, 128, 186, 174, 150, 162, 65535, 128]
        )
        self.list_polyOrd = List(
            [-5.058797503814708, 24, -4.895668059457755, 48, -3.7765562327960276, 72, -2.238223653323433, 96, -1.5754094115399973, 54, -1.185162414577317, 36, -0.6398954576295532, 12, -0.45629758487826977, 78, -0.0823246956595538, 6, 0.08232469565955391, 0, 0.45629758487826977, 66, 0.6398954576295534, 18, 1.185162414577317, 42, 1.5754094115399973, 90, 2.238223653323433, 102, 3.7765562327960276, 60, 4.895668059457755, 84, 5.058797503814708, 30]
        )
        self.list_beat = List(
            [24.488, 25.448, 26.418, 27.265, 27.719, 28.232, 28.716, 29.187, 29.662, 30.148, 30.587, 31.09, 31.568, 32.075, 32.547, 33.028, 33.48, 33.981, 34.462, 34.934, 35.415, 35.911, 36.37, 36.858, 37.322, 37.811, 38.28, 42.736, 43.118, 43.587, 44.07, 44.556, 45.004, 45.527, 45.97, 46.419, 46.92, 47.429, 47.908, 48.378, 48.881, 49.36, 49.806, 50.285, 50.77, 51.29, 51.749, 52.205, 52.707, 53.179, 53.644, 54.13, 54.564, 55.074, 55.556, 56.045, 56.543, 57.021, 57.499, 57.975, 58.38, 58.905, 59.39, 59.868, 60.353, 60.852, 61.303, 61.821, 62.284, 62.777, 63.226, 63.706, 64.223, 64.681, 65.164, 65.617, 66.101, 66.579, 67.066, 67.571, 68.047, 68.513, 69, 69.485, 69.938, 70.41, 70.933, 71.427, 71.932, 72.361, 72.862, 73.327, 73.805, 74.278, 74.74, 75.241, 75.721, 76.24, 76.733, 77.19, 77.676, 78.153, 78.619, 79.089, 79.574, 80.053, 80.572, 81.037, 81.505, 81.977, 82.454, 82.911, 83.408, 83.913, 84.385, 84.862, 85.353, 85.826, 86.285, 86.804, 87.259, 87.733, 88.204, 88.686, 89.156, 89.663, 90.121, 90.624, 91.08, 91.604, 92.082, 92.559, 92.996, 93.508, 93.983, 94.466, 94.958, 95.472, 95.917, 96.355, 96.807, 97.332, 97.816, 98.335, 98.764, 99.236, 99.749, 100.21, 100.689, 101.184, 101.632, 102.106, 102.619, 103.122, 103.571, 104.054, 104.5, 104.996, 105.506, 105.979, 106.482, 106.937, 107.404, 107.873, 108.376, 108.84, 109.334, 109.822, 110.316, 110.779, 111.273, 111.752, 112.261, 112.704, 113.178, 113.681, 114.147, 114.628, 115.103, 115.588, 116.03, 116.545, 117.005, 117.497, 117.982, 118.446, 118.929]
        )
 
        self.sprite.layer = 1
 
    @warp
    async def my_Create(self, util, ):
        self.list_points.delete_all()
        self.list_polys.delete_all()
        await self.my_AddCube(util, 0.5, 0.5)
        await self.my_AddPolycolorpoffset(util, 0, 2, 3, 1, 240, 240, 240, 128, self.var_pOrd)
        await self.my_AddPolycolorpoffset(util, 4, 5, 7, 6, 240, 240, 240, 128, self.var_pOrd)
        await self.my_AddPolycolorpoffset(util, 2, 6, 7, 3, 64, 230, 64, 128, self.var_pOrd)
        await self.my_AddPolycolorpoffset(util, 0, 4, 5, 1, 64, 64, 230, 128, self.var_pOrd)
        await self.my_AddCube(util, 1.4, 0.25)
        await self.my_AddPolycolorpoffset(util, 0, 2, 3, 1, 196, 32, 32, 128, self.var_pOrd)
        await self.my_AddPolycolorpoffset(util, 4, 5, 7, 6, 196, 32, 32, 128, self.var_pOrd)
        await self.my_AddPolycolorpoffset(util, 2, 6, 7, 3, 64, 230, 64, 128, self.var_pOrd)
        await self.my_AddPolycolorpoffset(util, 0, 4, 5, 1, 64, 64, 230, 128, self.var_pOrd)
        await self.my_AddCube(util, 1, 0.5)
        await self.my_AddPolycolorpoffset(util, 0, 2, -6, -8, 196, 32, 32, 255, self.var_pOrd)
        await self.my_AddPolycolorpoffset(util, 2, 6, -2, -6, 64, 230, 64, 255, self.var_pOrd)
        await self.my_AddPolycolorpoffset(util, 6, 4, -4, -2, 196, 32, 32, 255, self.var_pOrd)
        await self.my_AddPolycolorpoffset(util, 4, 0, -8, -4, 64, 64, 230, 255, self.var_pOrd)
        await self.my_AddPolycolorpoffset(util, 1, 3, -5, -7, 196, 32, 32, 255, self.var_pOrd)
        await self.my_AddPolycolorpoffset(util, 3, 7, -1, -5, 64, 230, 64, 255, self.var_pOrd)
        await self.my_AddPolycolorpoffset(util, 7, 5, -3, -1, 196, 32, 32, 255, self.var_pOrd)
        await self.my_AddPolycolorpoffset(util, 5, 1, -7, -3, 64, 64, 230, 255, self.var_pOrd)
        await self.my_AddCube(util, 0.8, 1.5)
        await self.my_AddPolycolorpoffset(util, 0, 2, 6, 4, 255, 255, 0, 128, self.var_pOrd)
        await self.my_AddPolycolorpoffset(util, 7, 5, 1, 3, 0, 255, 255, 128, self.var_pOrd)
 
    async def my_pause(self, util, ):
        if util.inputs["p"]:
            while not not util.inputs["p"]:
                await self.yield_()
            while not util.inputs["p"]:
                await self.yield_()
            while not not util.inputs["p"]:
                await self.yield_()
 
    async def my_fill4crossingsres(self, util, arg_c1, arg_c2, arg_c3, arg_c4, arg_res):
        if lt(arg_c3, arg_c1):
            await self.my_fill4crossingsres(util, arg_c3, arg_c2, arg_c1, arg_c4, arg_res)
        else:
            if lt(arg_c4, arg_c1):
                await self.my_fill4crossingsres(util, arg_c4, arg_c2, arg_c3, arg_c1, arg_res)
            else:
                if lt(arg_c3, arg_c2):
                    await self.my_fill4crossingsres(util, arg_c1, arg_c3, arg_c2, arg_c4, arg_res)
                else:
                    if lt(arg_c4, arg_c2):
                        await self.my_fill4crossingsres(util, arg_c1, arg_c4, arg_c3, arg_c2, arg_res)
                    else:
                        self.pen.set_size(1)
                        self.xpos = tonum(arg_c1)
                        self.pen.down()
                        self.pen.set_size(tonum(arg_res))
                        self.xpos = tonum(arg_c2)
                        self.pen.up()
                        self.pen.set_size(1)
                        self.xpos = tonum(arg_c3)
                        self.pen.down()
                        self.pen.set_size(tonum(arg_res))
                        self.xpos = tonum(arg_c4)
                        self.pen.up()
 
    @warp
    async def my_AddCube(self, util, arg_size, arg_size2):
        self.var_xmin = (0 - arg_size)
        self.var_ymin = (0 - arg_size2)
        self.var_pOrd = len(self.list_points)
        await self.my_AddPoint(util, self.var_ymin, self.var_xmin, self.var_xmin)
        await self.my_AddPoint(util, arg_size2, self.var_xmin, self.var_xmin)
        await self.my_AddPoint(util, self.var_ymin, arg_size, self.var_xmin)
        await self.my_AddPoint(util, arg_size2, arg_size, self.var_xmin)
        await self.my_AddPoint(util, self.var_ymin, self.var_xmin, arg_size)
        await self.my_AddPoint(util, arg_size2, self.var_xmin, arg_size)
        await self.my_AddPoint(util, self.var_ymin, arg_size, arg_size)
        await self.my_AddPoint(util, arg_size2, arg_size, arg_size)
 
    @warp
    async def my_AddPoint(self, util, arg_x, arg_y, arg_z):
        self.list_points.append(arg_x)
        self.list_points.append(arg_y)
        self.list_points.append(arg_z)
        self.list_points.append(0)
        self.list_points.append(0)
        self.list_points.append(0)
 
    @warp
    async def my_CreateStars(self, util, ):
        self.var_starIdx = len(self.list_points)
        self.var_xmax = 300
        self.var_xmin = (0 - self.var_xmax)
        for _ in range(self.var_Stars):
            await self.my_AddPoint(util, pick_rand(self.var_xmin, self.var_xmax), pick_rand(self.var_xmin, self.var_xmax), pick_rand(self.var_xmin, self.var_xmax))
 
    async def my_fill4crossingsres(self, util, arg_c1, arg_c2, arg_c3, arg_c4, arg_res):
        if lt(arg_c3, arg_c1):
            await self.my_fill4crossingsres(util, arg_c3, arg_c2, arg_c1, arg_c4, arg_res)
        else:
            if lt(arg_c4, arg_c1):
                await self.my_fill4crossingsres(util, arg_c4, arg_c2, arg_c3, arg_c1, arg_res)
            else:
                if lt(arg_c3, arg_c2):
                    await self.my_fill4crossingsres(util, arg_c1, arg_c3, arg_c2, arg_c4, arg_res)
                else:
                    if lt(arg_c4, arg_c2):
                        await self.my_fill4crossingsres(util, arg_c1, arg_c4, arg_c3, arg_c2, arg_res)
                    else:
                        self.pen.set_size(1)
                        self.xpos = tonum(arg_c1)
                        self.pen.down()
                        self.pen.set_size(tonum(arg_res))
                        self.xpos = tonum(arg_c2)
                        self.pen.up()
                        self.pen.set_size(1)
                        self.xpos = tonum(arg_c3)
                        self.pen.down()
                        self.pen.set_size(tonum(arg_res))
                        self.xpos = tonum(arg_c4)
                        self.pen.up()
 
    @warp
    async def my_rasterquadfillresolution(self, util, arg_x1, arg_y1, arg_x2, arg_y2, arg_x3, arg_y3, arg_x4, arg_y4, arg_res):
        if lt(arg_y2, arg_y1):
            await self.my_rasterquadfillresolution(util, arg_x2, arg_y2, arg_x3, arg_y3, arg_x4, arg_y4, arg_x1, arg_y1, arg_res)
        else:
            if lt(arg_y3, arg_y1):
                await self.my_rasterquadfillresolution(util, arg_x3, arg_y3, arg_x4, arg_y4, arg_x1, arg_y1, arg_x2, arg_y2, arg_res)
            else:
                if lt(arg_y4, arg_y1):
                    await self.my_rasterquadfillresolution(util, arg_x4, arg_y4, arg_x1, arg_y1, arg_x2, arg_y2, arg_x3, arg_y3, arg_res)
                else:
                    if lt(arg_y4, arg_y2):
                        await self.my_rasterquadfillinnerresolutionextras(util, arg_x1, arg_y1, arg_x4, arg_y4, arg_x3, arg_y3, arg_x2, arg_y2, arg_res, div((tonum(arg_x1) - tonum(arg_x4)), (tonum(arg_y1) - tonum(arg_y4))), div((tonum(arg_x3) - tonum(arg_x4)), (tonum(arg_y3) - tonum(arg_y4))), div((tonum(arg_x3) - tonum(arg_x2)), (tonum(arg_y3) - tonum(arg_y2))), div((tonum(arg_x1) - tonum(arg_x2)), (tonum(arg_y1) - tonum(arg_y2))))
                    else:
                        await self.my_rasterquadfillinnerresolutionextras(util, arg_x1, arg_y1, arg_x2, arg_y2, arg_x3, arg_y3, arg_x4, arg_y4, arg_res, div((tonum(arg_x1) - tonum(arg_x2)), (tonum(arg_y1) - tonum(arg_y2))), div((tonum(arg_x3) - tonum(arg_x2)), (tonum(arg_y3) - tonum(arg_y2))), div((tonum(arg_x3) - tonum(arg_x4)), (tonum(arg_y3) - tonum(arg_y4))), div((tonum(arg_x1) - tonum(arg_x4)), (tonum(arg_y1) - tonum(arg_y4))))
 
    @warp
    async def my_AddPolycolorpoffset(self, util, arg_p1, arg_p2, arg_p3, arg_p4, arg_r, arg_g, arg_b, arg_a, arg_off):
        self.list_polys.append(((arg_p1 * self.var_p) + tonum(arg_off)))
        self.list_polys.append(((arg_p2 * self.var_p) + tonum(arg_off)))
        self.list_polys.append(((arg_p3 * self.var_p) + tonum(arg_off)))
        self.list_polys.append(((arg_p4 * self.var_p) + tonum(arg_off)))
        self.list_polys.append(((arg_r * 65536) + ((arg_g * 256) + arg_b)))
        self.list_polys.append(arg_a)
 
    async def my_rasterquadfillinnerresolutionextras(self, util, arg_x1, arg_y1, arg_x2, arg_y2, arg_x3, arg_y3, arg_x4, arg_y4, arg_res, arg_x21y21, arg_x32y32, arg_x43y43, arg_x14y14):
        self.ypos = (math.ceil((tonum(arg_y1) + div(arg_res, 2))) + 0.5)
        if lt(arg_y2, arg_y3):
            for _ in range(math.ceil(div((tonum(arg_y2) - self.ypos), arg_res))):
                self.pen.set_size(1)
                self.xpos = (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x21y21))
                self.pen.down()
                self.pen.set_size(tonum(arg_res))
                self.xpos = (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x14y14))
                self.pen.up()
                self.ypos += tonum(arg_res)
 
                await self.yield_()
            if lt(arg_y3, arg_y4):
                for _ in range(math.ceil(div((tonum(arg_y3) - self.ypos), arg_res))):
                    await self.my_filllinescrossingsres(util, arg_y1, arg_y2, arg_y3, arg_y4, (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x21y21)), (tonum(arg_x2) + ((self.ypos - tonum(arg_y2)) * arg_x32y32)), (tonum(arg_x3) + ((self.ypos - tonum(arg_y3)) * arg_x43y43)), (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x14y14)), arg_res)
                    self.ypos += tonum(arg_res)
 
                    await self.yield_()
                for _ in range(math.ceil(div((tonum(arg_y4) - self.ypos), arg_res))):
                    self.pen.set_size(1)
                    self.xpos = (tonum(arg_x3) + ((self.ypos - tonum(arg_y3)) * arg_x43y43))
                    self.pen.down()
                    self.pen.set_size(tonum(arg_res))
                    self.xpos = (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x14y14))
                    self.pen.up()
                    self.ypos += tonum(arg_res)
 
                    await self.yield_()
            else:
                for _ in range(math.ceil(div((tonum(arg_y4) - self.ypos), arg_res))):
                    await self.my_filllinescrossingsres(util, arg_y1, arg_y2, arg_y3, arg_y4, (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x21y21)), (tonum(arg_x2) + ((self.ypos - tonum(arg_y2)) * arg_x32y32)), (tonum(arg_x3) + ((self.ypos - tonum(arg_y3)) * arg_x43y43)), (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x14y14)), arg_res)
                    self.ypos += tonum(arg_res)
 
                    await self.yield_()
                for _ in range(math.ceil(div((tonum(arg_y3) - self.ypos), arg_res))):
                    self.pen.set_size(1)
                    self.xpos = (tonum(arg_x3) + ((self.ypos - tonum(arg_y3)) * arg_x43y43))
                    self.pen.down()
                    self.pen.set_size(tonum(arg_res))
                    self.xpos = (tonum(arg_x3) + ((self.ypos - tonum(arg_y3)) * arg_x32y32))
                    self.pen.up()
                    self.ypos += tonum(arg_res)
 
                    await self.yield_()
        else:
            for _ in range(math.ceil(div((tonum(arg_y3) - self.ypos), arg_res))):
                self.pen.set_size(1)
                self.xpos = (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x21y21))
                self.pen.down()
                self.pen.set_size(tonum(arg_res))
                self.xpos = (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x14y14))
                self.pen.up()
                self.ypos += tonum(arg_res)
 
                await self.yield_()
            for _ in range(math.ceil(div((tonum(arg_y2) - self.ypos), arg_res))):
                await self.my_filllinescrossingsres(util, arg_y1, arg_y2, arg_y3, arg_y4, (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x21y21)), (tonum(arg_x2) + ((self.ypos - tonum(arg_y2)) * arg_x32y32)), (tonum(arg_x3) + ((self.ypos - tonum(arg_y3)) * arg_x43y43)), (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x14y14)), arg_res)
                self.ypos += tonum(arg_res)
 
                await self.yield_()
            for _ in range(math.ceil(div((tonum(arg_y4) - self.ypos), arg_res))):
                self.pen.set_size(1)
                self.xpos = (tonum(arg_x3) + ((self.ypos - tonum(arg_y3)) * arg_x43y43))
                self.pen.down()
                self.pen.set_size(tonum(arg_res))
                self.xpos = (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x14y14))
                self.pen.up()
                self.ypos += tonum(arg_res)
 
                await self.yield_()
 
    async def my_filllinescrossingsres(self, util, arg_y1, arg_y2, arg_y3, arg_y4, arg_c12, arg_c23, arg_c34, arg_c41, arg_res):
        if gt(self.ypos, arg_y2):
            self.pen.set_size(1)
            self.xpos = arg_c41
            self.pen.down()
            self.pen.set_size(tonum(arg_res))
            self.xpos = arg_c23
            self.pen.up()
        else:
            if lt(self.ypos, arg_y3):
                self.pen.set_size(1)
                self.xpos = arg_c41
                self.pen.down()
                self.pen.set_size(tonum(arg_res))
                self.xpos = arg_c12
                self.pen.up()
            else:
                if lt(arg_c23, arg_c12):
                    await self.my_fill4crossingsres(util, arg_c23, arg_c12, arg_c34, arg_c41, arg_res)
                else:
                    await self.my_fill4crossingsres(util, arg_c12, arg_c23, arg_c34, arg_c41, arg_res)
 
    @on_pressed('t')
    async def key_t_pressed(self, util):
        pass
 
    @on_pressed('y')
    async def key_y_pressed(self, util):
        pass
 
    @warp
    async def my_ProcessPoints(self, util, arg_rot1, arg_rot2, arg_from, arg_to, arg_mul):
        await self.my_ProcessPointssincos(util, math.sin(math.radians(arg_rot1)), math.cos(math.radians(arg_rot1)), math.sin(math.radians(arg_rot2)), math.cos(math.radians(arg_rot2)), arg_from, arg_to, arg_mul)
 
    @warp
    async def my_orderpolys(self, util, ):
        self.var_lastquad = 0
        self.list_polyOrd.delete_all()
        for _ in range(toint(div(len(self.list_polys), 6))):
            self.var_incx = self.list_points[toint((tonum(self.list_polys[toint((tonum(self.var_lastquad) + 1))]) + 2))]
            self.var_incx = tonum(self.var_incx) + tonum(self.list_points[toint((tonum(self.list_polys[toint((tonum(self.var_lastquad) + 2))]) + 2))])
            self.var_incx = tonum(self.var_incx) + tonum(self.list_points[toint((tonum(self.list_polys[toint((tonum(self.var_lastquad) + 3))]) + 2))])
            self.var_incx = tonum(self.var_incx) + tonum(self.list_points[toint((tonum(self.list_polys[toint((tonum(self.var_lastquad) + 4))]) + 2))])
            self.var_incy = 1
            while not (gt(self.var_incy, len(self.list_polyOrd)) or gt(self.list_polyOrd[toint(self.var_incy)], self.var_incx)):
                self.var_incy = tonum(self.var_incy) + 2
            self.list_polyOrd.insert(toint(self.var_incy), self.var_incx)
            self.list_polyOrd.insert(toint((tonum(self.var_incy) + 1)), self.var_lastquad)
            self.var_lastquad = tonum(self.var_lastquad) + self.var_ply
 
    @warp
    async def my_renderatresolution(self, util, arg_res):
        self.pen.clear_all()
        self.var_pOrd = self.var_starIdx
        self.pen.exact_color("#ffffff")
        for _ in range(toint(div((len(self.list_points) - self.var_starIdx), self.var_p))):
            self.var_ymin = (tonum(self.list_points[toint((tonum(self.var_pOrd) + 6))]) * 3)
            if (gt(self.var_ymin, 0.01) and lt(self.var_ymin, 45)):
                self.var_incx = self.list_points[toint((tonum(self.var_pOrd) + 4))]
                self.var_incy = self.list_points[toint((tonum(self.var_pOrd) + 5))]
                if (lt(abs(tonum(self.var_incx)), 280) and lt(abs(tonum(self.var_incy)), 240)):
                    self.gotoxy(tonum(self.var_incx), tonum(self.var_incy))
                    if gt(self.var_ymin, 1):
                        self.pen.exact_color(((70 * 16777216) + 14737663))
                        self.pen.set_size(((tonum(self.var_ymin) * 2) - 2))
                        self.pen.down()
                        self.pen.up()
                        self.pen.exact_color("#ffffff")
                    self.pen.set_size(tonum(self.var_ymin))
                    self.pen.down()
                    self.pen.up()
            self.var_pOrd = tonum(self.var_pOrd) + self.var_p
        self.var_pOrd = 2
        for _ in range(toint(div(len(self.list_polyOrd), 2))):
            self.var_lastquad = self.list_polyOrd[toint(self.var_pOrd)]
            self.var_incx = self.list_polys[toint((tonum(self.var_lastquad) + 1))]
            self.var_incy = self.list_polys[toint((tonum(self.var_lastquad) + 2))]
            self.var_ymin = self.list_polys[toint((tonum(self.var_lastquad) + 3))]
            self.var_ymax = self.list_polys[toint((tonum(self.var_lastquad) + 4))]
            if lt(self.list_polys[toint((tonum(self.var_lastquad) + 6))], 255):
                self.pen.exact_color(((tonum(self.list_polys[toint((tonum(self.var_lastquad) + 6))]) * 16777216) + tonum(self.list_polys[toint((tonum(self.var_lastquad) + 5))])))
                await self.my_fillquadresolution(util, self.list_points[toint((tonum(self.var_incx) + 4))], self.list_points[toint((tonum(self.var_incx) + 5))], self.list_points[toint((tonum(self.var_incy) + 4))], self.list_points[toint((tonum(self.var_incy) + 5))], self.list_points[toint((tonum(self.var_ymin) + 4))], self.list_points[toint((tonum(self.var_ymin) + 5))], self.list_points[toint((tonum(self.var_ymax) + 4))], self.list_points[toint((tonum(self.var_ymax) + 5))], arg_res)
            else:
                self.pen.exact_color(self.list_polys[toint((tonum(self.var_lastquad) + 5))])
                await self.my_fillquadtrires(util, self.list_points[toint((tonum(self.var_incx) + 4))], self.list_points[toint((tonum(self.var_incx) + 5))], self.list_points[toint((tonum(self.var_incy) + 4))], self.list_points[toint((tonum(self.var_incy) + 5))], self.list_points[toint((tonum(self.var_ymin) + 4))], self.list_points[toint((tonum(self.var_ymin) + 5))], self.list_points[toint((tonum(self.var_ymax) + 4))], self.list_points[toint((tonum(self.var_ymax) + 5))], arg_res)
            self.var_pOrd = tonum(self.var_pOrd) + 2
 
    @on_pressed('space')
    async def key_space_pressed(self, util):
        if eq(self.var_speedTarget, 0.6):
            self.var_speedTarget = 0.05
        else:
            self.var_speedTarget = 0.6
 
    @warp
    async def my_ProcessPointssincos(self, util, arg_s, arg_c, arg_s2, arg_c2, arg_from, arg_len, arg_mul):
        self.var_pos = (tonum(arg_from) * self.var_p)
        self.var_xcnt = util.sprites.stage.var_Zoom
        for _ in range(toint(arg_len)):
            self.var_incx = self.list_points[toint((self.var_pos + 1))]
            self.var_incy = self.list_points[toint((self.var_pos + 3))]
            self.var_pOrd = self.list_points[toint((self.var_pos + 2))]
            if (gt(arg_from, 31) and gt(util.timer(), 42.2)):
                self.var_incx = (((tonum(self.var_incx) + self.var_svx) % 600) - 300)
                self.var_incy = (((tonum(self.var_incy) + self.var_svy) % 600) - 300)
                self.var_pOrd = (((tonum(self.var_pOrd) + self.var_svz) % 600) - 300)
            self.var_xcnt = div(util.sprites.stage.var_Zoom, (self.var_distance - tonum(self.var_pOrd)))
            self.list_points[toint((self.var_pos + 4))] = ((tonum(self.var_incx) * tonum(arg_mul)) * self.var_xcnt)
            self.list_points[toint((self.var_pos + 5))] = ((tonum(self.var_incy) * tonum(arg_mul)) * self.var_xcnt)
            self.list_points[toint((self.var_pos + 6))] = self.var_xcnt
            self.var_xmin = ((arg_c * tonum(self.var_incx)) - (arg_s * tonum(self.var_pOrd)))
            self.var_xcnt = ((arg_c * tonum(self.var_pOrd)) + (arg_s * tonum(self.var_incx)))
            self.list_points[toint((self.var_pos + 1))] = ((arg_c2 * self.var_xmin) - (arg_s2 * tonum(self.var_incy)))
            self.list_points[toint((self.var_pos + 2))] = self.var_xcnt
            self.list_points[toint((self.var_pos + 3))] = ((arg_c2 * tonum(self.var_incy)) + (arg_s2 * self.var_xmin))
            self.var_pos += self.var_p
 
    @warp
    async def my_filltriangleresolution(self, util, arg_Ax, arg_Ay, arg_Bx, arg_By, arg_Cx, arg_Cy, arg_res):
        await self.my_filltriinner1(util, arg_Ax, arg_Ay, arg_Bx, arg_By, arg_Cx, arg_Cy, sqrt((((tonum(arg_Bx) - tonum(arg_Cx)) * (tonum(arg_Bx) - tonum(arg_Cx))) + ((tonum(arg_By) - tonum(arg_Cy)) * (tonum(arg_By) - tonum(arg_Cy))))), sqrt((((tonum(arg_Ax) - tonum(arg_Cx)) * (tonum(arg_Ax) - tonum(arg_Cx))) + ((tonum(arg_Ay) - tonum(arg_Cy)) * (tonum(arg_Ay) - tonum(arg_Cy))))), sqrt((((tonum(arg_Ax) - tonum(arg_Bx)) * (tonum(arg_Ax) - tonum(arg_Bx))) + ((tonum(arg_Ay) - tonum(arg_By)) * (tonum(arg_Ay) - tonum(arg_By))))), (tonum(arg_res) * 1.4))
        self.pen.set_size(tonum(arg_res))
        self.gotoxy(tonum(arg_Ax), tonum(arg_Ay))
        self.pen.down()
        self.gotoxy(tonum(arg_Bx), tonum(arg_By))
        self.gotoxy(tonum(arg_Cx), tonum(arg_Cy))
        self.gotoxy(tonum(arg_Ax), tonum(arg_Ay))
        self.pen.up()
 
    async def my_filltriinner1(self, util, arg_Ax, arg_Ay, arg_Bx, arg_By, arg_Cx, arg_Cy, arg_lena, arg_lenb, arg_lenc, arg_res14):
        self.var_peri = ((arg_lena + arg_lenb) + arg_lenc)
        self.var_ind = (sqrt(div(((((arg_lenb + arg_lenc) - arg_lena) * ((arg_lenc + arg_lena) - arg_lenb)) * ((arg_lena + arg_lenb) - arg_lenc)), self.var_peri)) + div(arg_res14, 1.5))
        if gt(self.var_ind, arg_res14):
            self.var_incx = div((((arg_lena * tonum(arg_Ax)) + (arg_lenb * tonum(arg_Bx))) + (arg_lenc * tonum(arg_Cx))), self.var_peri)
            self.var_incy = div((((arg_lena * tonum(arg_Ay)) + (arg_lenb * tonum(arg_By))) + (arg_lenc * tonum(arg_Cy))), self.var_peri)
            if (lt(arg_lena, arg_lenb) and lt(arg_lena, arg_lenc)):
                await self.my_filltriinner2(util, arg_Ax, arg_Ay, arg_Bx, arg_By, arg_Cx, arg_Cy, (tonum(self.var_incx) - tonum(arg_Ax)), (tonum(self.var_incy) - tonum(arg_Ay)), (tonum(self.var_incx) - tonum(arg_Bx)), (tonum(self.var_incy) - tonum(arg_By)), (tonum(self.var_incx) - tonum(arg_Cx)), (tonum(self.var_incy) - tonum(arg_Cy)), self.var_ind, (-0.5 - div(self.var_ind, (sqrt((((tonum(self.var_incx) - tonum(arg_Ax)) * (tonum(self.var_incx) - tonum(arg_Ax))) + ((tonum(self.var_incy) - tonum(arg_Ay)) * (tonum(self.var_incy) - tonum(arg_Ay))))) * 4))), arg_res14)
            else:
                if (gt(arg_lenb, arg_lena) or gt(arg_lenb, arg_lenc)):
                    await self.my_filltriinner2(util, arg_Cx, arg_Cy, arg_Bx, arg_By, arg_Ax, arg_Ay, (tonum(self.var_incx) - tonum(arg_Cx)), (tonum(self.var_incy) - tonum(arg_Cy)), (tonum(self.var_incx) - tonum(arg_Bx)), (tonum(self.var_incy) - tonum(arg_By)), (tonum(self.var_incx) - tonum(arg_Ax)), (tonum(self.var_incy) - tonum(arg_Ay)), self.var_ind, (-0.5 - div(self.var_ind, (sqrt((((tonum(self.var_incx) - tonum(arg_Cx)) * (tonum(self.var_incx) - tonum(arg_Cx))) + ((tonum(self.var_incy) - tonum(arg_Cy)) * (tonum(self.var_incy) - tonum(arg_Cy))))) * 4))), arg_res14)
                else:
                    await self.my_filltriinner2(util, arg_Bx, arg_By, arg_Ax, arg_Ay, arg_Cx, arg_Cy, (tonum(self.var_incx) - tonum(arg_Bx)), (tonum(self.var_incy) - tonum(arg_By)), (tonum(self.var_incx) - tonum(arg_Ax)), (tonum(self.var_incy) - tonum(arg_Ay)), (tonum(self.var_incx) - tonum(arg_Cx)), (tonum(self.var_incy) - tonum(arg_Cy)), self.var_ind, (-0.5 - div(self.var_ind, (sqrt((((tonum(self.var_incx) - tonum(arg_Bx)) * (tonum(self.var_incx) - tonum(arg_Bx))) + ((tonum(self.var_incy) - tonum(arg_By)) * (tonum(self.var_incy) - tonum(arg_By))))) * 4))), arg_res14)
 
    async def my_filltriinner2(self, util, arg_Ax, arg_Ay, arg_Bx, arg_By, arg_Cx, arg_Cy, arg_Aox, arg_Aoy, arg_Box, arg_Boy, arg_Cox, arg_Coy, arg_ind, arg_rate, arg_res14):
        self.gotoxy(toint(self.var_incx), toint(self.var_incy))
        self.pen.set_size(arg_ind)
        self.pen.down()
        self.pen.up()
        self.var_td = (arg_rate + 1)
        while not lt((arg_ind * self.var_td), arg_res14):
            self.pen.set_size((arg_ind * self.var_td))
            self.gotoxy(((arg_Aox * self.var_td) + tonum(arg_Ax)), ((arg_Aoy * self.var_td) + tonum(arg_Ay)))
            self.pen.down()
            self.gotoxy(((arg_Box * self.var_td) + tonum(arg_Bx)), ((arg_Boy * self.var_td) + tonum(arg_By)))
            self.gotoxy(((arg_Cox * self.var_td) + tonum(arg_Cx)), ((arg_Coy * self.var_td) + tonum(arg_Cy)))
            self.gotoxy(((arg_Aox * self.var_td) + tonum(arg_Ax)), ((arg_Aoy * self.var_td) + tonum(arg_Ay)))
            self.pen.up()
            self.var_td += (self.var_td * arg_rate)
 
            await self.yield_()
        self.pen.set_size((arg_ind * self.var_td))
        self.gotoxy(((arg_Aox * self.var_td) + tonum(arg_Ax)), ((arg_Aoy * self.var_td) + tonum(arg_Ay)))
        self.pen.down()
        self.gotoxy(((arg_Box * self.var_td) + tonum(arg_Bx)), ((arg_Boy * self.var_td) + tonum(arg_By)))
        self.gotoxy(((arg_Cox * self.var_td) + tonum(arg_Cx)), ((arg_Coy * self.var_td) + tonum(arg_Cy)))
        self.gotoxy(((arg_Aox * self.var_td) + tonum(arg_Ax)), ((arg_Aoy * self.var_td) + tonum(arg_Ay)))
        self.pen.up()
 
    @warp
    async def my_fillquadresolution(self, util, arg_Ax, arg_Ay, arg_Bx, arg_By, arg_Cx, arg_Cy, arg_Dx, arg_Dy, arg_res):
        await self.my_rasterquadfillresolution(util, arg_Ax, arg_Ay, arg_Bx, arg_By, arg_Cx, arg_Cy, arg_Dx, arg_Dy, arg_res)
        self.pen.set_size(1)
        self.pen.exact_color("#000000")
        self.gotoxy(tonum(arg_Ax), tonum(arg_Ay))
        self.pen.down()
        self.pen.set_size(tonum(arg_res))
        self.gotoxy(tonum(arg_Bx), tonum(arg_By))
        self.gotoxy(tonum(arg_Cx), tonum(arg_Cy))
        self.gotoxy(tonum(arg_Dx), tonum(arg_Dy))
        self.gotoxy(tonum(arg_Ax), tonum(arg_Ay))
        self.pen.up()
 
    @warp
    async def my_fillquadtrires(self, util, arg_Ax, arg_Ay, arg_Bx, arg_By, arg_Cx, arg_Cy, arg_Dx, arg_Dy, arg_res):
        await self.my_filltriinner1(util, arg_Ax, arg_Ay, arg_Bx, arg_By, arg_Cx, arg_Cy, sqrt((((tonum(arg_Bx) - tonum(arg_Cx)) * (tonum(arg_Bx) - tonum(arg_Cx))) + ((tonum(arg_By) - tonum(arg_Cy)) * (tonum(arg_By) - tonum(arg_Cy))))), sqrt((((tonum(arg_Ax) - tonum(arg_Cx)) * (tonum(arg_Ax) - tonum(arg_Cx))) + ((tonum(arg_Ay) - tonum(arg_Cy)) * (tonum(arg_Ay) - tonum(arg_Cy))))), sqrt((((tonum(arg_Ax) - tonum(arg_Bx)) * (tonum(arg_Ax) - tonum(arg_Bx))) + ((tonum(arg_Ay) - tonum(arg_By)) * (tonum(arg_Ay) - tonum(arg_By))))), (tonum(arg_res) * 1.4))
        await self.my_filltriinner1(util, arg_Cx, arg_Cy, arg_Dx, arg_Dy, arg_Ax, arg_Ay, sqrt((((tonum(arg_Dx) - tonum(arg_Ax)) * (tonum(arg_Dx) - tonum(arg_Ax))) + ((tonum(arg_Dy) - tonum(arg_Ay)) * (tonum(arg_Dy) - tonum(arg_Ay))))), sqrt((((tonum(arg_Cx) - tonum(arg_Ax)) * (tonum(arg_Cx) - tonum(arg_Ax))) + ((tonum(arg_Cy) - tonum(arg_Ay)) * (tonum(arg_Cy) - tonum(arg_Ay))))), sqrt((((tonum(arg_Cx) - tonum(arg_Dx)) * (tonum(arg_Cx) - tonum(arg_Dx))) + ((tonum(arg_Cy) - tonum(arg_Dy)) * (tonum(arg_Cy) - tonum(arg_Dy))))), (tonum(arg_res) * 1.4))
        self.pen.set_size(tonum(arg_res))
        self.gotoxy(tonum(arg_Cx), tonum(arg_Cy))
        self.pen.down()
        self.gotoxy(tonum(arg_Ax), tonum(arg_Ay))
        self.pen.exact_color("#000000")
        self.gotoxy(tonum(arg_Bx), tonum(arg_By))
        self.gotoxy(tonum(arg_Cx), tonum(arg_Cy))
        self.gotoxy(tonum(arg_Dx), tonum(arg_Dy))
        self.gotoxy(tonum(arg_Ax), tonum(arg_Ay))
        self.pen.up()
 
    @on_broadcast('start music')
    async def broadcast_startmusic(self, util):
        await self.sounds.play("Julius_-_3d_Demo_Tune.mp3")
        pass # hide variable
        pass # hide variable
        while not gt(util.timer(), 202):
            await self.yield_()
        pass # hide variable
        pass # hide variable
        util.stop_all()
        return None
 
    @on_broadcast('green flag')
    async def broadcast_greenflag(self, util):
        self.var_lastrendertime = 0
        pass # hide variable
        pass # hide variable
        await self.sounds.play("silence")
        util.sprites.stage.var_Zoom = 100
        util.sprites.stage.var_Resolution = 3
        self.var_Stars = 300
        self.var_GUI = 0
        self.var_ZoomSx = 0
        self.var_beat = 1
        self.var_beatSize = 1
        self.var_beatTimer = self.list_beat[1]
        self.shown = False
        await self.my_Create(util, )
        await self.my_CreateStars(util, )
        self.var_distance = 50
        self.var_speed = 25
        self.var_speedTarget = 0.3
        self.var_acc = 0
        util.send_broadcast("start music")
        util.timer.reset()
        while True:
            if lt(util.timer(), 4):
                util.sprites.stage.var_Zoom = 100
            else:
                if lt(util.timer(), 10):
                    self.var_ZoomSx += ((300 - util.sprites.stage.var_Zoom) * 0.1)
                    self.var_ZoomSx = (self.var_ZoomSx * 0.8)
                    util.sprites.stage.var_Zoom += toint(self.var_ZoomSx)
                else:
                    if lt(util.timer(), 55):
                        if gt(util.timer(), 43):
                            self.var_ZoomSx += ((120 - util.sprites.stage.var_Zoom) * 0.015)
                            self.var_ZoomSx = (self.var_ZoomSx * 0.5)
                            util.sprites.stage.var_Zoom += toint(self.var_ZoomSx)
                    else:
                        if lt(util.timer(), 73):
                            if gt(util.timer(), 65):
                                self.var_ZoomSx += ((280 - util.sprites.stage.var_Zoom) * 0.1)
                                self.var_ZoomSx = (self.var_ZoomSx * 0.8)
                                util.sprites.stage.var_Zoom += toint(self.var_ZoomSx)
                        else:
                            util.sprites.stage.var_Zoom = (200 + (80 * math.cos(math.radians(((util.timer() - 73) * 20)))))
            if eq(self.var_GUI, lt(util.inputs.mouse_y, 100)):
                self.var_GUI = (1 - self.var_GUI)
                if eq(self.var_GUI, 1):
                    print(util.sprites.stage.var_Resolution)
                    print(util.sprites.stage.var_Zoom)
                else:
                    pass # hide variable
                    pass # hide variable
            self.var_pos += 1
            self.var_distance = div(((self.var_distance * 6) + 4.5), 7)
            self.var_speed = div(((self.var_speed * 20) + self.var_speedTarget), 21)
            await self.my_pause(util, )
            self.var_a1 = (self.var_speed * -1.3)
            self.var_a2 = ((self.var_speed * -2.5) * math.sin(math.radians((util.timer() * 20))))
            if lt(util.timer(), 12):
                await self.my_ProcessPoints(util, self.var_a1, self.var_a2, 0, 8, 1)
            else:
                if lt(util.timer(), 27):
                    await self.my_ProcessPoints(util, (12 * math.cos(math.radians((util.timer() * 9)))), 20, 0, 8, 1)
                else:
                    await self.my_ProcessPoints(util, (8 * math.cos(math.radians((util.timer() * 9)))), 6, 0, 8, 1)
            await self.my_ProcessPoints(util, self.var_a1, self.var_a2, 8, 16, 1)
            if gt(util.timer(), self.var_beatTimer):
                self.var_beatSize = 1.5
                self.var_beat += 1
                if gt(self.var_beat, len(self.list_beat)):
                    self.var_beatTimer = 99999
                else:
                    self.var_beatTimer = (tonum(self.list_beat[self.var_beat]) - 0.2)
            if eq(self.var_beatTimer, 99999):
                if lt(self.var_beatSize, 2):
                    self.var_beatSize += 0.05
                    await self.my_ProcessPoints(util, self.var_a1, self.var_a2, 24, 8, self.var_beatSize)
                else:
                    await self.my_ProcessPoints(util, (8 * math.cos(math.radians((util.timer() * 9)))), (5 * math.sin(math.radians(((util.timer() - 45) * 5)))), 24, 8, 2)
            else:
                self.var_beatSize = div(((self.var_beatSize * 5) + 1), 6)
                await self.my_ProcessPoints(util, self.var_a1, self.var_a2, 24, 8, self.var_beatSize)
            if gt(util.timer(), 42.2):
                if lt(self.var_acc, 13):
                    self.var_acc += 0
            self.var_svx = (((tonum(self.list_points[toint(((10 * self.var_p) + 1))]) + tonum(self.list_points[toint(((12 * self.var_p) + 1))])) * self.var_acc) + 300)
            self.var_svy = (((tonum(self.list_points[toint(((10 * self.var_p) + 3))]) + tonum(self.list_points[toint(((12 * self.var_p) + 3))])) * self.var_acc) + 300)
            self.var_svz = (((tonum(self.list_points[toint(((10 * self.var_p) + 2))]) + tonum(self.list_points[toint(((12 * self.var_p) + 2))])) * self.var_acc) + 300)
            if (lt(util.timer(), 12) or gt(util.timer(), 28)):
                await self.my_ProcessPoints(util, self.var_a1, self.var_a2, 32, div(self.var_Stars, 2), 1)
            else:
                if lt(util.timer(), 16):
                    await self.my_ProcessPoints(util, self.var_a1, self.var_a2, 32, div(self.var_Stars, 2), div((16.01 - util.timer()), 4))
                else:
                    if lt(util.timer(), 27):
                        await self.my_ProcessPoints(util, self.var_a1, self.var_a2, 32, div(self.var_Stars, 2), 0.01)
                    else:
                        await self.my_ProcessPoints(util, self.var_a1, self.var_a2, 32, div(self.var_Stars, 2), div((util.timer() - 27.01), 1))
                        if lt(self.var_speedTarget, 0.6):
                            self.var_speedTarget = 0.6
            await self.my_ProcessPoints(util, self.var_a1, self.var_a2, (32 + div(self.var_Stars, 2)), div(self.var_Stars, 2), 1)
            await self.my_orderpolys(util, )
            self.var_incx = toint((util.sprites.stage.var_Resolution * div(util.sprites.stage.var_Zoom, 300)))
            if lt(self.var_incx, 1):
                self.var_incx = 1
            await self.my_renderatresolution(util, self.var_incx)
            await util.sprites["fade to black"].broadcast_tick(util)
 
            await self.yield_()
 
 
@sprite('fade to black')
class Spritefadetoblack(Target):
    """Sprite fade to black"""
 
    def __init__(self, parent=None):
        super().__init__(parent)
        if parent is not None:
            return
 
        self._xpos = 0
        self._ypos = 0
        self._direction = 90
        self.shown = False
        self.pen = Pen(self)
 
        self.costume = Costumes(
           2, 100, "don't rotate", [
            {
                'name': "black",
                'path': "f5e250886e3bafbbd9bc2398a5e321c5.png",
                'center': (480, 360),
                'scale': 2
            },
            {
                'name': "white",
                'path': "b61b1077b0ea1931abee9dbbfa7903ff.png",
                'center': (480, 360),
                'scale': 2
            },
            {
                'name': "credits",
                'path': "78dfd0b4f1aa8bde356a6b71a1d6de30-svg-2x.png",
                'center': (480, 360),
                'scale': 2
            }
        ])
 
        self.sounds = Sounds(
            100, [
            {
                'name': "pop",
                'path': "83a9787d4cb6f3b7632b4ddfebf74367.wav"
            }
        ])
 
        self.var_tick = 100
        self.var_mode = 2
 
 
 
        self.sprite.layer = 2
 
    @on_broadcast('tick')
    async def broadcast_tick(self, util):
        if eq(self.var_mode, 0):
            if lt(self.var_tick, 100):
                self.var_tick += 3
                if lt(self.var_tick, 100):
                    self.costume.set_effect('ghost', self.var_tick)
                else:
                    self.shown = False
                    self.costume.switch("white")
                    self.var_mode = 1
                    self.var_tick = 0
        else:
            if eq(self.var_mode, 1):
                if gt(util.timer(), 27):
                    self.shown = True
                    self.var_tick += 15
                    if lt(self.var_tick, 100):
                        self.costume.set_effect('ghost', self.var_tick)
                    else:
                        self.shown = False
                        self.costume.switch("credits")
                        self.var_mode = 2
                        self.var_tick = 100
            else:
                if gt(util.timer(), 194):
                    self.shown = True
                    self.var_tick += -1
                    if gt(self.var_tick, 0):
                        self.costume.set_effect('ghost', self.var_tick)
                    else:
                        self.var_mode = 3
 
    @on_green_flag
    async def green_flag(self, util):
        self.gotoxy(0, 0)
        self.costume.switch("black")
        self.costume.clear_effects()
        self.shown = True
        self.var_tick = 0
        self.var_mode = 0
        util.send_broadcast("green flag")
 
 
 
 
if __name__ == '__main__':
    engine.start_program()
 

Scratch to Pygame converter: https://scratch.mit.edu/discuss/topic/600562/
Gamer_Logan819
Scratcher
100+ posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

mbrick2 wrote:

Wow!!!!

Now do python to scratch, lol

STOP POSTING ABOUT AMONG US! IM TIRED OF SEEING IT! My friends on TikTok send me memes, on discord it’s among us memes…. I was in a server, right? And ALL of the channels were just among us stuff… I showed my Champion underwear to my girlfriend, and the logo, I flipped it and said, 'Hey babe, when the underwear is SUS. HAHA!
DING DING DING DING DING DING DING
breath
DING DING DING
I looked at a trash can and I said, ‘That’s a bit sussy.’
I looked my thumb and thought of the among us character, and I go… ‘Thumb? More like among us! AAAAAA’
-OofyRoblox-
Scratcher
100+ posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

I know this might sound stupid, but I'm 12 (I've already learned java and python; yep I'm a nerd) and I'm on a school Chromebook, is there a way I could use this because python doesn't install on here

This is insane Sanford! it's like- some sort of Madness Combat
- Hank J Wimbleton.

What you know about rolling down in the deep-

RED-001-alt
Scratcher
100+ posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

-OofyRoblox- wrote:

I know this might sound stupid, but I'm 12 (I've already learned java and python; yep I'm a nerd) and I'm on a school Chromebook, is there a way I could use this because python doesn't install on here
im 14 and all i know is scratch and i stalk the forums 24/7 thats all i spend my life on

Please don't remove the automatic browser/OS info after making a new Bugs and Glitches forum post, that information really helps a lot! (unless you are reporting from a different device, then you should specify what device, OS, and browser you have)

I won't be active for the summer :(

Highlight this text and press ctrl + shift + up/down arrows to scroll through my beefy signature.

Scratch 15th Birthday Celebration: https://youtube.com/watch?v=7Gd_b1mbrxM
Encore event: https://www.youtube.com/watch?v=gI4Gcf-T28g
Please help with this: https://scratch.mit.edu/discuss/topic/606203/ and this: https://scratch.mit.edu/discuss/topic/607350/

I am actually @RED-001 but I forgot my password, so this account was created lol

https://www.quora.com/Will-Microsoft-make-Windows-11-be-coded-in-scratch

Check out some of my projects:
Car Azuz wants your liver: https://scratch.mit.edu/projects/691564310/
FAT-32 Simulator (NOT COMPLETE): https://scratch.mit.edu/projects/691537300/
String Brute-Force Guesser: https://scratch.mit.edu/projects/689666393/
imfh
Scratcher
1000+ posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

-OofyRoblox- wrote:

I know this might sound stupid, but I'm 12 (I've already learned java and python; yep I'm a nerd) and I'm on a school Chromebook, is there a way I could use this because python doesn't install on here
There's a replit someone made in the issues of the GitHub which lets you use it online. I'm pretty sure it is not the latest version though, which run a little bit faster. It also doesn't have SVG support so some of the projects won't work right.

I should probably make my own replit for it at some point. Are we allowed to link to replits on the forums?

Scratch to Pygame converter: https://scratch.mit.edu/discuss/topic/600562/
kccuber
Scratcher
1000+ posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

imfh wrote:

I should probably make my own replit for it at some point. Are we allowed to link to replits on the forums?
I think so, just no replit collab links.


Made using Nord Theme & Inkscape
imfh
Scratcher
1000+ posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

kccuber wrote:

imfh wrote:

I should probably make my own replit for it at some point. Are we allowed to link to replits on the forums?
I think so, just no replit collab links.
I see a lot of people on Scratch sharing and using replit as of recently, but I'm still not sure if it is allowed since about a year ago it seemed like the answer was a solid no. I'll just leave it alone for now.

Scratch to Pygame converter: https://scratch.mit.edu/discuss/topic/600562/
mumu245
Scratcher
1000+ posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

god286 wrote:

I will try it soon! This is cool!

Also there is another project https://github.com/Secret-chest/scratch2python/ I am not sure if it has some of the functions in your to-do list though
No. My project also runs everything live. It is not a transpiler.

Highlight this then press CTRL - SHIFT - DOWN to read more


website · shop · github

Mostly quit Scratch. Now I code mostly in Python and I make websites using HTML, and I share all of them on my GitHub.
I'm still active on the forums though.
I have a YouTube channel and a website, but only in Romanian. Check them out at gugalcrom.net, if you understand Romanian.

first still open thread on 2.0 forums

I use Linux Mint.
I created the Romanian Test Scratch Wiki, and I am on the English Scratch Wiki.

(  :: #fff) off :: obsolete reporter
on ( :: #fff) :: operators reporter

My pet kumquats:

By Loadmaster (David R. Tribble)This image was made by Loadmaster (David R. Tribble)Email the author: David R. TribbleAlso see my personal gallery at Google Photos - Own work, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=4024754




Powered by DjangoBB

Standard | Mobile