Remake README for osci-render 2.0 and get projucer file production-ready

pull/170/head
James Ball 2023-12-22 17:52:36 +00:00
rodzic eddfa9bcd9
commit 1dcdb50eb0
19 zmienionych plików z 590 dodań i 41 usunięć

150
README.md
Wyświetl plik

@ -1,55 +1,129 @@
# Osci-render 2.0
<img width="100%" src="images/osci-wide-tagline.png" />
This is a complete rewrite of [osci-render](https://github.com/jameshball/osci-render) in C++ using the JUCE framework. This will enable a plethora of improvements, such as:
Open-source synthesizer for making music by drawing objects, text, and images on an oscilloscope using audio. Allows for 3D rendering of `.obj` files, `.svg` images, `.txt` files, and Blender scenes on Windows and macOS.
- Massively improved audio stability
- Better performance
- Support as a VST/AU audio plugin that can be controlled using a DAW
- Significantly lower latency
- In-app software oscilloscope
- More maintainable codebase allowing more features to be added
Everything is controllable from a Digital Audio Workstation (DAW), allowing for parameter automation and MIDI control. If you prefer to use osci-render as a standalone application, you can do that too!
Osci-render is a fully programmable synthesiser, allowing for custom visuals, sounds, and audio effects to be scripted using Lua, and interacted with using your DAW.
Send an email to [james@ball.sh](mailto:james@ball.sh) if you have any issues, feedback, feature requests, or anything else!
## See it in action
### Rendering an animated Blender scene
![image](images/blender.gif)
### Applying audio effects to a Lua script
![image](images/demo1.gif)
Project file used to create the above demo: [square_spiral.osci](projects/square_spiral.osci)
### Automating parameters from a DAW
![image](images/demo2.gif)
Reaper project used to create the above demo: [square_spiral.rpp](projects/square_spiral.rpp)
### Playing a MIDI keyboard and changing envelope parameters
![image](images/demo3.gif)
## Current Features
- Render 3D objects
- Render SVG vector images
- Render text
- Scriptable visuals and audio effects using Lua
- Blender integration
- Software oscilloscope
- Applying image effects
- Bit Crush
- Vertical/Horizontal Distortion
- Image Wobble
- Image Smoothing
- Image Tracing
- ... and more!
- MIDI control
- Automate parameters from a DAW
- Saving and loading projects
## Screenshots
### Opening and editing Lua files
![image](images/main-interface.png)
![image](https://github.com/jameshball/osci-render-juce/assets/38670946/5b240357-5e23-4831-8556-63d10b512c9b)
![image](images/code-editor.png)
### Changing the order of audio effects
![image](images/obj.png)
![image](https://github.com/jameshball/osci-render-juce/assets/38670946/d8a56c41-6d7a-439a-86f4-b7e872ad9476)
## Download
### Osci-render 2.0 being used as a VST
Pay what you want from the official website: [osci-render.com](https://osci-render.com) to get access to the latest version.
![image](https://github.com/jameshball/osci-render-juce/assets/38670946/91350b94-4563-4ada-9aac-b40978b59fc6)
After you've purchased, you'll be sent an email with a download link. Here you can download the latest version for Windows or macOS, as a standalone application or as a VST or AU plugin.
## Current status
## Installation
Osci-render 2.0 is currently in pre-alpha and has no formal support or public release to download. There is currently no planned release date.
### Standalone Application
You can track the most up-to-date progress [here](https://github.com/users/jameshball/projects/2), but in summary:
Run the `osci-render.exe` file on Windows, or the `osci-render.app` file on macOS. You may need to allow the application to run if you get a warning.
### Implemented features
Details on how to bypass security warnings or 'app is damaged' warnings on macOS can be found [here](https://support.apple.com/en-us/HT202491).
- Support for .obj
- Support for .txt
- Support for .svg
- Support for .lua
- All audio effects implemented
- Audio effects are reorderable
- Many more Lua sliders supported for more control
- Text editor for the current file
- Smooth changing of effect values (preventing harsh clicks!)
- Changing the range of sliders
- Basic in-app software oscilloscope
- Support for the existing [web-based oscilloscope](https://james.ball.sh/oscilloscope)
- Support for audio-plugin parameters being controlled from a DAW and vice versa
- Volume visualiser
- Saving to a .osci project file, including support for legacy osci-render projects
### VST Plugin
### Major features still TODO
Copy the `osci-render.vst3` file to your VST plugins folder, and restart your DAW. This is usually located at: `C:\Program Files\Common Files\VST3` on Windows, or `/Library/Audio/Plug-Ins/VST3` on macOS.
- Project select screen
- Blender integration
- MIDI support
- Improved algorithm for finding the best path to render 3D object
### AudioUnit (AU) Plugin
Copy the `osci-render.component` file to your AU plugins folder, and restart your DAW. This is usually located at: `/Library/Audio/Plug-Ins/Components` on macOS.
## Getting Started
Run the application, or add the plugin to your DAW. You should see the below interface, and hear a sine wave playing, and a circle being drawn on the software oscilloscope.
![image](images/default-interface.png)
Now you can start opening `.obj` files, `.svg` files, or `.txt` files using the Choose File button, or creating your own files from a set of examples by specifying the file type, and using the Create File button.
To start editing the file you've opened, click the arrow button on the very right of the interface to open the code editor:
![image](images/edit-file.png)
Here you can edit the file, and see the changes in real-time. You can also edit the code while the file is playing, and the changes will be applied immediately.
Now, you can start applying audio effects to the image by enabling the effects you want to use in the Audio Effects section of the interface. You can rearrange the order of the effects by dragging them up and down, and animate the parameters using the drop-down menus next to each effect.
![image](images/effects.gif)
You can change the allowed range of each effect by right-clicking on the effect name, and changing the minimum and maximum values. This will change the range the parameter is animated over, and the range of the parameter when being controlled from a DAW.
### Rendering a Blender scene
This [video](https://www.youtube.com/watch?v=pCn297Ejvlw) explains how to install and use osci-render with Blender. Please note that the video is made for osci-render 1.0, so the interface will look slightly different, but the process is the same.
- Download the Blender add-on from [Releases](https://github.com/jameshball/osci-render/releases) named `osci-render-blender-addon.zip`
- [Install and enable the add-on](https://docs.blender.org/manual/en/latest/editors/preferences/addons.html#installing-add-ons) in Blender
- 'osci-render settings' menu will now appear under 'Render Properties'
- Open osci-render
- Click 'Connect to osci-render'
- If the filename in osci-render changes to 'Rendering from Blender' you have successfully connected
- Add a camera to the scene (if not already present)
- Add a Scene Line Art object to the scene
- Press Shift+A and navigate to Grease Pencil > Scene Line Art
- Go to 'Modifier Properties' of the newly created Line Art object
- Click 'Bake Line Art' under the the 'Bake' settings to generate line art for the current animation/scene/camera
- You should now see the scene on the oscilloscope!
### MIDI
To enable MIDI control, open the MIDI settings at the bottom of the interface, and click 'Enable MIDI'.
Make sure your MIDI device is enabled by clicking Audio > Settings from the top menu, and enabling your MIDI device under Active MIDI inputs:
<img width="450px" src="images/audio-settings.png">
## Contact
James H Ball, [james@ball.sh](mailto:james@ball.sh)

Wyświetl plik

@ -7,7 +7,7 @@ VisualiserComponent::VisualiserComponent(int numChannels, OscirenderAudioProcess
startThread();
roughness.textBox.setValue(4);
intensity.textBox.setValue(0.75);
intensity.textBox.setValue(1.0);
}
VisualiserComponent::~VisualiserComponent() {

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 66 KiB

BIN
images/blender.gif 100644

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 8.9 MiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 331 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 123 KiB

BIN
images/demo1.gif 100644

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 3.2 MiB

BIN
images/demo2.gif 100644

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 3.8 MiB

BIN
images/demo3.gif 100644

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 2.4 MiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 145 KiB

BIN
images/effects.gif 100644

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 7.0 MiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 120 KiB

BIN
images/obj.png 100644

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 179 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 36 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 20 KiB

Wyświetl plik

@ -5,7 +5,8 @@
pluginCharacteristicsValue="pluginProducesMidiOut,pluginWantsMidiIn"
pluginManufacturer="jameshball" aaxIdentifier="sh.ball.oscirender"
cppLanguageStandard="20" projectLineFeed="&#10;" headerPath="./include"
version="2.0.0">
version="2.0.0" companyName="James H Ball" companyWebsite="https://osci-render.com"
companyEmail="james@ball.sh">
<MAINGROUP id="j5Ge2T" name="osci-render">
<GROUP id="{5ABCED88-0059-A7AF-9596-DBF91DDB0292}" name="Resources">
<GROUP id="{C2609827-4F4A-1ADA-8BA1-A40C1D92649C}" name="lua">

Plik binarny nie jest wyświetlany.

Wyświetl plik

@ -0,0 +1,474 @@
<REAPER_PROJECT 0.1 "6.68/win64" 1703261801
<NOTES 0 2
>
RIPPLE 0
GROUPOVERRIDE 0 0 0
AUTOXFADE 129
ENVATTACH 3
POOLEDENVATTACH 0
MIXERUIFLAGS 11 48
PEAKGAIN 1
FEEDBACK 0
PANLAW 1
PROJOFFS 0 0 0
MAXPROJLEN 0 600
GRID 3199 8 0.25 8 1 0 0 0
TIMEMODE 1 5 -1 30 0 0 -1
VIDEO_CONFIG 0 0 256
PANMODE 3
CURSOR 110.98265895953757
ZOOM 1.17478157762459 0 0
VZOOMEX 6 0
USE_REC_CFG 0
RECMODE 1
SMPTESYNC 0 30 100 40 1000 300 0 0 1 0 0
LOOP 0
LOOPGRAN 0 4
RECORD_PATH "" ""
<RECORD_CFG
ZXZhdxgAAA==
>
<APPLYFX_CFG
>
RENDER_FILE "E:\OneDrive\Desktop\square_spiral.wav"
RENDER_FMT 0 2 0
RENDER_1X 2
RENDER_RANGE 2 0 0 18 1000
RENDER_RESAMPLE 3 0 1
RENDER_ADDTOPROJ 0
RENDER_STEMS 0
RENDER_DITHER 0
TIMELOCKMODE 1
TEMPOENVLOCKMODE 1
ITEMMIX 1
DEFPITCHMODE 589824 0
TAKELANE 1
SAMPLERATE 192000 1 0
<RENDER_CFG
ZXZhdxgAAA==
>
LOCK 1
<METRONOME 6 2
VOL 0.25 0.125
FREQ 800 1600 1
BEATLEN 4
SAMPLES "" ""
PATTERN 2863311530 2863311529
MULT 1
>
GLOBAL_AUTO -1
TEMPO 86.5 4 4
PLAYRATE 1 0 0.25 4
SELECTION 0 0
SELECTION2 0 0
MASTERAUTOMODE 0
MASTERTRACKHEIGHT 0 0
MASTERPEAKCOL 16576
MASTERMUTESOLO 0
MASTERTRACKVIEW 0 0.6667 0.5 0.5 0 -1 0 0 0 0 -1 -1 0
MASTERHWOUT 0 0 1 0 0 0 0 -1
MASTERHWOUT 2 0 1 0 0 0 0 -1
MASTER_NCH 4 2
MASTER_VOLUME 1 0 -1 -1 1
MASTER_PANMODE 3
MASTER_FX 1
MASTER_SEL 0
<MASTERFXLIST
SHOW 0
LASTSEL 0
DOCKED 0
>
<MASTERPLAYSPEEDENV
EGUID {B2E2BE9A-A913-4664-AD44-A42131C5F826}
ACT 0 -1
VIS 0 1 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 0 -1 -1
>
<TEMPOENVEX
EGUID {5E9B8A6F-7559-4DE0-9036-7B4670A8BD7A}
ACT 0 -1
VIS 1 0 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 1 -1 -1
>
<PROJBAY
>
<TRACK {336A7551-E984-4C7F-9112-C092B2162631}
NAME ""
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 1 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 -1 -1 -1
SEL 0
REC 0 0 1 0 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {336A7551-E984-4C7F-9112-C092B2162631}
PERF 0
MIDIOUT -1
MAINSEND 1 0
<FXCHAIN
WNDRECT 635 118 1593 850
SHOW 1
LASTSEL 0
DOCKED 0
BYPASS 0 0 0
<VST "VST3: osci-render (jameshball)" osci-render.vst3 0 "" 1273328299{ABCDEF019182FAEB4D616E7548683265} ""
q3LlS+5e7f4CAAAAAQAAAAAAAAACAAAAAAAAAAIAAAABAAAAAAAAAAIAAAAAAAAAXD0AAAEAAAD//xAA
TD0AAAEAAABWQzIhBz0AADw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+IDxwcm9qZWN0IHZlcnNpb249IjIuMC4wIiBjdXJyZW50RmlsZT0iMCI+
PGVmZmVjdHM+PGVmZmVjdCBpZD0iYml0Q3J1c2giIHByZWNlZGVuY2U9IjAiPjxlbmFibGVkIGlkPSJiaXRDcnVzaEVuYWJsZWQiIHZhbHVlPSIwIi8+PHBhcmFtZXRl
ciBpZD0iYml0Q3J1c2giIHZhbHVlPSIwLjAiIG1pbj0iMC4wIiBtYXg9IjEuMCIgc3RlcD0iMC4wMDk5OTk5OTk3NzY0ODI1ODIiPjxsZm8gbGZvPSJTdGF0aWMiIGlk
PSJiaXRDcnVzaExmb1JhdGUiIHZhbHVlPSIxLjAiIG1pbj0iMC4wIiBtYXg9IjEwMC4wIiBzdGVwPSIwLjEwMDAwMDAwMTQ5MDExNjEiLz48L3BhcmFtZXRlcj48L2Vm
ZmVjdD48ZWZmZWN0IGlkPSJidWxnZSIgcHJlY2VkZW5jZT0iMSI+PGVuYWJsZWQgaWQ9ImJ1bGdlRW5hYmxlZCIgdmFsdWU9IjAiLz48cGFyYW1ldGVyIGlkPSJidWxn
ZSIgdmFsdWU9IjAuMCIgbWluPSIwLjAiIG1heD0iMS4wIiBzdGVwPSIwLjAwOTk5OTk5OTc3NjQ4MjU4MiI+PGxmbyBsZm89IlN0YXRpYyIgaWQ9ImJ1bGdlTGZvUmF0
ZSIgdmFsdWU9IjEuMCIgbWluPSIwLjAiIG1heD0iMTAwLjAiIHN0ZXA9IjAuMTAwMDAwMDAxNDkwMTE2MSIvPjwvcGFyYW1ldGVyPjwvZWZmZWN0PjxlZmZlY3QgaWQ9
IjJEUm90YXRlU3BlZWQiIHByZWNlZGVuY2U9IjIiPjxlbmFibGVkIGlkPSIyRFJvdGF0ZVNwZWVkRW5hYmxlZCIgdmFsdWU9IjAiLz48cGFyYW1ldGVyIGlkPSIyRFJv
dGF0ZVNwZWVkIiB2YWx1ZT0iMC4wIiBtaW49IjAuMCIgbWF4PSIxLjAiIHN0ZXA9IjAuMDA5OTk5OTk5Nzc2NDgyNTgyIj48bGZvIGxmbz0iU3RhdGljIiBpZD0iMkRS
b3RhdGVTcGVlZExmb1JhdGUiIHZhbHVlPSIxLjAiIG1pbj0iMC4wIiBtYXg9IjEwMC4wIiBzdGVwPSIwLjEwMDAwMDAwMTQ5MDExNjEiLz48L3BhcmFtZXRlcj48L2Vm
ZmVjdD48ZWZmZWN0IGlkPSJ2ZWN0b3JDYW5jZWxsaW5nIiBwcmVjZWRlbmNlPSIzIj48ZW5hYmxlZCBpZD0idmVjdG9yQ2FuY2VsbGluZ0VuYWJsZWQiIHZhbHVlPSIw
Ii8+PHBhcmFtZXRlciBpZD0idmVjdG9yQ2FuY2VsbGluZyIgdmFsdWU9IjAuMCIgbWluPSIwLjAiIG1heD0iMS4wIiBzdGVwPSIwLjAwOTk5OTk5OTc3NjQ4MjU4MiI+
PGxmbyBsZm89IlN0YXRpYyIgaWQ9InZlY3RvckNhbmNlbGxpbmdMZm9SYXRlIiB2YWx1ZT0iMS4wIiBtaW49IjAuMCIgbWF4PSIxMDAuMCIgc3RlcD0iMC4xMDAwMDAw
MDE0OTAxMTYxIi8+PC9wYXJhbWV0ZXI+PC9lZmZlY3Q+PGVmZmVjdCBpZD0iZGlzdG9ydFgiIHByZWNlZGVuY2U9IjQiPjxlbmFibGVkIGlkPSJkaXN0b3J0WEVuYWJs
ZWQiIHZhbHVlPSIwIi8+PHBhcmFtZXRlciBpZD0iZGlzdG9ydFgiIHZhbHVlPSIwLjAiIG1pbj0iMC4wIiBtYXg9IjEuMCIgc3RlcD0iMC4wMDk5OTk5OTk3NzY0ODI1
ODIiPjxsZm8gbGZvPSJTdGF0aWMiIGlkPSJkaXN0b3J0WExmb1JhdGUiIHZhbHVlPSIxLjAiIG1pbj0iMC4wIiBtYXg9IjEwMC4wIiBzdGVwPSIwLjEwMDAwMDAwMTQ5
MDExNjEiLz48L3BhcmFtZXRlcj48L2VmZmVjdD48ZWZmZWN0IGlkPSJkaXN0b3J0WSIgcHJlY2VkZW5jZT0iNSI+PGVuYWJsZWQgaWQ9ImRpc3RvcnRZRW5hYmxlZCIg
dmFsdWU9IjAiLz48cGFyYW1ldGVyIGlkPSJkaXN0b3J0WSIgdmFsdWU9IjAuMCIgbWluPSIwLjAiIG1heD0iMS4wIiBzdGVwPSIwLjAwOTk5OTk5OTc3NjQ4MjU4MiI+
PGxmbyBsZm89IlN0YXRpYyIgaWQ9ImRpc3RvcnRZTGZvUmF0ZSIgdmFsdWU9IjEuMCIgbWluPSIwLjAiIG1heD0iMTAwLjAiIHN0ZXA9IjAuMTAwMDAwMDAxNDkwMTE2
MSIvPjwvcGFyYW1ldGVyPjwvZWZmZWN0PjxlZmZlY3QgaWQ9InRyYW5zbGF0ZVgiIHByZWNlZGVuY2U9IjYiPjxlbmFibGVkIGlkPSJ0cmFuc2xhdGVYRW5hYmxlZCIg
dmFsdWU9IjAiLz48cGFyYW1ldGVyIGlkPSJ0cmFuc2xhdGVYIiB2YWx1ZT0iMC4wIiBtaW49Ii0xLjAiIG1heD0iMS4wIiBzdGVwPSIwLjAwOTk5OTk5OTc3NjQ4MjU4
MiI+PGxmbyBsZm89IlN0YXRpYyIgaWQ9InRyYW5zbGF0ZVhMZm9SYXRlIiB2YWx1ZT0iMS4wIiBtaW49IjAuMCIgbWF4PSIxMDAuMCIgc3RlcD0iMC4xMDAwMDAwMDE0
OTAxMTYxIi8+PC9wYXJhbWV0ZXI+PHBhcmFtZXRlciBpZD0idHJhbnNsYXRlWSIgdmFsdWU9IjAuMCIgbWluPSItMS4wIiBtYXg9IjEuMCIgc3RlcD0iMC4wMDk5OTk5
OTk3NzY0ODI1ODIiPjxsZm8gbGZvPSJTdGF0aWMiIGlkPSJ0cmFuc2xhdGVZTGZvUmF0ZSIgdmFsdWU9IjEuMCIgbWluPSIwLjAiIG1heD0iMTAwLjAiIHN0ZXA9IjAu
MTAwMDAwMDAxNDkwMTE2MSIvPjwvcGFyYW1ldGVyPjwvZWZmZWN0PjxlZmZlY3QgaWQ9InNtb290aGluZyIgcHJlY2VkZW5jZT0iNyI+PGVuYWJsZWQgaWQ9InNtb290
aGluZ0VuYWJsZWQiIHZhbHVlPSIwIi8+PHBhcmFtZXRlciBpZD0ic21vb3RoaW5nIiB2YWx1ZT0iMC4wIiBtaW49IjAuMCIgbWF4PSIxLjAiIHN0ZXA9IjAuMDA5OTk5
OTk5Nzc2NDgyNTgyIj48bGZvIGxmbz0iU3RhdGljIiBpZD0ic21vb3RoaW5nTGZvUmF0ZSIgdmFsdWU9IjEuMCIgbWluPSIwLjAiIG1heD0iMTAwLjAiIHN0ZXA9IjAu
MTAwMDAwMDAxNDkwMTE2MSIvPjwvcGFyYW1ldGVyPjwvZWZmZWN0PjxlZmZlY3QgaWQ9IndvYmJsZSIgcHJlY2VkZW5jZT0iOCI+PGVuYWJsZWQgaWQ9IndvYmJsZUVu
YWJsZWQiIHZhbHVlPSIwIi8+PHBhcmFtZXRlciBpZD0id29iYmxlIiB2YWx1ZT0iMC4wIiBtaW49IjAuMCIgbWF4PSIxLjAiIHN0ZXA9IjAuMDA5OTk5OTk5Nzc2NDgy
NTgyIj48bGZvIGxmbz0iU3RhdGljIiBpZD0id29iYmxlTGZvUmF0ZSIgdmFsdWU9IjEuMCIgbWluPSIwLjAiIG1heD0iMTAwLjAiIHN0ZXA9IjAuMTAwMDAwMDAxNDkw
MTE2MSIvPjwvcGFyYW1ldGVyPjwvZWZmZWN0PjxlZmZlY3QgaWQ9ImRlbGF5RGVjYXkiIHByZWNlZGVuY2U9IjkiPjxlbmFibGVkIGlkPSJkZWxheURlY2F5RW5hYmxl
ZCIgdmFsdWU9IjAiLz48cGFyYW1ldGVyIGlkPSJkZWxheURlY2F5IiB2YWx1ZT0iMC4wIiBtaW49IjAuMCIgbWF4PSIxLjAiIHN0ZXA9IjAuMDA5OTk5OTk5Nzc2NDgy
NTgyIj48bGZvIGxmbz0iU3RhdGljIiBpZD0iZGVsYXlEZWNheUxmb1JhdGUiIHZhbHVlPSIxLjAiIG1pbj0iMC4wIiBtYXg9IjEwMC4wIiBzdGVwPSIwLjEwMDAwMDAw
MTQ5MDExNjEiLz48L3BhcmFtZXRlcj48cGFyYW1ldGVyIGlkPSJkZWxheUxlbmd0aCIgdmFsdWU9IjAuNSIgbWluPSIwLjAiIG1heD0iMS4wIiBzdGVwPSIwLjAwOTk5
OTk5OTc3NjQ4MjU4MiI+PGxmbyBsZm89IlN0YXRpYyIgaWQ9ImRlbGF5TGVuZ3RoTGZvUmF0ZSIgdmFsdWU9IjEuMCIgbWluPSIwLjAiIG1heD0iMTAwLjAiIHN0ZXA9
IjAuMTAwMDAwMDAxNDkwMTE2MSIvPjwvcGFyYW1ldGVyPjwvZWZmZWN0PjxlZmZlY3QgaWQ9InBlcnNwZWN0aXZlU3RyZW5ndGgiIHByZWNlZGVuY2U9IjEwIj48ZW5h
YmxlZCBpZD0icGVyc3BlY3RpdmVTdHJlbmd0aEVuYWJsZWQiIHZhbHVlPSIxIi8+PHBhcmFtZXRlciBpZD0icGVyc3BlY3RpdmVTdHJlbmd0aCIgdmFsdWU9IjQuNjky
NTA4NjM5NDM2NzFlLTciIG1pbj0iMC4wIiBtYXg9IjEuMCIgc3RlcD0iMC4wMDk5OTk5OTk3NzY0ODI1ODIiPjxsZm8gbGZvPSJTdGF0aWMiIGlkPSJwZXJzcGVjdGl2
ZVN0cmVuZ3RoTGZvUmF0ZSIgdmFsdWU9IjAuMCIgbWluPSIwLjAiIG1heD0iMTAwLjAiIHN0ZXA9IjAuMTAwMDAwMDAxNDkwMTE2MSIvPjwvcGFyYW1ldGVyPjxwYXJh
bWV0ZXIgaWQ9InBlcnNwZWN0aXZlWlBvcyIgdmFsdWU9IjAuMCIgbWluPSIwLjAiIG1heD0iMS4wIiBzdGVwPSIwLjAwOTk5OTk5OTc3NjQ4MjU4MiI+PGxmbyBsZm89
IlN0YXRpYyIgaWQ9InBlcnNwZWN0aXZlWlBvc0xmb1JhdGUiIHZhbHVlPSIxLjAiIG1pbj0iMC4wIiBtYXg9IjEwMC4wIiBzdGVwPSIwLjEwMDAwMDAwMTQ5MDExNjEi
Lz48L3BhcmFtZXRlcj48cGFyYW1ldGVyIGlkPSJwZXJzcGVjdGl2ZVJvdGF0ZVNwZWVkIiB2YWx1ZT0iMC4wIiBtaW49Ii0xLjAiIG1heD0iMS4wIiBzdGVwPSIwLjAw
OTk5OTk5OTc3NjQ4MjU4MiI+PGxmbyBsZm89IlN0YXRpYyIgaWQ9InBlcnNwZWN0aXZlUm90YXRlU3BlZWRMZm9SYXRlIiB2YWx1ZT0iMS4wIiBtaW49IjAuMCIgbWF4
PSIxMDAuMCIgc3RlcD0iMC4xMDAwMDAwMDE0OTAxMTYxIi8+PC9wYXJhbWV0ZXI+PHBhcmFtZXRlciBpZD0icGVyc3BlY3RpdmVSb3RhdGVYIiB2YWx1ZT0iMC4wIiBt
aW49Ii0xLjAiIG1heD0iMS4wIiBzdGVwPSIwLjAwOTk5OTk5OTc3NjQ4MjU4MiI+PGxmbyBsZm89IlN0YXRpYyIgaWQ9InBlcnNwZWN0aXZlUm90YXRlWExmb1JhdGUi
IHZhbHVlPSIxLjAiIG1pbj0iMC4wIiBtYXg9IjEwMC4wIiBzdGVwPSIwLjEwMDAwMDAwMTQ5MDExNjEiLz48L3BhcmFtZXRlcj48cGFyYW1ldGVyIGlkPSJwZXJzcGVj
dGl2ZVJvdGF0ZVkiIHZhbHVlPSIwLjA0OTk5OTk1MjMxNjI4NDE4IiBtaW49Ii0xLjAiIG1heD0iMS4wIiBzdGVwPSIwLjAwOTk5OTk5OTc3NjQ4MjU4MiI+PGxmbyBs
Zm89IlN0YXRpYyIgaWQ9InBlcnNwZWN0aXZlUm90YXRlWUxmb1JhdGUiIHZhbHVlPSIxLjAiIG1pbj0iMC4wIiBtYXg9IjEwMC4wIiBzdGVwPSIwLjEwMDAwMDAwMTQ5
MDExNjEiLz48L3BhcmFtZXRlcj48cGFyYW1ldGVyIGlkPSJwZXJzcGVjdGl2ZVJvdGF0ZVoiIHZhbHVlPSIxLjAiIG1pbj0iLTEuMCIgbWF4PSIxLjAiIHN0ZXA9IjAu
MDA5OTk5OTk5Nzc2NDgyNTgyIj48bGZvIGxmbz0iU3RhdGljIiBpZD0icGVyc3BlY3RpdmVSb3RhdGVaTGZvUmF0ZSIgdmFsdWU9IjEuMCIgbWluPSIwLjAiIG1heD0i
MTAwLjAiIHN0ZXA9IjAuMTAwMDAwMDAxNDkwMTE2MSIvPjwvcGFyYW1ldGVyPjwvZWZmZWN0PjxlZmZlY3QgaWQ9InRyYWNlTWF4IiBwcmVjZWRlbmNlPSIxMSI+PGVu
YWJsZWQgaWQ9InRyYWNlTWF4RW5hYmxlZCIgdmFsdWU9IjAiLz48cGFyYW1ldGVyIGlkPSJ0cmFjZU1heCIgdmFsdWU9IjEuMCIgbWluPSIwLjAiIG1heD0iMS4wIiBz
dGVwPSIwLjAwOTk5OTk5OTc3NjQ4MjU4MiI+PGxmbyBsZm89IlN0YXRpYyIgaWQ9InRyYWNlTWF4TGZvUmF0ZSIgdmFsdWU9IjEuMCIgbWluPSIwLjAiIG1heD0iMTAw
LjAiIHN0ZXA9IjAuMTAwMDAwMDAxNDkwMTE2MSIvPjwvcGFyYW1ldGVyPjwvZWZmZWN0PjxlZmZlY3QgaWQ9InRyYWNlTWluIiBwcmVjZWRlbmNlPSIxMiI+PGVuYWJs
ZWQgaWQ9InRyYWNlTWluRW5hYmxlZCIgdmFsdWU9IjAiLz48cGFyYW1ldGVyIGlkPSJ0cmFjZU1pbiIgdmFsdWU9IjAuMCIgbWluPSIwLjAiIG1heD0iMS4wIiBzdGVw
PSIwLjAwOTk5OTk5OTc3NjQ4MjU4MiI+PGxmbyBsZm89IlN0YXRpYyIgaWQ9InRyYWNlTWluTGZvUmF0ZSIgdmFsdWU9IjEuMCIgbWluPSIwLjAiIG1heD0iMTAwLjAi
IHN0ZXA9IjAuMTAwMDAwMDAxNDkwMTE2MSIvPjwvcGFyYW1ldGVyPjwvZWZmZWN0PjxlZmZlY3QgaWQ9ImZyZXF1ZW5jeSIgcHJlY2VkZW5jZT0iLTEiPjxwYXJhbWV0
ZXIgaWQ9ImZyZXF1ZW5jeSIgdmFsdWU9IjQ0MC4wIiBtaW49IjAuMCIgbWF4PSIxMjAwMC4wIiBzdGVwPSIwLjEwMDAwMDAwMTQ5MDExNjEiPjxsZm8gbGZvPSJTdGF0
aWMiIGlkPSJmcmVxdWVuY3lMZm9SYXRlIiB2YWx1ZT0iMS4wIiBtaW49IjAuMCIgbWF4PSIxMDAuMCIgc3RlcD0iMC4xMDAwMDAwMDE0OTAxMTYxIi8+PC9wYXJhbWV0
ZXI+PC9lZmZlY3Q+PGVmZmVjdCBpZD0idm9sdW1lIiBwcmVjZWRlbmNlPSItMSI+PHBhcmFtZXRlciBpZD0idm9sdW1lIiB2YWx1ZT0iMC43Njk5OTk5ODA5MjY1MTM3
IiBtaW49IjAuMCIgbWF4PSIzLjAiIHN0ZXA9IjAuMDA5OTk5OTk5Nzc2NDgyNTgyIj48bGZvIGxmbz0iU3RhdGljIiBpZD0idm9sdW1lTGZvUmF0ZSIgdmFsdWU9IjEu
MCIgbWluPSIwLjAiIG1heD0iMTAwLjAiIHN0ZXA9IjAuMTAwMDAwMDAxNDkwMTE2MSIvPjwvcGFyYW1ldGVyPjwvZWZmZWN0PjxlZmZlY3QgaWQ9InRocmVzaG9sZCIg
cHJlY2VkZW5jZT0iLTEiPjxwYXJhbWV0ZXIgaWQ9InRocmVzaG9sZCIgdmFsdWU9IjEuMCIgbWluPSIwLjAiIG1heD0iMS4wIiBzdGVwPSIwLjAwOTk5OTk5OTc3NjQ4
MjU4MiI+PGxmbyBsZm89IlN0YXRpYyIgaWQ9InRocmVzaG9sZExmb1JhdGUiIHZhbHVlPSIxLjAiIG1pbj0iMC4wIiBtYXg9IjEwMC4wIiBzdGVwPSIwLjEwMDAwMDAw
MTQ5MDExNjEiLz48L3BhcmFtZXRlcj48L2VmZmVjdD48ZWZmZWN0IGlkPSJvYmpSb3RhdGVTcGVlZCIgcHJlY2VkZW5jZT0iLTEiPjxwYXJhbWV0ZXIgaWQ9Im9ialJv
dGF0ZVNwZWVkIiB2YWx1ZT0iMC4wIiBtaW49Ii0xLjAiIG1heD0iMS4wIiBzdGVwPSIwLjAwOTk5OTk5OTc3NjQ4MjU4MiI+PGxmbyBsZm89IlN0YXRpYyIgaWQ9Im9i
alJvdGF0ZVNwZWVkTGZvUmF0ZSIgdmFsdWU9IjEuMCIgbWluPSIwLjAiIG1heD0iMTAwLjAiIHN0ZXA9IjAuMTAwMDAwMDAxNDkwMTE2MSIvPjwvcGFyYW1ldGVyPjwv
ZWZmZWN0PjxlZmZlY3QgaWQ9Im9ialJvdGF0ZVgiIHByZWNlZGVuY2U9Ii0xIj48cGFyYW1ldGVyIGlkPSJvYmpSb3RhdGVYIiB2YWx1ZT0iMS4wIiBtaW49Ii0xLjAi
IG1heD0iMS4wIiBzdGVwPSIwLjAwOTk5OTk5OTc3NjQ4MjU4MiI+PGxmbyBsZm89IlN0YXRpYyIgaWQ9Im9ialJvdGF0ZVhMZm9SYXRlIiB2YWx1ZT0iMS4wIiBtaW49
IjAuMCIgbWF4PSIxMDAuMCIgc3RlcD0iMC4xMDAwMDAwMDE0OTAxMTYxIi8+PC9wYXJhbWV0ZXI+PC9lZmZlY3Q+PGVmZmVjdCBpZD0ib2JqUm90YXRlWSIgcHJlY2Vk
ZW5jZT0iLTEiPjxwYXJhbWV0ZXIgaWQ9Im9ialJvdGF0ZVkiIHZhbHVlPSIxLjAiIG1pbj0iLTEuMCIgbWF4PSIxLjAiIHN0ZXA9IjAuMDA5OTk5OTk5Nzc2NDgyNTgy
Ij48bGZvIGxmbz0iU3RhdGljIiBpZD0ib2JqUm90YXRlWUxmb1JhdGUiIHZhbHVlPSIxLjAiIG1pbj0iMC4wIiBtYXg9IjEwMC4wIiBzdGVwPSIwLjEwMDAwMDAwMTQ5
MDExNjEiLz48L3BhcmFtZXRlcj48L2VmZmVjdD48ZWZmZWN0IGlkPSJvYmpSb3RhdGVaIiBwcmVjZWRlbmNlPSItMSI+PHBhcmFtZXRlciBpZD0ib2JqUm90YXRlWiIg
dmFsdWU9IjAuMCIgbWluPSItMS4wIiBtYXg9IjEuMCIgc3RlcD0iMC4wMDk5OTk5OTk3NzY0ODI1ODIiPjxsZm8gbGZvPSJTdGF0aWMiIGlkPSJvYmpSb3RhdGVaTGZv
UmF0ZSIgdmFsdWU9IjEuMCIgbWluPSIwLjAiIG1heD0iMTAwLjAiIHN0ZXA9IjAuMTAwMDAwMDAxNDkwMTE2MSIvPjwvcGFyYW1ldGVyPjwvZWZmZWN0PjxlZmZlY3Qg
aWQ9Im9iakZvY2FsTGVuZ3RoIiBwcmVjZWRlbmNlPSItMSI+PHBhcmFtZXRlciBpZD0ib2JqRm9jYWxMZW5ndGgiIHZhbHVlPSIxLjAiIG1pbj0iMC4wIiBtYXg9IjIu
MCIgc3RlcD0iMC4wMDk5OTk5OTk3NzY0ODI1ODIiPjxsZm8gbGZvPSJTdGF0aWMiIGlkPSJvYmpGb2NhbExlbmd0aExmb1JhdGUiIHZhbHVlPSIxLjAiIG1pbj0iMC4w
IiBtYXg9IjEwMC4wIiBzdGVwPSIwLjEwMDAwMDAwMTQ5MDExNjEiLz48L3BhcmFtZXRlcj48L2VmZmVjdD48ZWZmZWN0IGlkPSJsdWFBIiBwcmVjZWRlbmNlPSItMSI+
PHBhcmFtZXRlciBpZD0ibHVhQSIgdmFsdWU9IjIuMjQyNDM5MzM2NDQxNzQ4ZS03IiBtaW49IjAuMCIgbWF4PSIxLjAiIHN0ZXA9IjAuMDAxMDAwMDAwMDQ3NDk3NDUx
Ii8+PC9lZmZlY3Q+PGVmZmVjdCBpZD0ibHVhQiIgcHJlY2VkZW5jZT0iLTEiPjxwYXJhbWV0ZXIgaWQ9Imx1YUIiIHZhbHVlPSIyLjAzNzk5ODQzNjY3Njk1OGUtOSIg
bWluPSIwLjAiIG1heD0iMS4wIiBzdGVwPSIwLjAwMTAwMDAwMDA0NzQ5NzQ1MSIvPjwvZWZmZWN0PjxlZmZlY3QgaWQ9Imx1YUMiIHByZWNlZGVuY2U9Ii0xIj48cGFy
YW1ldGVyIGlkPSJsdWFDIiB2YWx1ZT0iNTAuNDY0MTM4MDMxMDA1ODYiIG1pbj0iMC4wIiBtYXg9IjMwMDAuMCIgc3RlcD0iMC4wMDEwMDAwMDAwNDc0OTc0NTEiLz48
L2VmZmVjdD48ZWZmZWN0IGlkPSJsdWFEIiBwcmVjZWRlbmNlPSItMSI+PHBhcmFtZXRlciBpZD0ibHVhRCIgdmFsdWU9IjAuMDc4MDAwMDAxNjA5MzI1NDEiIG1pbj0i
MC4wIiBtYXg9IjEuMCIgc3RlcD0iMC4wMDEwMDAwMDAwNDc0OTc0NTEiLz48L2VmZmVjdD48ZWZmZWN0IGlkPSJsdWFFIiBwcmVjZWRlbmNlPSItMSI+PHBhcmFtZXRl
ciBpZD0ibHVhRSIgdmFsdWU9IjIuMjg3MDAwMTc5MjkwNzcxIiBtaW49IjAuMCIgbWF4PSIxMC4wIiBzdGVwPSIwLjAwMTAwMDAwMDA0NzQ5NzQ1MSIvPjwvZWZmZWN0
PjxlZmZlY3QgaWQ9Imx1YUYiIHByZWNlZGVuY2U9Ii0xIj48cGFyYW1ldGVyIGlkPSJsdWFGIiB2YWx1ZT0iMi40NDMwMDAwNzgyMDEyOTQiIG1pbj0iMC45OTkwMDAw
MTI4NzQ2MDMzIiBtYXg9IjEwLjAiIHN0ZXA9IjAuMDAxMDAwMDAwMDQ3NDk3NDUxIi8+PC9lZmZlY3Q+PGVmZmVjdCBpZD0ibHVhRyIgcHJlY2VkZW5jZT0iLTEiPjxw
YXJhbWV0ZXIgaWQ9Imx1YUciIHZhbHVlPSIwLjk0OTk5OTk4ODA3OTA3MSIgbWluPSIwLjAiIG1heD0iMS4wIiBzdGVwPSIwLjAwMTAwMDAwMDA0NzQ5NzQ1MSIvPjwv
ZWZmZWN0PjxlZmZlY3QgaWQ9Imx1YUgiIHByZWNlZGVuY2U9Ii0xIj48cGFyYW1ldGVyIGlkPSJsdWFIIiB2YWx1ZT0iMC4xOTYwMDAwMDk3NzUxNjE3IiBtaW49IjAu
MCIgbWF4PSIxLjAiIHN0ZXA9IjAuMDAxMDAwMDAwMDQ3NDk3NDUxIi8+PC9lZmZlY3Q+PGVmZmVjdCBpZD0ibHVhSSIgcHJlY2VkZW5jZT0iLTEiPjxwYXJhbWV0ZXIg
aWQ9Imx1YUkiIHZhbHVlPSIwLjAiIG1pbj0iMC4wIiBtYXg9IjEuMCIgc3RlcD0iMC4wMDEwMDAwMDAwNDc0OTc0NTEiLz48L2VmZmVjdD48ZWZmZWN0IGlkPSJsdWFK
IiBwcmVjZWRlbmNlPSItMSI+PHBhcmFtZXRlciBpZD0ibHVhSiIgdmFsdWU9IjAuMCIgbWluPSIwLjAiIG1heD0iMS4wIiBzdGVwPSIwLjAwMTAwMDAwMDA0NzQ5NzQ1
MSIvPjwvZWZmZWN0PjxlZmZlY3QgaWQ9Imx1YUsiIHByZWNlZGVuY2U9Ii0xIj48cGFyYW1ldGVyIGlkPSJsdWFLIiB2YWx1ZT0iMC4wIiBtaW49IjAuMCIgbWF4PSIx
LjAiIHN0ZXA9IjAuMDAxMDAwMDAwMDQ3NDk3NDUxIi8+PC9lZmZlY3Q+PGVmZmVjdCBpZD0ibHVhTCIgcHJlY2VkZW5jZT0iLTEiPjxwYXJhbWV0ZXIgaWQ9Imx1YUwi
IHZhbHVlPSIwLjAiIG1pbj0iMC4wIiBtYXg9IjEuMCIgc3RlcD0iMC4wMDEwMDAwMDAwNDc0OTc0NTEiLz48L2VmZmVjdD48ZWZmZWN0IGlkPSJsdWFNIiBwcmVjZWRl
bmNlPSItMSI+PHBhcmFtZXRlciBpZD0ibHVhTSIgdmFsdWU9IjAuMCIgbWluPSIwLjAiIG1heD0iMS4wIiBzdGVwPSIwLjAwMTAwMDAwMDA0NzQ5NzQ1MSIvPjwvZWZm
ZWN0PjxlZmZlY3QgaWQ9Imx1YU4iIHByZWNlZGVuY2U9Ii0xIj48cGFyYW1ldGVyIGlkPSJsdWFOIiB2YWx1ZT0iMC4wIiBtaW49IjAuMCIgbWF4PSIxLjAiIHN0ZXA9
IjAuMDAxMDAwMDAwMDQ3NDk3NDUxIi8+PC9lZmZlY3Q+PGVmZmVjdCBpZD0ibHVhTyIgcHJlY2VkZW5jZT0iLTEiPjxwYXJhbWV0ZXIgaWQ9Imx1YU8iIHZhbHVlPSIw
LjAiIG1pbj0iMC4wIiBtYXg9IjEuMCIgc3RlcD0iMC4wMDEwMDAwMDAwNDc0OTc0NTEiLz48L2VmZmVjdD48ZWZmZWN0IGlkPSJsdWFQIiBwcmVjZWRlbmNlPSItMSI+
PHBhcmFtZXRlciBpZD0ibHVhUCIgdmFsdWU9IjAuMCIgbWluPSIwLjAiIG1heD0iMS4wIiBzdGVwPSIwLjAwMTAwMDAwMDA0NzQ5NzQ1MSIvPjwvZWZmZWN0PjxlZmZl
Y3QgaWQ9Imx1YVEiIHByZWNlZGVuY2U9Ii0xIj48cGFyYW1ldGVyIGlkPSJsdWFRIiB2YWx1ZT0iMC4wIiBtaW49IjAuMCIgbWF4PSIxLjAiIHN0ZXA9IjAuMDAxMDAw
MDAwMDQ3NDk3NDUxIi8+PC9lZmZlY3Q+PGVmZmVjdCBpZD0ibHVhUiIgcHJlY2VkZW5jZT0iLTEiPjxwYXJhbWV0ZXIgaWQ9Imx1YVIiIHZhbHVlPSIwLjAiIG1pbj0i
MC4wIiBtYXg9IjEuMCIgc3RlcD0iMC4wMDEwMDAwMDAwNDc0OTc0NTEiLz48L2VmZmVjdD48ZWZmZWN0IGlkPSJsdWFTIiBwcmVjZWRlbmNlPSItMSI+PHBhcmFtZXRl
ciBpZD0ibHVhUyIgdmFsdWU9IjAuMCIgbWluPSIwLjAiIG1heD0iMS4wIiBzdGVwPSIwLjAwMTAwMDAwMDA0NzQ5NzQ1MSIvPjwvZWZmZWN0PjxlZmZlY3QgaWQ9Imx1
YVQiIHByZWNlZGVuY2U9Ii0xIj48cGFyYW1ldGVyIGlkPSJsdWFUIiB2YWx1ZT0iMC4wIiBtaW49IjAuMCIgbWF4PSIxLjAiIHN0ZXA9IjAuMDAxMDAwMDAwMDQ3NDk3
NDUxIi8+PC9lZmZlY3Q+PGVmZmVjdCBpZD0ibHVhVSIgcHJlY2VkZW5jZT0iLTEiPjxwYXJhbWV0ZXIgaWQ9Imx1YVUiIHZhbHVlPSIwLjAiIG1pbj0iMC4wIiBtYXg9
IjEuMCIgc3RlcD0iMC4wMDEwMDAwMDAwNDc0OTc0NTEiLz48L2VmZmVjdD48ZWZmZWN0IGlkPSJsdWFWIiBwcmVjZWRlbmNlPSItMSI+PHBhcmFtZXRlciBpZD0ibHVh
ViIgdmFsdWU9IjAuMCIgbWluPSIwLjAiIG1heD0iMS4wIiBzdGVwPSIwLjAwMTAwMDAwMDA0NzQ5NzQ1MSIvPjwvZWZmZWN0PjxlZmZlY3QgaWQ9Imx1YVciIHByZWNl
ZGVuY2U9Ii0xIj48cGFyYW1ldGVyIGlkPSJsdWFXIiB2YWx1ZT0iMC4wIiBtaW49IjAuMCIgbWF4PSIxLjAiIHN0ZXA9IjAuMDAxMDAwMDAwMDQ3NDk3NDUxIi8+PC9l
ZmZlY3Q+PGVmZmVjdCBpZD0ibHVhWCIgcHJlY2VkZW5jZT0iLTEiPjxwYXJhbWV0ZXIgaWQ9Imx1YVgiIHZhbHVlPSIwLjAiIG1pbj0iMC4wIiBtYXg9IjEuMCIgc3Rl
cD0iMC4wMDEwMDAwMDAwNDc0OTc0NTEiLz48L2VmZmVjdD48ZWZmZWN0IGlkPSJsdWFZIiBwcmVjZWRlbmNlPSItMSI+PHBhcmFtZXRlciBpZD0ibHVhWSIgdmFsdWU9
IjAuMCIgbWluPSIwLjAiIG1heD0iMS4wIiBzdGVwPSIwLjAwMTAwMDAwMDA0NzQ5NzQ1MSIvPjwvZWZmZWN0PjxlZmZlY3QgaWQ9Imx1YVoiIHByZWNlZGVuY2U9Ii0x
Ij48cGFyYW1ldGVyIGlkPSJsdWFaIiB2YWx1ZT0iMC4wIiBtaW49IjAuMCIgbWF4PSIxLjAiIHN0ZXA9IjAuMDAxMDAwMDAwMDQ3NDk3NDUxIi8+PC9lZmZlY3Q+PC9l
ZmZlY3RzPjxib29sZWFuUGFyYW1ldGVycz48cGFyYW1ldGVyIGlkPSJvYmpGaXhlZFJvdGF0ZVgiIHZhbHVlPSIwIi8+PHBhcmFtZXRlciBpZD0ib2JqRml4ZWRSb3Rh
dGVZIiB2YWx1ZT0iMCIvPjxwYXJhbWV0ZXIgaWQ9Im9iakZpeGVkUm90YXRlWiIgdmFsdWU9IjAiLz48cGFyYW1ldGVyIGlkPSJwZXJzcGVjdGl2ZUZpeGVkUm90YXRl
WCIgdmFsdWU9IjEiLz48cGFyYW1ldGVyIGlkPSJwZXJzcGVjdGl2ZUZpeGVkUm90YXRlWSIgdmFsdWU9IjEiLz48cGFyYW1ldGVyIGlkPSJwZXJzcGVjdGl2ZUZpeGVk
Um90YXRlWiIgdmFsdWU9IjAiLz48cGFyYW1ldGVyIGlkPSJtaWRpRW5hYmxlZCIgdmFsdWU9IjAiLz48cGFyYW1ldGVyIGlkPSJpbnB1dEVuYWJsZWQiIHZhbHVlPSIw
Ii8+PC9ib29sZWFuUGFyYW1ldGVycz48ZmxvYXRQYXJhbWV0ZXJzPjxwYXJhbWV0ZXIgaWQ9ImF0dGFja1RpbWUiIHZhbHVlPSIwLjAwNDk5OTk5OTg4ODI0MTI5MSIg
bWluPSIwLjAiIG1heD0iMS4wIiBzdGVwPSIwLjY4OTk5OTk5NzYxNTgxNDIiLz48cGFyYW1ldGVyIGlkPSJhdHRhY2tMZXZlbCIgdmFsdWU9IjEuMCIgbWluPSIwLjAi
IG1heD0iMS4wIiBzdGVwPSIwLjY4OTk5OTk5NzYxNTgxNDIiLz48cGFyYW1ldGVyIGlkPSJhdHRhY2tTaGFwZSIgdmFsdWU9IjUuMCIgbWluPSItNTAuMCIgbWF4PSI1
MC4wIiBzdGVwPSIwLjY4OTk5OTk5NzYxNTgxNDIiLz48cGFyYW1ldGVyIGlkPSJkZWNheVRpbWUiIHZhbHVlPSIwLjA5NDk5OTk5ODgwNzkwNzEiIG1pbj0iMC4wIiBt
YXg9IjEuMCIgc3RlcD0iMC42ODk5OTk5OTc2MTU4MTQyIi8+PHBhcmFtZXRlciBpZD0iZGVjYXlTaGFwZSIgdmFsdWU9Ii0yMC4wIiBtaW49Ii01MC4wIiBtYXg9IjUw
LjAiIHN0ZXA9IjAuNjg5OTk5OTk3NjE1ODE0MiIvPjxwYXJhbWV0ZXIgaWQ9InN1c3RhaW5MZXZlbCIgdmFsdWU9IjAuNjAwMDAwMDIzODQxODU3OSIgbWluPSIwLjAi
IG1heD0iMS4wIiBzdGVwPSIwLjY4OTk5OTk5NzYxNTgxNDIiLz48cGFyYW1ldGVyIGlkPSJyZWxlYXNlVGltZSIgdmFsdWU9IjAuNDAwMDAwMDA1OTYwNDY0NSIgbWlu
PSIwLjAiIG1heD0iMS4wIiBzdGVwPSIwLjY4OTk5OTk5NzYxNTgxNDIiLz48cGFyYW1ldGVyIGlkPSJyZWxlYXNlU2hhcGUiIHZhbHVlPSItNS4wIiBtaW49Ii01MC4w
IiBtYXg9IjUwLjAiIHN0ZXA9IjAuNjg5OTk5OTk3NjE1ODE0MiIvPjwvZmxvYXRQYXJhbWV0ZXJzPjxpbnRQYXJhbWV0ZXJzPjxwYXJhbWV0ZXIgaWQ9InZvaWNlcyIg
dmFsdWU9IjQiIG1pbj0iMSIgbWF4PSIxNiIvPjwvaW50UGFyYW1ldGVycz48cGVyc3BlY3RpdmVGdW5jdGlvbj5jbVYwZFhKdUlIc2dlQ3dnZVN3Z0xURWdMeUFvZUNB
cUlIZ2dLeUI1SUNvZ2VTa2dmUT09PC9wZXJzcGVjdGl2ZUZ1bmN0aW9uPjxmb250IGZhbWlseT0iQWdlbmN5IEZCIiBib2xkPSIwIiBpdGFsaWM9IjAiLz48ZmlsZXM+
PGZpbGUgbmFtZT0iLmx1YSI+Y0doaGMyVmZkMlZwWjJoMElEMGdNQzQ1T1RrNU9RMEtjQ0E5SUhBZ2IzSWdNQTBLZEdGeVoyVjBYMkZ1WjJ4bElEMGdjMnhwWkdWeVgy
SWdLaUJ0WVhSb0xuQnBEUXB3SUQwZ2NHaGhjMlZmZDJWcFoyaDBJQ29nY0NBcklDZ3hJQzBnY0doaGMyVmZkMlZwWjJoMEtTQXFJSFJoY21kbGRGOWhibWRzWlEwS1lY
Wm5YMjFoZUNBOUlHRjJaMTl0WVhnZ2IzSWdMVEVOQ20xaGVDQTlJRzFoZUNCdmNpQXhEUW9OQ205amRHRjJaVjl6YUdsbWRGOWpiM1Z1ZENBOUlHOWpkR0YyWlY5emFH
bG1kRjlqYjNWdWRDQnZjaUF3RFFwdlkzUmhkbVZmYzJocFpuUWdQU0J0WVhSb0xtWnNiMjl5S0hOc2FXUmxjbDlsS1EwS2IyTjBZWFpsWDNOb2FXWjBYMlp5WlhFZ1BT
QnRZWFJvTG1ac2IyOXlLSE5zYVdSbGNsOW1LUTBLYjJOMFlYWmxYM05vYVdaMFgyeGxibWQwYUNBOUlHOWpkR0YyWlY5emFHbG1kQ0FxSUc5amRHRjJaVjl6YUdsbWRG
OW1jbVZ4RFFwdlkzUmhkbVZmYzJocFpuUmxaQ0E5SUc5amRHRjJaVjl6YUdsbWRHVmtJRzl5SUdaaGJITmxEUW9OQ25Od2FXNGdQU0J0WVhSb0xuTnBiaWh3S1EwS0RR
cG1kVzVqZEdsdmJpQnBLSFFwRFFvZ0lDQWdiRzlqWVd3Z2MzVnRJRDBnTUEwS0lDQWdJR1p2Y2lCdUlEMGdNU3dnYldGMGFDNW1iRzl2Y2loMEtTQmtidzBLSUNBZ0lD
QWdJQ0J6ZFcwZ1BTQnpkVzBnS3lCdFlYUm9Mbk5wYmloemNHbHVJQ29nYldGMGFDNXdhU0F2SURJZ0tpQnRZWFJvTG1ac2IyOXlLRzFoZEdndWMzRnlkQ2cwSUNvZ2Jp
QXRJRE1wS1NrTkNpQWdJQ0JsYm1RTkNpQWdJQ0J5WlhSMWNtNGdjM1Z0RFFwbGJtUU5DZzBLWm5WdVkzUnBiMjRnYWloMEtRMEtJQ0FnSUd4dlkyRnNJSE4xYlNBOUlE
QU5DaUFnSUNCbWIzSWdiaUE5SURFc0lHMWhkR2d1Wm14dmIzSW9kQ2tnWkc4TkNpQWdJQ0FnSUNBZ2MzVnRJRDBnYzNWdElDc2diV0YwYUM1amIzTW9jM0JwYmlBcUlH
MWhkR2d1Y0drZ0x5QXlJQ29nYldGMGFDNW1iRzl2Y2lodFlYUm9Mbk54Y25Rb05DQXFJRzRnTFNBektTa3BEUW9nSUNBZ1pXNWtEUW9nSUNBZ2NtVjBkWEp1SUhOMWJR
MEtaVzVrRFFvTkNuUWdQU0IwSUc5eUlEQU5DbkpsYzJWMFgzWmhjbk1nUFNCeVpYTmxkRjkyWVhKeklHOXlJR1poYkhObERRb05DbkJ5WlhaZmRDQTlJSFFOQ21sdVkz
SmxiV1Z1ZENBOUlITnNhV1JsY2w5aElDOGdNVEF3TUNBcUlITnNhV1JsY2w5akRRcHBaaUJ2WTNSaGRtVmZjMmhwWm5SbFpDQjBhR1Z1RFFvZ0lHbHVZM0psYldWdWRD
QTlJR2x1WTNKbGJXVnVkQ0FxSUc5amRHRjJaVjl6YUdsbWRBMEtaVzVrRFFwMElEMGdkQ0FySUdsdVkzSmxiV1Z1ZEEwS0RRcHBYM1FnUFNCcFgzUWdiM0lnYVNoMEtR
MEthVjkwWDNCc2RYTmZiMjVsSUQwZ2FWOTBYM0JzZFhOZmIyNWxJRzl5SUdrb2RDQXJJREVwRFFwcVgzUWdQU0JxWDNRZ2IzSWdhaWgwS1EwS2FsOTBYM0JzZFhOZmIy
NWxJRDBnYWw5MFgzQnNkWE5mYjI1bElHOXlJR29vZENBcklERXBEUW9OQ21ac2IyOXlYM1FnUFNCdFlYUm9MbVpzYjI5eUtIUXBEUXBtYkc5dmNsOXdjbVYyWDNRZ1BT
QnRZWFJvTG1ac2IyOXlLSEJ5WlhaZmRDa05DZzBLYVdZZ2NtVnpaWFJmZG1GeWN5QnZjaUJtYkc5dmNsOTBJSDQ5SUdac2IyOXlYM0J5WlhaZmRDQjBhR1Z1RFFvZ0lH
bHVZM0psYldWdWRHVmtYMko1WDI5dVpTQTlJR1pzYjI5eVgzUWdQVDBnWm14dmIzSmZjSEpsZGw5MElDc2dNUTBLSUNCa1pXTnlaVzFsYm5SbFpGOWllVjl2Ym1VZ1BT
Qm1iRzl2Y2w5MElEMDlJR1pzYjI5eVgzQnlaWFpmZENBdElERU5DaUFnYVdZZ2FXNWpjbVZ0Wlc1MFpXUmZZbmxmYjI1bElIUm9aVzROQ2lBZ0lDQnBYM1FnUFNCcFgz
UmZjR3gxYzE5dmJtVU5DaUFnSUNCcVgzUWdQU0JxWDNSZmNHeDFjMTl2Ym1VTkNpQWdJQ0JwWDNSZmNHeDFjMTl2Ym1VZ1BTQnBYM1JmY0d4MWMxOXZibVVnS3lCdFlY
Um9Mbk5wYmloemNHbHVJQ29nYldGMGFDNXdhU0F2SURJZ0tpQnRZWFJvTG1ac2IyOXlLRzFoZEdndWMzRnlkQ2cwSUNvZ1pteHZiM0pmZENBdElETXBLU2tOQ2lBZ0lD
QnFYM1JmY0d4MWMxOXZibVVnUFNCcVgzUmZjR3gxYzE5dmJtVWdLeUJ0WVhSb0xtTnZjeWh6Y0dsdUlDb2diV0YwYUM1d2FTQXZJRElnS2lCdFlYUm9MbVpzYjI5eUtH
MWhkR2d1YzNGeWRDZzBJQ29nWm14dmIzSmZkQ0F0SURNcEtTa05DaUFnWld4elpRMEtJQ0FnSUdsZmRDQTlJR2tvZENrTkNpQWdJQ0JxWDNRZ1BTQnFLSFFwRFFvZ0lD
QWdhVjkwWDNCc2RYTmZiMjVsSUQwZ2FTaDBJQ3NnTVNrTkNpQWdJQ0JxWDNSZmNHeDFjMTl2Ym1VZ1BTQnFLSFFnS3lBeEtRMEtJQ0FnSUhKbGMyVjBYM1poY25NZ1BT
Qm1ZV3h6WlEwS0lDQmxibVFOQ21WdVpBMEtEUW9OQ2cwS2FTQTlJR2xmZENBcklDaDBJQ1VnTVNrZ0tpQW9hVjkwWDNCc2RYTmZiMjVsSUMwZ2FWOTBLU0F0SURFTkNt
b2dQU0JxWDNRZ0t5QW9kQ0FsSURFcElDb2dLR3BmZEY5d2JIVnpYMjl1WlNBdElHcGZkQ2tOQ2cwS0RRcHRZWGdnUFNCdFlYUm9MbTFoZUNocExDQnRZWFJvTG0xaGVD
aHFMQ0J0WVhncEtRMEtEUXB6WTJGc1pTQTlJSE5zYVdSbGNsOWtEUW9OQ25nZ1BTQnBJQzhnWVhablgyMWhlQTBLZVNBOUlHb2dMeUJoZG1kZmJXRjREUW9OQ21sbUlI
UWdQaUJ6Ykdsa1pYSmZZeUIwYUdWdURRb2dJR2xtSUdGMloxOXRZWGdnUENBd0lIUm9aVzROQ2lBZ0lDQmhkbWRmYldGNElEMGdiV0Y0RFFvZ0lHVnNjMlVOQ2lBZ0lD
QjNaV2xuYUhRZ1BTQnpiR2xrWlhKZlp3MEtJQ0FnSUdGMloxOXRZWGdnUFNCM1pXbG5hSFFnS2lCaGRtZGZiV0Y0SUNzZ0tERWdMU0IzWldsbmFIUXBJQ29nYldGNERR
b2dJR1Z1WkEwS0lDQnRZWGdnUFNBeERRb2dJSFFnUFNBd0RRb2dJSEpsYzJWMFgzWmhjbk1nUFNCMGNuVmxEUW9nSUc5amRHRjJaVjl6YUdsbWRGOWpiM1Z1ZENBOUlH
OWpkR0YyWlY5emFHbG1kRjlqYjNWdWRDQXJJREVOQ2cwS0lDQnBaaUJ2WTNSaGRtVmZjMmhwWm5SbFpDQjBhR1Z1RFFvZ0lDQWdhV1lnYjJOMFlYWmxYM05vYVdaMFgy
TnZkVzUwSUQ0OUlHOWpkR0YyWlY5emFHbG1kRjlzWlc1bmRHZ2dkR2hsYmcwS0lDQWdJQ0FnYjJOMFlYWmxYM05vYVdaMFpXUWdQU0JtWVd4elpRMEtJQ0FnSUNBZ2Iy
TjBZWFpsWDNOb2FXWjBYMk52ZFc1MElEMGdNQTBLSUNBZ0lHVnVaQTBLSUNCbGJITmxEUW9nSUNBZ2FXWWdiMk4wWVhabFgzTm9hV1owWDJOdmRXNTBJRDQ5SUc5amRH
RjJaVjl6YUdsbWRGOW1jbVZ4SUhSb1pXNE5DaUFnSUNBZ0lHOWpkR0YyWlY5emFHbG1kR1ZrSUQwZ2RISjFaUTBLSUNBZ0lDQWdiMk4wWVhabFgzTm9hV1owWDJOdmRX
NTBJRDBnTUEwS0lDQWdJR1Z1WkEwS0lDQmxibVFOQ21WdVpBMEtEUXB5WlhSMWNtNGdleUI0TENCNUlIMD08L2ZpbGU+PC9maWxlcz48L3Byb2plY3Q+AAAAAAAAAAAA
SlVDRVByaXZhdGVEYXRhAAEBQnlwYXNzAAEBAwAdAAAAAAAAAEpVQ0VQcml2YXRlRGF0YQAAAAAAAAAA
AFByb2dyYW0gMQAQAAAA
>
FLOATPOS 0 0 0 0
FXID {9B6C00B4-58B8-41F0-A82F-78596013A96F}
<PARMENV 97:3332937 0 1 0.5 "Lua Slider A / osci-render"
EGUID {F415EFA9-3D16-4ADC-B6D6-63EBCA64C14C}
ACT 1 -1
VIS 1 1 1
LANEHEIGHT 223 0
ARM 1
DEFSHAPE 0 -1 -1
PT 0 0 0
PT 14.21965317 0.29247104 0
PT 16.64739885 0.015 0
PT 61.04046243 0.015 0
PT 77.68786127 0.47445946 0
PT 80.46242775 0.47445946 0
PT 88.78612717 0.23893822 0
PT 110.98265896 0 0
PT 116.53179191 0.23893822 0
PT 122.08092485 0.44607843 0
PT 138.7283237 0.44607843 0
PT 177.57225434 0.7745098 0
PT 180.34682081 0.7745098 0
PT 199.76878613 0 0 0 1
>
<PARMENV 98:3332938 0 1 0.5 "Lua Slider B / osci-render"
EGUID {077C51F6-B21B-439F-8B8C-E78B59F8F013}
ACT 1 -1
VIS 1 1 1
LANEHEIGHT 361 0
ARM 1
DEFSHAPE 0 -1 -1
PT 0 0 0
PT 0 0 5 1 0 0 0.42905214
PT 9.01734104 0.5 0
PT 27.74566474 0.5 0
PT 49.94219653 0 0
PT 55.49132948 0 0
PT 61.04046243 0.5 0
PT 77.68786127 0.29419525 0
PT 80.46242775 0.29419525 5 1 0 0 -0.69535646
PT 88.78612717 1 5 1 0 0 0.59199266
PT 99.88439307 0.5 5 1 0 0 -0.63427785
PT 110.98265896 0 5 1 0 0 0.14254997
PT 122.08092485 0.50081566 0
PT 122.08092485 0.50666361 5 1 0 0 -0.61078608
PT 149.82658959 0.00877574 0
PT 177.57225434 0.5 0 0 1
>
<PARMENV 99:3332939 0 1 0.5 "Lua Slider C / osci-render"
EGUID {4ADB87D4-048F-401F-851C-E9CEEBC82D3D}
ACT 1 -1
VIS 1 1 1
LANEHEIGHT 205 0
ARM 1
DEFSHAPE 0 -1 -1
PT 0 0.02 0
PT 9.71098266 0.02 0
PT 13.87283237 0.88514925 0
PT 61.04046243 0.88514925 0
PT 66.58959537 0.28963291 0
PT 80.46242775 0.28963291 0
PT 88.78612717 0.3536036 0
PT 99.88439306 0.005 5 1 1 0 0.86473736
PT 122.08092486 0.3536036 0
PT 180.34682081 0.3536036 0
PT 199.76878613 0 0
>
<PARMENV 101:3332941 0 1 0.5 "Lua Slider E / osci-render"
EGUID {87D8F02B-1FC2-4336-B2E2-47B3B80C0AA1}
ACT 1 -1
VIS 1 1 1
LANEHEIGHT 0 0
ARM 1
DEFSHAPE 0 -1 -1
PT 16.64739885 0.15870001 0
PT 16.64739885 0.22870001 0
PT 22.19653179 0.22870001 0
PT 22.19653179 0.32370001 0
PT 24.97109827 0.32370001 0
PT 24.97109827 0.41870001 0
PT 27.74566474 0.41870001 0
PT 27.74566474 0.15870001 0
PT 27.74566474 0.22870001 0
PT 33.29479769 0.22870001 0
PT 33.29479769 0.32370001 0
PT 36.06936417 0.32370001 0
PT 36.06936417 0.41870001 0
PT 38.84393064 0.41870001 0
PT 38.84393064 0.15870001 0
PT 38.84393064 0.22870001 0
PT 44.39306358 0.22870001 0
PT 44.39306358 0.32370001 0
PT 47.16763005 0.32370001 0
PT 47.16763005 0.41870001 0
PT 49.94219653 0.41870001 0
PT 49.94219653 0.15870001 0
PT 49.94219653 0.22870001 0
PT 55.49132948 0.22870001 0
PT 55.49132948 0.32370001 0
PT 58.26589595 0.32370001 0
PT 58.26589595 0.41870001 0
PT 61.04046243 0.41870001 0
PT 61.04046243 0.15870001 0
PT 61.04046243 0.22870001 0
PT 122.08092485 0.22870001 0
PT 124.16184971 0.22870001 0
PT 138.7283237 0.22870001 0
PT 138.7283237 0.16370001 0 0 1
>
<PARMENV 103:3332943 0 1 0.5 "Lua Slider G / osci-render"
EGUID {224C2DAC-01DD-4778-B183-5C3E639A1704}
ACT 1 -1
VIS 1 1 1
LANEHEIGHT 347 0
ARM 1
DEFSHAPE 0 -1 -1
PT 0 0.49400002 0
PT 61.04046243 0.49400002 0
PT 66.58959537 0.95 0
PT 180.34682081 0.95 0
PT 180.34682081 0.99390244 0 0 1
>
<PARMENV 49:120910493 0 1 0.5 "3D Perspective / osci-render"
EGUID {76E231B0-54E8-4DB9-9D0E-22D2C6713D17}
ACT 1 -1
VIS 1 1 1
LANEHEIGHT 0 0
ARM 1
DEFSHAPE 0 -1 -1
PT 0 0.02 0
PT 110.98265896 0 0
PT 122.08092485 1 0
PT 138.7283237 1 5 1 0 0 -0.42513327
PT 177.57225434 0 0 0 1
>
<PARMENV 50:714495576 0 1 0.5 "3D Perspective LFO / osci-render"
EGUID {BE5EE10A-7C69-43A3-A4C3-786CB4EC4595}
ACT 1 -1
VIS 1 1 1
LANEHEIGHT 0 0
ARM 1
DEFSHAPE 1 -1 -1
PT 0 0 1
PT 122.08092485 0 1
PT 122.08092485 0.28571429 1
PT 133.17919075 0.28571429 1
PT 133.17919075 0.57142857 1
PT 135.95375722 0.71428571 1
PT 138.7283237 0 1
PT 155.37572254 0 1
>
<PARMENV 51:813312856 0 1 0.5 "3D Perspective LFO Rate / osci-render"
EGUID {4785DA07-0E19-43DF-8B48-EA5171BE9B1A}
ACT 1 -1
VIS 1 1 1
LANEHEIGHT 169 0
ARM 1
DEFSHAPE 0 -1 -1
PT 0 0 0
PT 122.08092485 0 0 0 1
PT 135.95375721 0.875 0 0 1
PT 138.7283237 0.875 0 0 1
PT 149.82658959 0.435 0 0 1
>
<PARMENV 55:292897744 0 1 0.5 "Rotate Speed / osci-render"
EGUID {66E78D8D-B716-4AF2-A868-70D6475BA38D}
ACT 1 -1
VIS 1 1 1
LANEHEIGHT 0 0
ARM 1
DEFSHAPE 0 -1 -1
PT 0 0.5 0
PT 130.40462427 0.5 0
PT 144.27745665 0.545 0 0 1
>
WAK 0 0
>
>
>