úÎK’DÖz      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyNone2I6The particle storage datatypeThe particle stored last:List of particles in ascending order of remaining lifetimeThe particle systemA single particle!Time to live in seconds"7Creation time of particle in seconds form program start#Position of particle on canvas$Particle rotation%0particle velocity as vector of pixels per second&3Rotational velocity of particle in angle per second'Root z of (Node Graph of  per particle)z to connect other s to*z to connect draw actions to+%Typeclass for converting Angles from 0 to / and vice versa..Type for defining angles/Angle in radians0Angle in degrees11Type for defining the draw type of draw functions2-Fill the specified area completely with color3!only draw the outline of the area4Width of line in pixels<Affection's state monad?Inner {\ monad for the update state type AffectionStateInner us m a = StateT (AffectionData us) m a|A type for storing C( results to be executed frequently. TODOC2This datatype stores information about areas of a  to be updatedEThe area to updateFBuffer to drawGShall the drawRequest persistHJMain type for defining the look, feel and action of the whole application.J Loop breaker.KState data provided by userL SDL windowMInternal surface of windowN SDL surfaceO Target formatP Stack of Cs to be processedQDestination Pixel bufferRDimensions of target surfaceSStride of target bufferTNumber of components per pixelU Stack of Cs to be invalidatedVElapsed time in secondsW Components to initialize in SDL.Z4Configuration for the aplication. needed at startup.\'SDL components to initialize at startup] Window title^Window configuration_+Actions to be performed, before loop starts`Function for updating graphics.a;Main update function. Takes fractions of a second as input.b3Provide your own load function to create this data.c6Provide your own finisher function to clean your data.R !"#$%&'()*+,-./0123456789:;<=>?|}@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdeb    !"#$%&'()*+,-./0123456:789;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcb;HIJKLMNOPQRSTUVZ[\]^_`abc<=>?WXY56789:1234CDEFG@AB./0+,- !"#$%&'()*    !"#$%&'()*+,-./0123456789:;<=>?|}@ABCDEFGHIJKLMNOPQRSTUVWXYZ [\]^_`abcdeNone!"n+Force update of a specific region on screenofunction for handling Cs and updating the outputpclear a previously drawn area~ compute color for a single pixelq0Clear a specified area of a buffer from all datam Target NodeColor to draw in Draw typeDimensions of Rectangle Final BuffernArea to be updated Target buffer Shall the C persist?oBPixel buffer to blit to -> B.BablFormatPtr -- ^ format to blit inStrideComponents per PixelC to handlepBPixel buffer to blit to -> B.BablFormatPtr -- ^ format to blit inStrideComponents per PixelDrawrequest to invalidate~Pixel information in bufferColor to draw overResulting colourq Target buffer Area to clearmnopqmopnqmnop~qNone!"€(Get the next living particle from a listuFunction for inserting a new  into its  PartileSystem Insert a & into its chronologically ordered listrElapsed time in secondsUpdate function for a single t This Function should take the elapsed time in seconds and the initial particle as arguments. -> [Maybe Particle]2 to be processed -> Affection us [Maybe Particle] resulting €stu to insert into to insertresulting new 3Time in seconds from beginning of program executionList to insert to to insertResulting listrsturstur€stuNone!"v/Main function which bootstraps everything else.w Return the userstate to the userxPut altered user state backy-block a thread for a specified amount of timev)Configuration of the Game and its engine.‚ƒwxyNumber of secondsq    !"#$%&'()*+,-./0123456:789;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcmnopqrstuvwxyvwxyv‚ƒwxy„          ! "##$%&&'()**+,-./0123456789:;<=>??@ABCDDEFGHIJJKLMNNOPQRSTUVWXYZ[\]^__`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒƒ„…†‡ˆ‰Š'affection-0.0.0.2-CqeDYzII245RJezzjiJeeAffection.Types AffectionAffection.DrawAffection.ParticleG GeglNodesbaseControl.Monad.IO.ClassliftIO!sdl2-2.1.3-DowE7uPk79X5oshOMg5tVk SDL.VideowindowResizablewindowPosition windowOpenGL windowModewindowInputGrabbedwindowInitialSize windowHighDPI windowBorder WindowConfig defaultWindow#gegl-0.0.0.0-IvL8rumPVW7L2cs45S9PlQGEGL.FFI.Rectangle rectangleY rectangleXrectangleWidthrectangleHeight GeglRectangleGEGL.FFI.Buffer GeglBuffer mtl-2.2.1-6qsR1PHUy5lL47Hpoa4jCMControl.Monad.State.ClassputgetParticleStoragepartStorLatest partStorListParticleSystem partSysParts partSysNode partSysBufferParticleparticleTimeToLiveparticleCreationparticlePositionparticleRotationparticleVelocityparticlePitchRateparticleRootNodeparticleNodeGraphparticleStackContparticleDrawFlange ConvertAngletoRadtoDegAngleRadDegDrawTypeFillLine lineWidthRGBArgbaAffectionStaterunStateAffectionStateInnerRequestPersistYesKill DrawRequest requestArea requestBufferrequestPersist AffectionData quitEvent userState drawWindow windowSurface drawSurface drawFormat drawStack drawPixelsdrawDimensions drawStridedrawCPP clearStack elapsedTimeInitComponentsAllOnlyAffectionConfiginitComponents windowTitle windowConfigpreLoopdrawLoop updateLoop loadStatecleanUp $fEqAngle$fConvertAngleAngle$fFunctorAffectionState$fApplicativeAffectionState$fMonadAffectionState$fMonadIOAffectionState$fMonadStateAffectionState $fShowAngle $fEqParticledrawRectpresenthandleDrawRequestinvalidateDrawRequest clearAreaupdateParticle drawParticlesupdateParticleSysteminsertParticle withAffection getAffection putAffectiondelaySec GEGL.FFI.NodeGeglNodetransformers-0.5.2.0Control.Monad.Trans.State.LazyStateT DrawAssetcolorizeunsafeColorize nextLiving chronoInsert getSurfacespreHandleEvents