diff --git a/docs/Beginner's FAQ.ipynb b/docs/Beginner's FAQ.ipynb index e9af33e..6f583a6 100644 --- a/docs/Beginner's FAQ.ipynb +++ b/docs/Beginner's FAQ.ipynb @@ -26,6 +26,16 @@ " . [Python Data Science Handbook](https://github.com/jakevdp/PythonDataScienceHandbook/blob/master/README.md)\n" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Games and Statistics\n", + " . [Pythonic Perambulations](http://jakevdp.github.io) from Jake Vanderplas, in particular http://jakevdp.github.io/blog/2017/12/18/simulating-chutes-and-ladders/\n", + " \n", + " . [Peter Norvig Studies](https://github.com/norvig/pytudes/tree/master/ipynb) from Peter Norvig, in particular http://norvig.com/sudoku.html" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -36,7 +46,7 @@ " \n", " . [Galery of Interesting Notebooks](https://github.com/ipython/ipython/wiki/A-gallery-of-interesting-IPython-Notebooks)\n", " \n", - " . Videos of Conferences and Trainings: [Python Various Conferences](https://pyvideo.org/), [Pydata Conferences](https://www.youtube.com/user/PyDataTV) , [Scipy Conferences](https://www.youtube.com/user/EnthoughtMedia)\n", + " . Videos of Conferences and Trainings: [Europython](https://www.youtube.com/user/PythonItalia/playlists?shelf_id=4&view=50&sort=dd), [Pydata](https://www.youtube.com/user/PyDataTV) , [Scipy](https://www.youtube.com/user/EnthoughtMedia), [EuroScipy](https://www.youtube.com/channel/UCruMegFU9dg2doEGOUaAWTg), [Pycon 2018](https://www.youtube.com/channel/UCsX05-2sVSH7Nx3zuk3NYuQ/featured) , [Pycon 2017](https://www.youtube.com/channel/UCrJhliKNQ8g0qoE_zvL8eVg), [Pycon 2016](https://www.youtube.com/channel/UCwTD5zJbsQGJN75MwbykYNw)\n", " " ] }, @@ -69,8 +79,11 @@ " \n", " . Altair: [Introduction]](https://altair-viz.github.io/)\n", " \n", - " . mpld3 : [Gallery](https://mpld3.github.io/examples/index.html#example-gallery) \n", + " . plotnine : [Gallery](https://plotnine.readthedocs.io/en/stable/gallery.html) , [Tutotials](https://github.com/has2k1/plotnine/blob/master/doc/external-resources.rst)\n", + " \n", + " . hvplot : [Gallery](https://hvplot.pyviz.org/)\n", "\n", + " . PyQtGraph : [Gallery](http://www.pyqtgraph.org/)\n", " " ] }, @@ -125,9 +138,7 @@ }, { "cell_type": "markdown", - "metadata": { - "collapsed": false - }, + "metadata": {}, "source": [ "\n", "## Winpython\n", @@ -140,9 +151,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [] } @@ -163,9 +172,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.0" + "version": "3.7.0" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/docs/Holoviews_demo_streaming.ipynb b/docs/Holoviews_demo_streaming.ipynb new file mode 100644 index 0000000..fc925e1 --- /dev/null +++ b/docs/Holoviews_demo_streaming.ipynb @@ -0,0 +1,425 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Holoviews 'streams demo'\n", + "\n", + "#### from https://github.com/ioam/holoviews/blob/master/examples/user_guide/15-Streaming_Data.ipynb\n", + "#### (Holoviews/Datashader/Bokeh/Jupyter Notebook)\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# These are examples from Holoviews Developer Philipp Rudiger:\n", + "# https://anaconda.org/philippjfr/working_with_streaming_data/notebook\n", + "# As of 2017-10-26:\n", + "# . this is bleeding-edge,\n", + "# . this Notebook is made to check it can work well also on Windows / WinPython.\n", + "#\n", + "# User may notice we're getting clother to a PyQtGraph style of graphics" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import time\n", + "import numpy as np\n", + "import pandas as pd\n", + "import holoviews as hv\n", + "\n", + "from holoviews.streams import Pipe, Buffer\n", + "\n", + "import streamz\n", + "import streamz.dataframe\n", + "\n", + "hv.extension('bokeh')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Pipe\n", + "\n", + "A Pipe allows data to be pushed into a DynamicMap callback to change a visualization" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Pipe opening\n", + "pipe = Pipe(data=[])\n", + "vector_dmap = hv.DynamicMap(hv.VectorField, streams=[pipe])\n", + "vector_dmap.redim.range(x=(-1, 1), y=(-1, 1))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#Feeding pipe\n", + "x,y = np.mgrid[-10:11,-10:11] * 0.1\n", + "sine_rings = np.sin(x**2+y**2)*np.pi+np.pi\n", + "exp_falloff = 1/np.exp((x**2+y**2)/8)\n", + "\n", + "for i in np.linspace(0, 1, 25):\n", + " time.sleep(0.1)\n", + " pipe.send([x,y,sine_rings*i, exp_falloff])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Buffer\n", + "Buffer automatically accumulates the last N rows of the tabular data, where N is defined by the length.\n", + "\n", + "Plotting backends (such as bokeh) can optimize plot updates by sending just the latest patch. This optimization works only if the data object held by the Buffer is identical to the plotted Element data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "example = pd.DataFrame({'x': [], 'y': [], 'count': []}, columns=['x', 'y', 'count'])\n", + "dfstream = Buffer(example, length=100, index=False)\n", + "curve_dmap = hv.DynamicMap(hv.Curve, streams=[dfstream])\n", + "point_dmap = hv.DynamicMap(hv.Points, streams=[dfstream])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%opts Points [color_index='count', xaxis=None, yaxis=None] (line_color='black', size=5)\n", + "%%opts Curve (line_width=1, color='black')\n", + "curve_dmap * point_dmap" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def gen_brownian():\n", + " x, y, count = 0, 0, 0\n", + " while True:\n", + " x += np.random.randn()\n", + " y += np.random.randn()\n", + " count += 1\n", + " yield pd.DataFrame([(x, y, count)], columns=['x', 'y', 'count'])\n", + "\n", + "brownian = gen_brownian()\n", + "for i in range(200):\n", + " dfstream.send(next(brownian))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "dfstream.clear()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Asynchronous updates Using the Streamz library\n", + "\n", + "Let's start with a fairly simple example:\n", + "- Declare a streamz.Stream and a Pipe object and connect them into a pipeline into which we can push data.\n", + "- Use a sliding_window of 10, which will first wait for 10 sets of stream updates to accumulate. At that point and for every subsequent update, it will apply pd.concat to combine the most recent 10 updates into a new dataframe.\n", + "- Use the sink method on the streamz.Stream to send the resulting collection of 10 updates to Pipe.\n", + "- Declare a DynamicMap that takes the sliding window of concatenated DataFrames and displays it using a Scatter Element.\n", + "- Color the Scatter points by their 'count' and set a range, then display:\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "point_source = streamz.Stream()\n", + "pipe = Pipe(data=[])\n", + "point_source.sliding_window(20).map(pd.concat).sink(pipe.send) # Connect streamz to the Pipe\n", + "scatter_dmap = hv.DynamicMap(hv.Scatter, streams=[pipe])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%opts Scatter [color_index='count', bgcolor='black']\n", + "scatter_dmap.redim.range(y=(-4, 4))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for i in range(100):\n", + " df = pd.DataFrame({'x': np.random.rand(100), 'y': np.random.randn(100), 'count': i},\n", + " columns=['x', 'y', 'count'])\n", + " point_source.emit(df)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### StreamingDataFrame" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### A simple example" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "simple_sdf = streamz.dataframe.Random(freq='10ms', interval='100ms')\n", + "print(simple_sdf.index)\n", + "simple_sdf.example.dtypes" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%opts Curve [width=500 show_grid=True]\n", + "sdf = (simple_sdf-0.5).cumsum()\n", + "hv.DynamicMap(hv.Curve, streams=[Buffer(sdf.x)])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The ``Random`` StreamingDataFrame will asynchronously emit events until it is stopped, which we can do by calling the ``stop`` method." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "simple_sdf.stop()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Making use of the StreamingDataFrame API" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%opts Curve [width=500 show_grid=True]\n", + "source_df = streamz.dataframe.Random(freq='5ms', interval='100ms')\n", + "sdf = (source_df-0.5).cumsum()\n", + "raw_dmap = hv.DynamicMap(hv.Curve, streams=[Buffer(sdf.x)])\n", + "smooth_dmap = hv.DynamicMap(hv.Curve, streams=[Buffer(sdf.x.rolling('500ms').mean())])\n", + "\n", + "raw_dmap.relabel('raw') * smooth_dmap.relabel('smooth')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "source_df.stop()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Controlling the backlog" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from functools import partial\n", + "multi_source = streamz.dataframe.Random(freq='5ms', interval='100ms')\n", + "sdf = (multi_source-0.5).cumsum()\n", + "hv.DynamicMap(hv.Table, streams=[Buffer(sdf.x, length=10)]) +\\\n", + "hv.DynamicMap(partial(hv.BoxWhisker, kdims=[], vdims=['x']), streams=[Buffer(sdf.x, length=100)])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Updating multiple cells" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since a ``StreamingDataFrame`` will emit data until it is stopped we can subscribe multiple plots across different cells to the same stream:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "hv.DynamicMap(hv.Scatter, streams=[Buffer(sdf.x)])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "multi_source.stop()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Applying operations" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "hist_source = streamz.dataframe.Random(freq='5ms', interval='100ms')\n", + "sdf = (hist_source-0.5).cumsum()\n", + "dmap = hv.DynamicMap(hv.Dataset, streams=[Buffer(sdf.x, length=500)])\n", + "hv.operation.histogram(dmap, dimension='x')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "hist_source.stop()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Datashading" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The same approach will also work for the datashader operation letting us datashade the entire ``backlog`` window even if we make it very large:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%opts RGB [width=600]\n", + "from holoviews.operation.datashader import datashade\n", + "from bokeh.palettes import Blues8\n", + "large_source = streamz.dataframe.Random(freq='100us', interval='200ms')\n", + "sdf = (large_source-0.5).cumsum()\n", + "dmap = hv.DynamicMap(hv.Curve, streams=[Buffer(sdf.x, length=100000)])\n", + "datashade(dmap, streams=[hv.streams.PlotSize], normalization='linear', cmap=Blues8)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "large_source.stop()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/Qt_libraries_demo.ipynb b/docs/Qt_libraries_demo.ipynb index 281d182..1b22abd 100644 --- a/docs/Qt_libraries_demo.ipynb +++ b/docs/Qt_libraries_demo.ipynb @@ -6,7 +6,11 @@ "source": [ "# Qt Demo\n", "\n", - "This will launch various Qt compatible packages" + "This will launch various Qt compatible packages\n", + "\n", + "Nota: as of 2018-04-29th, PySide2-5.11 compatibility is\n", + " - Ok for Qtconsole, Qtpy, pyzo, wppm \n", + " - ToDo for PyQtgraph, Spyder, guidata, guiqwt, rx\n" ] }, { @@ -19,9 +23,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "# PyQtgraph (Scientific Graphics and GUI Library for Python)\n", @@ -31,9 +33,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# Guidata (Python library generating graphical user interfaces for easy dataset editing and display)\n", @@ -43,9 +43,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "# Guiqwt (Efficient 2D plotting Python library based on PythonQwt)\n", @@ -54,15 +52,14 @@ }, { "cell_type": "code", - "execution_count": 1, - "metadata": { - "collapsed": true - }, + "execution_count": null, + "metadata": {}, "outputs": [], "source": [ "#QtDemo (if present)\n", "!if exist \"%WINPYDIR%\\Lib\\site-packages\\PyQt5\\examples\\qtdemo\\qtdemo.py\" \"%WINPYDIR%\\python.exe\" \"%WINPYDIR%\\Lib\\site-packages\\PyQt5\\examples\\qtdemo\\qtdemo.py\"\n", - "!if exist \"%WINPYDIR%\\Lib\\site-packages\\PyQt4\\examples\\demos\\qtdemo\\qtdemo.pyw\"\"%WINPYDIR%\\pythonw.exe\" \"%WINPYDIR%\\Lib\\site-packages\\PyQt4\\examples\\demos\\qtdemo\\qtdemo.pyw\"\n" + "!if exist \"%WINPYDIR%\\Lib\\site-packages\\PyQt4\\examples\\demos\\qtdemo\\qtdemo.pyw\"\"%WINPYDIR%\\pythonw.exe\" \"%WINPYDIR%\\Lib\\site-packages\\PyQt4\\examples\\demos\\qtdemo\\qtdemo.pyw\"\n", + "!if exist \"%WINPYDIR%\\Lib\\site-packages\\PySide2\\examples\\datavisualization\" \"%WINPYDIR%\\python.exe\" \"%WINPYDIR%\\Lib\\site-packages\\PySide2\\examples\\datavisualization\\bars3d.py\"\n" ] }, { @@ -75,9 +72,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# from https://github.com/ReactiveX/RxPY/blob/master/examples/timeflie\n", @@ -145,9 +140,16 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, + "outputs": [], + "source": [ + "!pip download --dest C:\\WinP\\a QtPy" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, "outputs": [], "source": [] } @@ -168,7 +170,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.4.4" + "version": "3.6.5" }, "widgets": { "state": {}, @@ -176,5 +178,5 @@ } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/docs/WASM_almar_klein_demo/EuroPython2018_talk_compacted.ipynb b/docs/WASM_almar_klein_demo/EuroPython2018_talk_compacted.ipynb new file mode 100644 index 0000000..feaa267 --- /dev/null +++ b/docs/WASM_almar_klein_demo/EuroPython2018_talk_compacted.ipynb @@ -0,0 +1,707 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# Let’s embrace WebAssembly!\n", + "\n", + "EuroPython 2018 - Edinburgh\n", + "\n", + "Almar Klein \n", + "\n", + "\n", + "Original conference on youtube https://www.youtube.com/watch?v=u2kKxmb9BWs&index=18&list=PL8uoeex94UhFrNUV2m5MigREebUms39U5\n", + "\n", + "This Notebook is:\n", + "- a compacted version of original https://github.com/almarklein/rocket_rust_py\n", + "- best seen in Jupyter Notebook mode + RISE)
\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "\n", + "# WASM has a compact binary format\n", + "\n", + "\n", + "\n", + "#### And a human readable counterpart:\n", + "\n", + "```wasm\n", + "(module\n", + " (type $print (func (param i32))\n", + " (func $main\n", + " (i32.const 42)\n", + " (call $print)\n", + " )\n", + " (start $main)\n", + ")\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "\n", + "# It's safe\n", + "\n", + "\n", + "Because browsers." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# Use case 1: Compile a subset of Python to WASM" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "
" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "def find_prime(nth):\n", + " n = 0\n", + " i = -1 \n", + " while n < nth:\n", + " i = i + 1 \n", + " if i <= 1:\n", + " continue # nope\n", + " elif i == 2:\n", + " n = n + 1\n", + " else:\n", + " gotit = 1\n", + " for j in range(2, i//2+1):\n", + " if i % j == 0:\n", + " gotit = 0\n", + " break\n", + " if gotit == 1:\n", + " n = n + 1 \n", + " return i" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "-" + } + }, + "outputs": [], + "source": [ + "%time find_prime(1000)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# Compiling 'find_prime()' to WASM\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "source": [ + "Note: \n", + "\n", + "* The python-to-wasm compiler is just a POC!\n", + "* Assumes a (reliable) wasm-to-native compiler" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "from ppci import wasm" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "-" + } + }, + "outputs": [], + "source": [ + "from ppci.lang.python import python_to_wasm\n", + "\n", + "def main():\n", + " print(find_prime(1000))\n", + "\n", + "m = python_to_wasm(main, find_prime)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# WASM (somewhat) readable machine code\n", + "m.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# WASM binary format\n", + "m.show_bytes()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# WASM interface\n", + "m.show_interface()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# Run in Browser \n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "-" + } + }, + "outputs": [], + "source": [ + "wasm.run_wasm_in_notebook(m)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# Run in NodeJS\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "-" + } + }, + "outputs": [], + "source": [ + "wasm.run_wasm_in_node(m)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# Compile 'find_prime()' to WASM then to Machine code" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "@wasm.wasmify\n", + "def find_prime2(nth):\n", + " n = 0\n", + " i = -1 \n", + " while n < nth:\n", + " i = i + 1 \n", + " if i <= 1:\n", + " continue # nope\n", + " elif i == 2:\n", + " n = n + 1\n", + " else:\n", + " gotit = 1\n", + " for j in range(2, i//2+1):\n", + " if i % j == 0:\n", + " gotit = 0\n", + " break\n", + " if gotit == 1:\n", + " n = n + 1 \n", + " return i" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "-" + } + }, + "outputs": [], + "source": [ + "%time find_prime2(1000)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# Use case 2: Python as a platform to bind and run WASM modules\n", + " \n", + "... and allow that code to call into Python functions" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# the Rocket game (from https://github.com/aochagavia/rocket_wasm)\n", + "\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# Single binary WASM file (58 KB)\n", + "\n", + "
\n", + " \n", + "
\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from ppci import wasm\n", + "\n", + "m = wasm.Module(open(r'wasm/rocket.wasm', 'rb'))\n", + "m" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "m.show_interface()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "
\n", + "\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "
\n", + "\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "
\n", + "\n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "class PythonRocketGame:\n", + " \n", + " # ...\n", + " \n", + " def wasm_sin(self, a:float) -> float:\n", + " return math.sin(a)\n", + " \n", + " def wasm_cos(self, a:float) -> float:\n", + " return math.cos(a)\n", + " \n", + " def wasm_Math_atan(self, a:float) -> float:\n", + " return math.atan(a)\n", + " \n", + " def wasm_clear_screen(self) -> None:\n", + " # ...\n", + " \n", + " def wasm_draw_bullet(self, x:float, y:float) -> None:\n", + " # ...\n", + " \n", + " def wasm_draw_enemy(self, x:float, y:float) -> None:\n", + " # ...\n", + " \n", + " def wasm_draw_particle(self, x:float, y:float, a:float) -> None:\n", + " # ...\n", + " \n", + " def wasm_draw_player(self, x:float, y:float, a:float) -> None:\n", + " # ...\n", + " \n", + " def wasm_draw_score(self, score:float) -> None:\n", + " # ..." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# Run Rocket in Python with Qt\n", + "\n", + "
\n", + "\n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "-" + } + }, + "outputs": [], + "source": [ + "from rocket_qt import QtRocketGame\n", + "game = QtRocketGame()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# you may have to switch to the QT window appearing on the side of your browser session\n", + "game.run()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# This game is not that hard to play ..." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "source": [ + "## Let's make an AI!" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "source": [ + "#### Game in rust compiled in WASM\n", + "#### AI in C compiled in WASM\n", + "#### Glue in Python" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# let's write the AI in C\n", + "print(open('wasm/ai2.c', 'rt').read())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# use https://wasdk.github.io/WasmFiddle/ to convert ai.c in ai2.wasm\n", + "from ppci import wasm\n", + "ai2 = wasm.Module(open('wasm/ai2.wasm', 'rb'))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ai2.show_interface()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "-" + } + }, + "outputs": [], + "source": [ + "from rocket_ai import AiRocketGame\n", + "game = AiRocketGame(ai2)\n", + "game.run()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "\n", + "# Wrapping up ..." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "## WASM is coming, and its awesome!\n", + "\n", + "\n", + "\n", + "\n", + "* Open, low-level, fast, compact and safe\n", + "* Already works in most browsers\n", + "* Not limited to the web\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "source": [ + "\n", + "\n", + "## We Pythonista's should embrace it!\n", + "\n", + "* E.g. run a Python VM in the browser\n", + "* E.g. compile subset of Python to fast, crossplatform code\n", + "* E.g. use Python as a platform to bind and execute WASM modules" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "source": [ + "## Thanks!" + ] + } + ], + "metadata": { + "anaconda-cloud": {}, + "celltoolbar": "Slideshow", + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.0" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/WASM_almar_klein_demo/LICENSE b/docs/WASM_almar_klein_demo/LICENSE new file mode 100644 index 0000000..f8d75ba --- /dev/null +++ b/docs/WASM_almar_klein_demo/LICENSE @@ -0,0 +1,25 @@ +BSD 2-Clause License + +Copyright (c) 2018, Almar Klein +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/docs/WASM_almar_klein_demo/README.md b/docs/WASM_almar_klein_demo/README.md new file mode 100644 index 0000000..d6be6f6 --- /dev/null +++ b/docs/WASM_almar_klein_demo/README.md @@ -0,0 +1,13 @@ +# The Rocket game, implemented in Rust, running in Python, via WASM + +A [Rocket game implemented in Rust](https://github.com/aochagavia/rocket_wasm) +is compiled to WebAssembly (WASM). We take the resulting `.wasm` file, and run +it in Python using [PPCI](https://bitbucket.org/windel/ppci/). + +* `rocket.wasm`: the wasm module compiled from Rust (by Adolfo). +* `rocket.py`: the Python code to wrap the above in an app. +* `info.py`: print some info about the wasm module. +* `rocket.html`: for reference, the (nearly) original html/js to run the wasm module in the browser (standalone HTML). + +In this exercise, we take a wasm module as-is, inspect its imports and exports +(WASM clearly defines these), and use this API to run the module in a Python app. diff --git a/docs/WASM_almar_klein_demo/images/assembly1.png b/docs/WASM_almar_klein_demo/images/assembly1.png new file mode 100644 index 0000000..a286bf2 Binary files /dev/null and b/docs/WASM_almar_klein_demo/images/assembly1.png differ diff --git a/docs/WASM_almar_klein_demo/images/assembly2.png b/docs/WASM_almar_klein_demo/images/assembly2.png new file mode 100644 index 0000000..0f4059a Binary files /dev/null and b/docs/WASM_almar_klein_demo/images/assembly2.png differ diff --git a/docs/WASM_almar_klein_demo/images/github_rocket.png b/docs/WASM_almar_klein_demo/images/github_rocket.png new file mode 100644 index 0000000..978f039 Binary files /dev/null and b/docs/WASM_almar_klein_demo/images/github_rocket.png differ diff --git a/docs/WASM_almar_klein_demo/images/github_rocket_wasm.png b/docs/WASM_almar_klein_demo/images/github_rocket_wasm.png new file mode 100644 index 0000000..cba2da4 Binary files /dev/null and b/docs/WASM_almar_klein_demo/images/github_rocket_wasm.png differ diff --git a/docs/WASM_almar_klein_demo/images/github_rocket_wasm_html.png b/docs/WASM_almar_klein_demo/images/github_rocket_wasm_html.png new file mode 100644 index 0000000..3c86f9f Binary files /dev/null and b/docs/WASM_almar_klein_demo/images/github_rocket_wasm_html.png differ diff --git a/docs/WASM_almar_klein_demo/images/github_rocket_wasm_js.png b/docs/WASM_almar_klein_demo/images/github_rocket_wasm_js.png new file mode 100644 index 0000000..41229e8 Binary files /dev/null and b/docs/WASM_almar_klein_demo/images/github_rocket_wasm_js.png differ diff --git a/docs/WASM_almar_klein_demo/images/py_as_platform.png b/docs/WASM_almar_klein_demo/images/py_as_platform.png new file mode 100644 index 0000000..83838ba Binary files /dev/null and b/docs/WASM_almar_klein_demo/images/py_as_platform.png differ diff --git a/docs/WASM_almar_klein_demo/images/py_to_browser.png b/docs/WASM_almar_klein_demo/images/py_to_browser.png new file mode 100644 index 0000000..7f817b2 Binary files /dev/null and b/docs/WASM_almar_klein_demo/images/py_to_browser.png differ diff --git a/docs/WASM_almar_klein_demo/images/pysnippet_to_wasm.png b/docs/WASM_almar_klein_demo/images/pysnippet_to_wasm.png new file mode 100644 index 0000000..c68603a Binary files /dev/null and b/docs/WASM_almar_klein_demo/images/pysnippet_to_wasm.png differ diff --git a/docs/WASM_almar_klein_demo/images/python.png b/docs/WASM_almar_klein_demo/images/python.png new file mode 100644 index 0000000..2f1715f Binary files /dev/null and b/docs/WASM_almar_klein_demo/images/python.png differ diff --git a/docs/WASM_almar_klein_demo/images/rocket_in_js.png b/docs/WASM_almar_klein_demo/images/rocket_in_js.png new file mode 100644 index 0000000..8987f37 Binary files /dev/null and b/docs/WASM_almar_klein_demo/images/rocket_in_js.png differ diff --git a/docs/WASM_almar_klein_demo/images/rocket_in_py.png b/docs/WASM_almar_klein_demo/images/rocket_in_py.png new file mode 100644 index 0000000..5f17347 Binary files /dev/null and b/docs/WASM_almar_klein_demo/images/rocket_in_py.png differ diff --git a/docs/WASM_almar_klein_demo/images/rocketgame.png b/docs/WASM_almar_klein_demo/images/rocketgame.png new file mode 100644 index 0000000..135903b Binary files /dev/null and b/docs/WASM_almar_klein_demo/images/rocketgame.png differ diff --git a/docs/WASM_almar_klein_demo/images/start_rise_mode.png b/docs/WASM_almar_klein_demo/images/start_rise_mode.png new file mode 100644 index 0000000..59bd7c3 Binary files /dev/null and b/docs/WASM_almar_klein_demo/images/start_rise_mode.png differ diff --git a/docs/WASM_almar_klein_demo/images/wasm.png b/docs/WASM_almar_klein_demo/images/wasm.png new file mode 100644 index 0000000..6964c19 Binary files /dev/null and b/docs/WASM_almar_klein_demo/images/wasm.png differ diff --git a/docs/WASM_almar_klein_demo/info.py b/docs/WASM_almar_klein_demo/info.py new file mode 100644 index 0000000..c40a6a8 --- /dev/null +++ b/docs/WASM_almar_klein_demo/info.py @@ -0,0 +1,43 @@ +""" +Display some info about the WASM module, like imports and exports. +""" + +from ppci import wasm + +filename = 'rocket.wasm' + +wasm_data = open(filename, 'rb').read() +wasm_module = wasm.Module(wasm_data) + +print(f'WASM file {filename} is {len(wasm_data)/2**10:0.1f} KiB') + +wasm_module.show_interface() + + +# types = wasm_module['type'] +# imports = wasm_module['import'] +# exports = wasm_module['export'] +# functions = wasm_module['func'] +# +# +# print('\nImports:') +# for c in imports: +# #c.show() +# assert c.kind == 'func' # we assume only func imports +# sig = types[c.info[0].index] +# print(f' {c.modname}.{c.name}:'.ljust(20), f'{sig.params} -> {sig.result}') +# +# print('\nExports:') +# for c in exports: +# # c.show() +# if c.kind == 'func': +# func = functions[c.ref.index - functions[0].id] +# sig = types[func.ref.index] +# print(f' {c.name}:'.ljust(20), f'{sig.params} -> {sig.result}') +# else: +# print(f' {c.kind} "{c.name}"') +# +# +# # Export it yto textual form +# with open('rocket.wat', 'wt') as f: +# f.write(wasm_module.to_string()) diff --git a/docs/WASM_almar_klein_demo/play_python.py b/docs/WASM_almar_klein_demo/play_python.py new file mode 100644 index 0000000..fa4a5c8 --- /dev/null +++ b/docs/WASM_almar_klein_demo/play_python.py @@ -0,0 +1,74 @@ +""" +You should probably just ignore this ... +""" + +import struct +from ppci.wasm.wasm2ppci import create_memories +from ppci.wasm.runtime import create_runtime +from ppci.wasm import + +wasm_data = open('rocket.wasm', 'rb').read() +wasm_module = Module(wasm_data) +memories = create_memories(wasm_module) +rt = create_runtime() +# print(memories) + +def current_memory(): + size = (mem0_end - mem0_start) // (1 << 16) + print('current memory', size) + return size +rt['current_memory'] = current_memory + +def grow_memory(delta): + global mem0_end + assert mem0_end == gen_rocket_wasm.heap_top() + print('grow_memory', delta) + gen_rocket_wasm.heap.extend(bytes(delta * 64 * 1024)) + mem0_end = gen_rocket_wasm.heap_top() + size = (mem0_end - mem0_start) // (1 << 16) + print('new memory size', size) + return size + # assert mem0_end == len(gen_rocket_wasm.heap) + 0x10000000 + +rt['grow_memory'] = grow_memory + +def get_str(ptr): + """ Get a 0 terminated string """ + data = [] + while True: + b = gen_rocket_wasm.read_mem(ptr, 1)[0] + if b == 0: + break + else: + data.append(b) + ptr += 1 + return bytes(data).decode('ascii') + +def trace_func(ptr): + # Lookup name: + print('Trace function entrance:', get_str(ptr)) + +rt['trace'] = trace_func + +print(rt) +import gen_rocket_wasm + +# Fixup external functions: +for name, f in rt.items(): + # TODO: make a choice between those two options: + gen_rocket_wasm.externals[name] = f + setattr(gen_rocket_wasm, name, f) + +# Attach memory: +mem0_start = gen_rocket_wasm.heap_top() +print('memory size:', len(memories[0]), hex(mem0_start)) +gen_rocket_wasm.heap.extend(memories[0]) +mem0_end = gen_rocket_wasm.heap_top() +wasm_mem0 = gen_rocket_wasm.wasm_mem0_address +gen_rocket_wasm.store_i32(mem0_start, wasm_mem0) + +# rocket_wasm.func_pointers[] +gen_rocket_wasm._run_init() + +gen_rocket_wasm.draw() + diff --git a/docs/WASM_almar_klein_demo/rise.css b/docs/WASM_almar_klein_demo/rise.css new file mode 100644 index 0000000..6bd83be --- /dev/null +++ b/docs/WASM_almar_klein_demo/rise.css @@ -0,0 +1,3 @@ +.reveal h1, .reveal h2, .reveal h3 { + font-family: ubuntu, helvetica, sans-serif; +} \ No newline at end of file diff --git a/docs/WASM_almar_klein_demo/rocket.html b/docs/WASM_almar_klein_demo/rocket.html new file mode 100644 index 0000000..87db3ce --- /dev/null +++ b/docs/WASM_almar_klein_demo/rocket.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + diff --git a/docs/WASM_almar_klein_demo/rocket.py b/docs/WASM_almar_klein_demo/rocket.py new file mode 100644 index 0000000..4a43ddf --- /dev/null +++ b/docs/WASM_almar_klein_demo/rocket.py @@ -0,0 +1,89 @@ +""" Run rocket.wasm in Python! + +* Load the wasm module, compile to PPCI IR and then to native. +* Load the native object in memory, feed it the API it needs (wasm imports). +* Implement a Python app that uses the exposed API (wasm exports). + +At the moment, the game is text based. But we can use Qt or SDL2 (or tk?) +to run it visually, and also feed in user interaction. +""" + +import math +import logging +import time +import io +import os + +from ppci import wasm +from ppci.utils.reporting import HtmlReportGenerator + +#logging.basicConfig(level=logging.DEBUG) # this produces so much output that it slows things down a lot +logging.basicConfig(level=logging.WARN) + +# Load the wasm module +filename = os.path.join(os.path.dirname(__file__), 'wasm', 'rocket.wasm') +game_data = open(filename, 'rb').read() +game_module = wasm.Module(game_data) + + +class BaseRocketGame: + """ Simple rocket game, text based, without user input. + """ + + def __init__(self, game_module=game_module): + # Create import dict from methods + env = {} + for name in dir(self): + if name.startswith('wasm_'): + env[name[5:]] = getattr(self, name) + self.imports = dict(env=env) + + # Instantiate game module + self.game = wasm.instantiate(game_module, self.imports, target='python') + + def run(self): + """ Enter the game's main loop. + """ + self.game.exports.resize(100, 100) + while True: + time.sleep(0.5) + self.game.exports.update(0.1) + self.game.exports.draw() + + # We never call these ... + # self.game.exports.toggle_shoot(b) + # self.game.exports.toggle_turn_left(b) + # self.game.exports.toggle_turn_right(b) + # self.game.exports.toggle_boost(b) + + def wasm_sin(self, a:float) -> float: + return math.sin(a) + + def wasm_cos(self, a:float) -> float: + return math.cos(a) + + def wasm_Math_atan(self, a:float) -> float: + return math.atan(a) + + def wasm_clear_screen(self) -> None: + print('clearing screen') + + def wasm_draw_bullet(self, x:float, y:float) -> None: + print(f'There is a bullet at {x}, {y}') + + def wasm_draw_enemy(self, x:float, y:float) -> None: + print(f'There is an enemy at {x}, {y}') + + def wasm_draw_particle(self, x:float, y:float, a:float) -> None: + print(f'There is a particle at {x}, {y} angle {a}') + + def wasm_draw_player(self, x:float, y:float, a:float) -> None: + print(f'The player is at {x}, {y} angle {a}') + + def wasm_draw_score(self, score:float) -> None: + print(f'The score is {score}!') + + +if __name__ == '__main__': + game = BaseRocketGame() + game.run() diff --git a/docs/WASM_almar_klein_demo/rocket_ai.py b/docs/WASM_almar_klein_demo/rocket_ai.py new file mode 100644 index 0000000..6354096 --- /dev/null +++ b/docs/WASM_almar_klein_demo/rocket_ai.py @@ -0,0 +1,57 @@ +import os +import time +from ppci import wasm +from rocket_qt import QtRocketGame + +# Load the wasm ai modules +filename1 = os.path.join(os.path.dirname(__file__), 'wasm', 'ai1.wat') +ai_data1 = open(filename1, 'rt').read() +ai_module1 = wasm.Module(ai_data1) +# +filename2 = os.path.join(os.path.dirname(__file__), 'wasm', 'ai2.wasm') +ai_data2 = open(filename2, 'rb').read() +ai_module2 = wasm.Module(ai_data2) + + +class AiRocketGame(QtRocketGame): + + def __init__(self, ai_module=ai_module1): + super().__init__() + self.ai = wasm.instantiate(ai_module, self.imports, target='native') + + def paintEvent(self, event): + super().paintEvent(event) + self.ai.exports.update() + + def wasm_debug(self, a:float, b:float) -> None: + print('debug', a, b) + + ## Imported methods of the AI module, which are exports to the game module + + def wasm_toggle_shoot(self, b:int) -> None: + self.game.exports.toggle_shoot(bool(b)) + + def wasm_toggle_turn_left(self, b:int) -> None: + self.game.exports.toggle_turn_left(bool(b)) + + def wasm_toggle_turn_right(self, b:int) -> None: + self.game.exports.toggle_turn_right(bool(b)) + + ## Imported methods of the game module, which are exports to the AI module + + def wasm_clear_screen(self) -> None: # [] -> [] + super().wasm_clear_screen() + self.ai.exports.clear_screen() + + def wasm_draw_enemy(self, x: float, y: float) -> None: # [(0, 'f64'), (1, 'f64')] -> [] + super().wasm_draw_enemy(x, y) + self.ai.exports.draw_enemy(x, y) + + def wasm_draw_player(self, x: float, y: float, a: float) -> None: # [(0, 'f64'), (1, 'f64'), (2, 'f64')] -> [] + super().wasm_draw_player(x, y, a) + self.ai.exports.draw_player(x, y, a) + + +if __name__ == '__main__': + game = AiRocketGame(ai_module2) + game.run() diff --git a/docs/WASM_almar_klein_demo/rocket_pt.bat b/docs/WASM_almar_klein_demo/rocket_pt.bat new file mode 100644 index 0000000..16874fd --- /dev/null +++ b/docs/WASM_almar_klein_demo/rocket_pt.bat @@ -0,0 +1 @@ +python c:\dev\pylib\rocket_rust_py\rocket_pt.py \ No newline at end of file diff --git a/docs/WASM_almar_klein_demo/rocket_pt.py b/docs/WASM_almar_klein_demo/rocket_pt.py new file mode 100644 index 0000000..7dbcb29 --- /dev/null +++ b/docs/WASM_almar_klein_demo/rocket_pt.py @@ -0,0 +1,157 @@ +""" Run the rocket game on prompt-toolkit. + +Not a lot of fun to play this way, but hey, it works over SSH! +""" + +import sys +import time +import math + +import prompt_toolkit as pt + +from rocket import BaseRocketGame + + +assert pt.__version__ > '2' + + +styles = { + 'default': 'bg:#ffffff #000000', + 'enemy': 'bg:#ffff00 #000000', + 'bullet': 'bg:#ffffff #ff0000', + 'particle': 'bg:#ffffff #888888', + 'player': 'bg:#0000ff #000000', + } + + +class RocketUiControl(pt.layout.UIControl): + + def __init__(self, paintfunc): + self._paintfunc = paintfunc + + def create_content(self, width, height): + lines = self._paintfunc(width, height) + # lines = [pt.formatted_text.to_formatted_text(line) for line in lines] + lines = [[(styles[d], s) for d, s in line] for line in lines] + return pt.layout.UIContent(lambda i: lines[i], len(lines), show_cursor=False) + + +class PtRocketGame(BaseRocketGame): + """ Rocket game with prompt_toolkit providing a drawing canvas and user input, + so that it can run in the command line, and over SSH. + """ + + def __init__(self): + BaseRocketGame.__init__(self) + + # Global key bindings. + bindings = pt.key_binding.KeyBindings() + for key in ('space', 'up', 'left', 'right', 'escape', 'q'): + bindings.add(key)(self._press_key) + + control = RocketUiControl(self.paint) + container = pt.layout.containers.Window(content=control) + self._app = pt.application.Application(layout=pt.layout.Layout(container), + key_bindings=bindings, + min_redraw_interval=0.01, + mouse_support=False, full_screen=True) + + self._size = 0, 0 + self._lasttime = time.time() + self._highscore = 0 + self._size_scale = 10 + self._key_release = {} + + def run(self): + self._app.run() + + def paint(self, w, h): + + # Resize? + if (w, h) != self._size: + self._size = w, h + self.game.exports.resize(w*self._size_scale, h*self._size_scale) + + # Init lines + lines = [] + for y in range(h+1): + lines.append([('default', ' ') for i in range(w+1)]) + self._lines = lines + + # Update and draw + progress = time.time() - self._lasttime + self._lasttime = time.time() + self.game.exports.update(progress) + self.game.exports.draw() + + self._release_keys() + self._app.invalidate() # Request a new paint event (also see app.min_redraw_interval) + return self._lines + + ## Events going into the WASM module + + def _press_key(self, event): + try: + key = event.key_sequence[0].key + except Exception: + return + self._toggle_key(key, True) + self._key_release[key] = time.time() + 0.1 + + def _release_keys(self): + now = time.time() + for key in list(self._key_release.keys()): + t = self._key_release[key] + if t < now: + self._key_release.pop(key) + self._toggle_key(key, False) + + def _toggle_key(self, key, b): + if key in (' ', 'space'): + self.game.exports.toggle_shoot(b) + elif key == 'left': + self.game.exports.toggle_turn_left(b) + elif key == 'right': + self.game.exports.toggle_turn_right(b) + elif key == 'up': + self.game.exports.toggle_boost(b) + elif key in ('q', 'escape'): + self._app.exit() + + ## Events generated by WASM module + + def wasm_clear_screen(self) -> None: # [] -> [] + pass # not needed, we start with a blanc canvas each iteration + + def _round_pos(self, x, y): + x = max(0, min(int(x / self._size_scale + 0.5), self._size[0])) + y = max(0, min(int(y / self._size_scale + 0.5), self._size[1])) + return x, y + + def wasm_draw_bullet(self, x: float, y: float) -> None: # [(0, 'f64'), (1, 'f64')] -> [] + x, y = self._round_pos(x, y) + self._lines[y][x] = 'bullet', '*' + + def wasm_draw_enemy(self, x: float, y: float) -> None: # [(0, 'f64'), (1, 'f64')] -> [] + x, y = self._round_pos(x, y) + self._lines[y][x] = 'enemy', 'O' + + def wasm_draw_particle(self, x: float, y: float, a: float) -> None: # [(0, 'f64'), (1, 'f64'), (2, 'f64')] -> [] + x, y = self._round_pos(x, y) + self._lines[y][x] = 'particle', '.' + + def wasm_draw_player(self, x: float, y: float, a: float) -> None: # [(0, 'f64'), (1, 'f64'), (2, 'f64')] -> [] + x, y = self._round_pos(x, y) + self._lines[y][x] = 'player', 'X' + + def wasm_draw_score(self, score: float) -> None: # env.draw_score: [(0, 'f64')] -> [] + score = int(score) + self._highscore = max(self._highscore, score) + text = f'Score: {score}, HighScore: {self._highscore}' + for i in range(len(text)): + self._lines[0][i] = 'default', text[i] + + +if __name__ == '__main__': + game = PtRocketGame() + game.run() diff --git a/docs/WASM_almar_klein_demo/rocket_qt.py b/docs/WASM_almar_klein_demo/rocket_qt.py new file mode 100644 index 0000000..9bb8a4e --- /dev/null +++ b/docs/WASM_almar_klein_demo/rocket_qt.py @@ -0,0 +1,105 @@ +""" Run the rocket game on Qt. +""" + +import time +import math + +from qtpy import QtWidgets, QtCore, QtGui + +from rocket import BaseRocketGame + +REL_SIZE = 2.5 + + +class QtRocketGame(BaseRocketGame, QtWidgets.QWidget): + """ Rocket game with Qt providing a drawing canvas and user input. + """ + + def __init__(self): + if not hasattr(QtWidgets, '_app'): + QtWidgets._app = QtWidgets.QApplication([]) + QtWidgets.QWidget.__init__(self, None) + BaseRocketGame.__init__(self) + self.setWindowTitle("Rocket, written in Rust, compiled to WASM, running in Python, with Qt") + self.resize(900, 700) + + self._lasttime = time.time() + self._highscore = 0 + + def run(self): + self.show() + QtWidgets.qApp.exec_() + + def paintEvent(self, event): + self._painter = QtGui.QPainter() + self._painter.begin(self) + self._painter.setRenderHint(QtGui.QPainter.Antialiasing) + + progress = time.time() - self._lasttime + self._lasttime = time.time() + self.game.exports.update(progress) + self.game.exports.draw() + + self._painter.end() + self.update() # Request a new paint event + + ## Events going into the WASM module + + def resizeEvent(self, event): + self.game.exports.resize(self.width(), self.height()) + + def keyPressEvent(self, event): + self._toggleKey(event, True) + + def keyReleaseEvent(self, event): + self._toggleKey(event, False) + + def _toggleKey(self, event, b): + if event.key() == QtCore.Qt.Key_Space: + self.game.exports.toggle_shoot(b) + elif event.key() == QtCore.Qt.Key_Left: + self.game.exports.toggle_turn_left(b) + elif event.key() == QtCore.Qt.Key_Right: + self.game.exports.toggle_turn_right(b) + elif event.key() == QtCore.Qt.Key_Up: + self.game.exports.toggle_boost(b) + + ## Events generated by WASM module + + def wasm_clear_screen(self) -> None: # [] -> [] + pass # not needed, we start with a blanc canvas each iteration + + def wasm_draw_bullet(self, x: float, y: float) -> None: # [(0, 'f64'), (1, 'f64')] -> [] + self._painter.setBrush(QtGui.QColor('#0f0')) + self._painter.drawEllipse(x, y, REL_SIZE*3, REL_SIZE*3) + + def wasm_draw_enemy(self, x: float, y: float) -> None: # [(0, 'f64'), (1, 'f64')] -> [] + self._painter.setBrush(QtGui.QColor('#ff0')) + self._painter.drawEllipse(x, y, REL_SIZE*14, REL_SIZE*14) + + def wasm_draw_particle(self, x: float, y: float, a: float) -> None: # [(0, 'f64'), (1, 'f64'), (2, 'f64')] -> [] + self._painter.setBrush(QtGui.QColor('#f04')) + self._painter.drawEllipse(x, y, REL_SIZE, REL_SIZE) + + def wasm_draw_player(self, x: float, y: float, a: float) -> None: # [(0, 'f64'), (1, 'f64'), (2, 'f64')] -> [] + p = QtGui.QPainterPath() + self._painter.save() + self._painter.translate(x, y) + self._painter.rotate(a*180/math.pi-90) + self._painter.translate(-x, -y) + p.moveTo(x, y + 12*REL_SIZE) + p.lineTo(x - 6*REL_SIZE, y - 6*REL_SIZE) + p.lineTo(x + 6*REL_SIZE, y - 6*REL_SIZE) + p.lineTo(x, y + 12*REL_SIZE) + self._painter.fillPath(p, QtGui.QBrush(QtGui.QColor("#00f"))) + self._painter.restore() + + def wasm_draw_score(self, score: float) -> None: # env.draw_score: [(0, 'f64')] -> [] + score = int(score) + self._highscore = max(self._highscore, score) + self._painter.drawText(0, 20, f'Score: {score}, HighScore: {self._highscore}') + + +if __name__ == '__main__': + game = QtRocketGame() + game.run() diff --git a/docs/WASM_almar_klein_demo/wasm/ai1.wat b/docs/WASM_almar_klein_demo/wasm/ai1.wat new file mode 100644 index 0000000..a97261a --- /dev/null +++ b/docs/WASM_almar_klein_demo/wasm/ai1.wat @@ -0,0 +1,18 @@ +(module + (import "env" "toggle_shoot" (func $toggle_shoot (param i32))) + (import "env" "toggle_turn_left" (func $toggle_turn_left (param i32))) + (import "env" "toggle_turn_right" (func $toggle_turn_right (param i32))) + (export "clear_screen" (func $clear_screen)) + (export "draw_player" (func $draw_player)) + (export "draw_enemy" (func $draw_enemy)) + (export "update" (func $update)) + (func $clear_screen) + (func $draw_player (param $0 f32) (param $1 f32) (param $2 f32)) + (func $draw_enemy (param $0 f32) (param $1 f32)) + (func $update + (i32.const 1) + (call $toggle_turn_left) + (i32.const 1) + (call $toggle_shoot) + ) +) \ No newline at end of file diff --git a/docs/WASM_almar_klein_demo/wasm/ai2.c b/docs/WASM_almar_klein_demo/wasm/ai2.c new file mode 100644 index 0000000..bf45abe --- /dev/null +++ b/docs/WASM_almar_klein_demo/wasm/ai2.c @@ -0,0 +1,62 @@ +#include +#include + +/* Imports */ +void toggle_shoot(int b); +void toggle_turn_left(int b); +void toggle_turn_right(int b); +float Math_atan(float v); +//void debug(float a, float b); + +const float pi = 3.14159265358979; + +float playerX = 0.0; +float playerY = 0.0; +float playerA = 0.0; + +float nearestEnemyX = 0.0; +float nearestEnemyY = 0.0; +float nearestEnemyD = 99999999999999999.0; + +void clear_screen() { // reset nearest enemy + nearestEnemyX = 0.0; + nearestEnemyY = 0.0; + nearestEnemyD = 99999999999999999.0; +} + +void draw_player(float x, float y, float a) { + playerX = x; + playerY = y; + while (a > 2*pi) a -= 2*pi; + while (a < 0) a += 2*pi2; + playerA = a; +} + +void draw_enemy(float x, float y) { + float d = (x - playerX) * (x - playerX) + (y - playerY) * (y - playerY); + if (d < nearestEnemyD) { + nearestEnemyX = x; + nearestEnemyY = y; + nearestEnemyD = d; + } +} + +void update() { + float enemyA = Math_atan((nearestEnemyY - playerY) / (nearestEnemyX - playerX)); + + float a = enemyA - playerA; + while (a > +pi) a -= 2*pi; + while (a < -pi) a += 2*pi; + + if (fabsf(a) < 1.0) { + toggle_shoot(1); + } else { + toggle_shoot(0); + } + + if (a > 0.0) { + toggle_turn_left(0); toggle_turn_right(1); + } else { + toggle_turn_left(1); toggle_turn_right(0); + } +} diff --git a/docs/WASM_almar_klein_demo/wasm/ai2.wasm b/docs/WASM_almar_klein_demo/wasm/ai2.wasm new file mode 100644 index 0000000..75abeaa Binary files /dev/null and b/docs/WASM_almar_klein_demo/wasm/ai2.wasm differ diff --git a/docs/WASM_almar_klein_demo/wasm/rocket.wasm b/docs/WASM_almar_klein_demo/wasm/rocket.wasm new file mode 100644 index 0000000..6a550a2 Binary files /dev/null and b/docs/WASM_almar_klein_demo/wasm/rocket.wasm differ diff --git a/docs/WASM_almar_klein_demo/wasm/rocket.wat b/docs/WASM_almar_klein_demo/wasm/rocket.wat new file mode 100644 index 0000000..a72570f --- /dev/null +++ b/docs/WASM_almar_klein_demo/wasm/rocket.wat @@ -0,0 +1,24983 @@ +(module + (type 0 (func (param i32 i32 i32) (result i32))) + (type 1 (func)) + (type 2 (func (param i32))) + (type 3 (func (param i32) (result i64))) + (type 4 (func (param i32 i32 i32))) + (type 5 (func (param i32 i32))) + (type 6 (func (param i32 i32) (result i32))) + (type 7 (func (param f64) (result f64))) + (type 8 (func (param f64 f64))) + (type 9 (func (param f64 f64 f64))) + (type 10 (func (param f64))) + (type 11 (func (param i32 i32 i32 i32))) + (type 12 (func (param i32 i32 f64 f64))) + (type 13 (func (param i32) (result i32))) + (type 14 (func (result i32))) + (type 15 (func (param i32 i32 i32 i32 i32 i32) (result i32))) + (type 16 (func (param i32 i32 i32 i32 i32 i32 i32) (result i32))) + (import "env" "Math_atan" (func 0 (type 7))) + (import "env" "clear_screen" (func 1 (type 1))) + (import "env" "cos" (func 2 (type 7))) + (import "env" "draw_bullet" (func 3 (type 8))) + (import "env" "draw_enemy" (func 4 (type 8))) + (import "env" "draw_particle" (func 5 (type 9))) + (import "env" "draw_player" (func 6 (type 9))) + (import "env" "draw_score" (func 7 (type 10))) + (import "env" "sin" (func 8 (type 7))) + (table 0 72 72 anyfunc) + (memory 0 17) + (export "memory" (memory 0)) + (export "resize" (func 22)) + (export "draw" (func 23)) + (export "update" (func 24)) + (export "toggle_shoot" (func 25)) + (export "toggle_boost" (func 26)) + (export "toggle_turn_left" (func 27)) + (export "toggle_turn_right" (func 28)) + (export "alloc" (func 30)) + (export "dealloc" (func 31)) + (export "dealloc_str" (func 32)) + (start 147) + (elem (i32.const 0) 146 20 19 29 36 91 56 131 130 98 126 127 116 89 120 115 114 125 142 16 10 15 17 9 45 96 93 95 52 66 53 48 46 47 49 51 58 57 41 65 97 92 94 71 73 90 87 61 80 81 82 83 84 70 69 74 88 102 50 43 44 104 105 106 133 132 134 135 136 117 118 119) + (func 9 (type 3) + (i64.const 1229646359891580772) + ) + (func 10 (type 5) (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i64 i64) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 128) + (i32.sub) + (tee_local 13) + (i32.store align=4 offset=4) + (get_local 0) + (i32.load align=4) + (tee_local 0) + (i32.load align=1) + (set_local 2) + (get_local 0) + (i32.const 0) + (i32.store align=1) + (block emptyblock) + (get_local 2) + (i32.eqz) + (br_if 0) + (get_local 13) + (i64.const 42) + (i64.store align=8 offset=16) + (get_local 13) + (i64.const 42) + (i64.store align=8 offset=8) + (get_local 13) + (i32.const 96) + (i32.add) + (get_local 13) + (i32.const 8) + (i32.add) + (f64.const 1024.0) + (f64.const 600.0) + (call 21) + (get_local 13) + (i32.const 64) + (i32.add) + (i32.const 16) + (i32.add) + (tee_local 0) + (get_local 13) + (i32.const 96) + (i32.add) + (i32.const 16) + (i32.add) + (tee_local 7) + (i64.load align=8) + (i64.store align=8) + (get_local 13) + (i32.const 64) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 6) + (get_local 13) + (i32.const 96) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 8) + (i64.load align=8) + (i64.store align=8) + (get_local 13) + (get_local 13) + (i64.load align=8 offset=96) + (i64.store align=8 offset=64) + (block emptyblock) + (i32.const 32000) + (call 107) + (tee_local 3) + (i32.eqz) + (br_if 0) + (get_local 7) + (get_local 0) + (i64.load align=8) + (i64.store align=8) + (get_local 8) + (get_local 6) + (i64.load align=8) + (i64.store align=8) + (get_local 13) + (get_local 13) + (i64.load align=8 offset=64) + (i64.store align=8 offset=96) + (get_local 0) + (get_local 7) + (i64.load align=8) + (i64.store align=8) + (get_local 6) + (get_local 8) + (i64.load align=8) + (i64.store align=8) + (get_local 13) + (get_local 13) + (i64.load align=8 offset=96) + (i64.store align=8 offset=64) + (get_local 13) + (i32.const 40) + (i32.add) + (i32.const 16) + (i32.add) + (get_local 0) + (i64.load align=8) + (i64.store align=8) + (get_local 13) + (i32.const 40) + (i32.add) + (i32.const 8) + (i32.add) + (get_local 6) + (i64.load align=8) + (i64.store align=8) + (get_local 13) + (get_local 13) + (i64.load align=8 offset=64) + (i64.store align=8 offset=40) + (i32.const 1) + (call 107) + (tee_local 4) + (i32.eqz) + (br_if 0) + (get_local 4) + (i32.const 0) + (i32.store8 align=1) + (get_local 13) + (i32.const 64) + (i32.add) + (i32.const 16) + (i32.add) + (tee_local 0) + (get_local 13) + (i32.const 40) + (i32.add) + (i32.const 16) + (i32.add) + (i64.load align=8) + (i64.store align=8) + (get_local 13) + (i32.const 64) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 5) + (get_local 13) + (i32.const 40) + (i32.add) + (i32.const 8) + (i32.add) + (i64.load align=8) + (i64.store align=8) + (get_local 13) + (get_local 13) + (i64.load align=8 offset=40) + (i64.store align=8 offset=64) + (get_local 13) + (i32.const 96) + (i32.add) + (i32.const 16) + (i32.add) + (tee_local 6) + (get_local 0) + (i64.load align=8) + (tee_local 14) + (i64.store align=8) + (get_local 13) + (i32.const 96) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 7) + (get_local 5) + (i64.load align=8) + (tee_local 15) + (i64.store align=8) + (get_local 13) + (i32.const 8) + (i32.add) + (i32.const 16) + (i32.add) + (tee_local 8) + (get_local 14) + (i64.store align=8) + (get_local 13) + (i32.const 8) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 9) + (get_local 15) + (i64.store align=8) + (get_local 13) + (get_local 13) + (i64.load align=8 offset=64) + (tee_local 14) + (i64.store align=8 offset=96) + (get_local 13) + (get_local 14) + (i64.store align=8 offset=8) + (get_local 13) + (i32.const 83) + (i32.add) + (get_local 8) + (i64.load align=8) + (i64.store align=1) + (get_local 13) + (i32.const 75) + (i32.add) + (get_local 9) + (i64.load align=8) + (i64.store align=1) + (get_local 13) + (get_local 13) + (i64.load align=8 offset=8) + (i64.store align=1 offset=67) + (get_local 13) + (i32.const 96) + (i32.add) + (i32.const 26) + (i32.add) + (tee_local 10) + (get_local 13) + (i32.const 64) + (i32.add) + (i32.const 26) + (i32.add) + (i32.load8_u align=1) + (i32.store8 align=1) + (get_local 13) + (i32.const 96) + (i32.add) + (i32.const 24) + (i32.add) + (tee_local 11) + (get_local 13) + (i32.const 64) + (i32.add) + (i32.const 24) + (i32.add) + (i32.load16_u align=1) + (i32.store16 align=2) + (get_local 6) + (get_local 0) + (i64.load align=1) + (i64.store align=4) + (get_local 7) + (get_local 5) + (i64.load align=1) + (i64.store align=4) + (get_local 13) + (get_local 13) + (i64.load align=1 offset=64) + (i64.store align=4 offset=96) + (get_local 13) + (i32.const 8) + (i32.add) + (i32.const 26) + (i32.add) + (tee_local 5) + (get_local 10) + (i32.load8_u align=1) + (i32.store8 align=1) + (get_local 13) + (i32.const 8) + (i32.add) + (i32.const 24) + (i32.add) + (tee_local 12) + (get_local 11) + (i32.load16_u align=2) + (i32.store16 align=2) + (get_local 8) + (get_local 6) + (i64.load align=4) + (i64.store align=4) + (get_local 9) + (get_local 7) + (i64.load align=4) + (i64.store align=4) + (get_local 13) + (get_local 13) + (i64.load align=4 offset=96) + (i64.store align=4 offset=8) + (i32.const 152) + (call 107) + (tee_local 0) + (i32.eqz) + (br_if 0) + (get_local 10) + (get_local 5) + (i32.load8_u align=1) + (i32.store8 align=1) + (get_local 11) + (get_local 12) + (i32.load16_u align=2) + (i32.store16 align=2) + (get_local 6) + (get_local 8) + (i64.load align=4) + (i64.store align=4) + (get_local 7) + (get_local 9) + (i64.load align=4) + (i64.store align=4) + (get_local 13) + (get_local 13) + (i64.load align=4 offset=8) + (i64.store align=4 offset=96) + (get_local 0) + (get_local 4) + (i32.store align=4) + (get_local 0) + (i32.const 0) + (i32.store8 align=1 offset=4) + (get_local 0) + (i32.const 31) + (i32.add) + (get_local 10) + (i32.load8_u align=1) + (i32.store8 align=1) + (get_local 0) + (i32.const 29) + (i32.add) + (get_local 11) + (i32.load16_u align=2) + (i32.store16 align=1) + (get_local 0) + (i32.const 21) + (i32.add) + (get_local 6) + (i64.load align=4) + (i64.store align=1) + (get_local 0) + (i32.const 13) + (i32.add) + (get_local 7) + (i64.load align=4) + (i64.store align=1) + (get_local 0) + (get_local 13) + (i64.load align=4 offset=96) + (i64.store align=1 offset=5) + (get_local 0) + (i64.const 4652218415073722368) + (i64.store align=1 offset=32) + (get_local 0) + (i64.const 4648488871632306176) + (i64.store align=1 offset=40) + (get_local 0) + (get_local 3) + (i32.store align=1 offset=48) + (get_local 0) + (i32.const 1000) + (i32.store align=1 offset=52) + (get_local 0) + (i32.const 0) + (i32.store align=1 offset=56) + (get_local 0) + (i32.const 8) + (i32.store align=1 offset=60) + (get_local 0) + (i32.const 0) + (i32.store align=1 offset=64) + (get_local 0) + (i32.const 0) + (i32.store align=1 offset=68) + (get_local 0) + (i32.const 8) + (i32.store align=1 offset=72) + (get_local 0) + (i32.const 0) + (i32.store align=1 offset=76) + (get_local 0) + (i32.const 0) + (i32.store align=1 offset=80) + (get_local 0) + (i32.const 0) + (i32.store align=1 offset=88) + (get_local 0) + (i64.const 42) + (i64.store align=1 offset=96) + (get_local 0) + (i64.const 42) + (i64.store align=1 offset=104) + (get_local 0) + (i64.const 0) + (i64.store align=1 offset=112) + (get_local 0) + (i64.const 0) + (i64.store align=1 offset=120) + (get_local 0) + (i64.const 0) + (i64.store align=1 offset=128) + (get_local 0) + (i64.const 0) + (i64.store align=1 offset=136) + (get_local 0) + (i32.const 0) + (i32.store align=1 offset=144) + (get_local 2) + (i32.load align=4) + (get_local 0) + (i32.store align=4) + (i32.const 0) + (get_local 13) + (i32.const 128) + (i32.add) + (i32.store align=4 offset=4) + (return) + (end) + (unreachable) + (unreachable) + (end) + (i32.const 192) + (call 139) + (unreachable) + ) + (func 11 (type 4) (local i32) + (block emptyblock) + (i32.const 8) + (call 107) + (tee_local 3) + (br_if 0) + (unreachable) + (unreachable) + (end) + (get_local 3) + (get_local 1) + (i32.store align=4 offset=4) + (get_local 3) + (get_local 0) + (i32.store align=4) + (get_local 3) + (i32.const 340) + (get_local 2) + (call 78) + (unreachable) + ) + (func 12 (type 2) (local i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 4) + (i32.store align=4 offset=4) + (i32.const 4) + (set_local 3) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.const 4) + (i32.add) + (i32.load align=4) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.const 48) + (i32.mul) + (tee_local 3) + (i32.const -1) + (i32.le_s) + (br_if 2) + (get_local 0) + (i32.load align=4) + (get_local 1) + (i32.const 24) + (i32.mul) + (i32.const 8) + (get_local 3) + (i32.const 8) + (get_local 4) + (call 145) + (tee_local 2) + (i32.eqz) + (br_if 3) + (get_local 1) + (i32.const 1) + (i32.shl) + (set_local 3) + (br 1) + (end) + (i32.const 96) + (call 107) + (tee_local 2) + (i32.eqz) + (br_if 3) + (end) + (get_local 0) + (get_local 2) + (i32.store align=4) + (get_local 0) + (i32.const 4) + (i32.add) + (get_local 3) + (i32.store align=4) + (i32.const 0) + (get_local 4) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (return) + (end) + (i32.const 648) + (call 139) + (unreachable) + (end) + (unreachable) + (unreachable) + (end) + (unreachable) + (unreachable) + ) + (func 13 (type 2) (local i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 4) + (i32.store align=4 offset=4) + (i32.const 4) + (set_local 3) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.const 4) + (i32.add) + (i32.load align=4) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.const 6) + (i32.shl) + (tee_local 3) + (i32.const -1) + (i32.le_s) + (br_if 2) + (get_local 0) + (i32.load align=4) + (get_local 1) + (i32.const 5) + (i32.shl) + (i32.const 8) + (get_local 3) + (i32.const 8) + (get_local 4) + (call 145) + (tee_local 2) + (i32.eqz) + (br_if 3) + (get_local 1) + (i32.const 1) + (i32.shl) + (set_local 3) + (br 1) + (end) + (i32.const 128) + (call 107) + (tee_local 2) + (i32.eqz) + (br_if 3) + (end) + (get_local 0) + (get_local 2) + (i32.store align=4) + (get_local 0) + (i32.const 4) + (i32.add) + (get_local 3) + (i32.store align=4) + (i32.const 0) + (get_local 4) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (return) + (end) + (i32.const 648) + (call 139) + (unreachable) + (end) + (unreachable) + (unreachable) + (end) + (unreachable) + (unreachable) + ) + (func 14 (type 2) (local i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 4) + (i32.store align=4 offset=4) + (i32.const 4) + (set_local 3) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.const 4) + (i32.add) + (i32.load align=4) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.const 48) + (i32.mul) + (tee_local 3) + (i32.const -1) + (i32.le_s) + (br_if 2) + (get_local 0) + (i32.load align=4) + (get_local 1) + (i32.const 24) + (i32.mul) + (i32.const 8) + (get_local 3) + (i32.const 8) + (get_local 4) + (call 145) + (tee_local 2) + (i32.eqz) + (br_if 3) + (get_local 1) + (i32.const 1) + (i32.shl) + (set_local 3) + (br 1) + (end) + (i32.const 96) + (call 107) + (tee_local 2) + (i32.eqz) + (br_if 3) + (end) + (get_local 0) + (get_local 2) + (i32.store align=4) + (get_local 0) + (i32.const 4) + (i32.add) + (get_local 3) + (i32.store align=4) + (i32.const 0) + (get_local 4) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (return) + (end) + (i32.const 648) + (call 139) + (unreachable) + (end) + (unreachable) + (unreachable) + (end) + (unreachable) + (unreachable) + ) + (func 15 (type 5) (local i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 2) + (i32.store align=4 offset=4) + (get_local 2) + (get_local 0) + (i32.store align=4 offset=12) + (get_local 2) + (i32.const 12) + (i32.add) + (get_local 1) + (call 10) + (i32.const 0) + (get_local 2) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + ) + (func 16 (type 2) + + ) + (func 17 (type 2) + + ) + (func 18 (type 5) (local i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 64) + (i32.sub) + (tee_local 2) + (i32.store align=4 offset=4) + (get_local 2) + (i32.const 368) + (i32.store align=4 offset=8) + (get_local 2) + (i32.const 43) + (i32.store align=4 offset=12) + (get_local 2) + (get_local 1) + (i32.store8 align=1 offset=20) + (get_local 2) + (get_local 0) + (i32.store align=4 offset=16) + (get_local 2) + (i32.const 48) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 1) + (i32.store align=4) + (get_local 2) + (i32.const 2) + (i32.store align=4 offset=52) + (get_local 2) + (get_local 2) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=56) + (get_local 2) + (i32.const 6944) + (i32.store align=4 offset=32) + (get_local 2) + (i32.const 2) + (i32.store align=4 offset=28) + (get_local 2) + (get_local 2) + (i32.const 8) + (i32.add) + (i32.store align=4 offset=48) + (get_local 2) + (i32.const 500) + (i32.store align=4 offset=24) + (get_local 2) + (i32.const 24) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 2) + (get_local 2) + (i32.const 48) + (i32.add) + (i32.store align=4 offset=40) + (get_local 2) + (i32.const 44) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 2) + (i32.const 24) + (i32.add) + (i32.const 560) + (call 141) + (unreachable) + ) + (func 19 (type 6) + (get_local 1) + (get_local 0) + (i32.load align=4) + (get_local 0) + (i32.load align=4 offset=4) + (call 123) + ) + (func 20 (type 6) + (i32.const 688) + (i32.const 25) + (get_local 1) + (call 124) + ) + (func 21 (type 12) (local i64 i64 i64 i64 i64 i64 i64) + (block emptyblock) + (block emptyblock) + (get_local 2) + (f64.const 0.0) + (f64.gt) + (i32.eqz) + (br_if 0) + (get_local 1) + (get_local 1) + (i64.load align=8 offset=8) + (i64.const 1) + (i64.or) + (tee_local 4) + (get_local 1) + (i64.load align=8) + (tee_local 6) + (i64.const 6364136223846793005) + (i64.mul) + (i64.add) + (tee_local 7) + (i64.const 6364136223846793005) + (i64.mul) + (get_local 4) + (i64.add) + (tee_local 5) + (i64.store align=8) + (get_local 3) + (f64.const 0.0) + (f64.gt) + (i32.eqz) + (br_if 1) + (get_local 1) + (get_local 4) + (get_local 5) + (i64.const 6364136223846793005) + (i64.mul) + (get_local 4) + (i64.add) + (tee_local 8) + (i64.const 6364136223846793005) + (i64.mul) + (get_local 4) + (i64.add) + (tee_local 9) + (i64.const 6364136223846793005) + (i64.mul) + (i64.add) + (tee_local 10) + (i64.const 6364136223846793005) + (i64.mul) + (get_local 4) + (i64.add) + (i64.store align=8) + (get_local 0) + (get_local 6) + (i64.const 18) + (i64.shr_u) + (get_local 6) + (i64.xor) + (i64.const 27) + (i64.shr_u) + (i32.wrap/i64) + (get_local 6) + (i64.const 59) + (i64.shr_u) + (i32.wrap/i64) + (i32.rotr) + (i64.extend_u/i32) + (i64.const 32) + (i64.shl) + (i64.const 4503595332403200) + (i64.and) + (get_local 7) + (i64.const 18) + (i64.shr_u) + (get_local 7) + (i64.xor) + (i64.const 27) + (i64.shr_u) + (i32.wrap/i64) + (get_local 7) + (i64.const 59) + (i64.shr_u) + (i32.wrap/i64) + (i32.rotr) + (i64.extend_u/i32) + (i64.or) + (i64.const 4607182418800017408) + (i64.or) + (f64.reinterpret/i64) + (f64.const -1.0) + (f64.add) + (get_local 2) + (f64.mul) + (f64.const 0.0) + (f64.add) + (f64.store align=8) + (get_local 0) + (get_local 8) + (i64.const 18) + (i64.shr_u) + (get_local 8) + (i64.xor) + (i64.const 27) + (i64.shr_u) + (i32.wrap/i64) + (get_local 8) + (i64.const 59) + (i64.shr_u) + (i32.wrap/i64) + (i32.rotr) + (i64.extend_u/i32) + (get_local 5) + (i64.const 18) + (i64.shr_u) + (get_local 5) + (i64.xor) + (i64.const 27) + (i64.shr_u) + (i32.wrap/i64) + (get_local 5) + (i64.const 59) + (i64.shr_u) + (i32.wrap/i64) + (i32.rotr) + (i64.extend_u/i32) + (i64.const 32) + (i64.shl) + (i64.const 4503595332403200) + (i64.and) + (i64.or) + (i64.const 4607182418800017408) + (i64.or) + (f64.reinterpret/i64) + (f64.const -1.0) + (f64.add) + (get_local 3) + (f64.mul) + (f64.const 0.0) + (f64.add) + (f64.store align=8 offset=8) + (get_local 0) + (get_local 9) + (i64.const 18) + (i64.shr_u) + (get_local 9) + (i64.xor) + (i64.const 27) + (i64.shr_u) + (i32.wrap/i64) + (get_local 9) + (i64.const 59) + (i64.shr_u) + (i32.wrap/i64) + (i32.rotr) + (i64.extend_u/i32) + (i64.const 32) + (i64.shl) + (i64.const 4503595332403200) + (i64.and) + (get_local 10) + (i64.const 18) + (i64.shr_u) + (get_local 10) + (i64.xor) + (i64.const 27) + (i64.shr_u) + (i32.wrap/i64) + (get_local 10) + (i64.const 59) + (i64.shr_u) + (i32.wrap/i64) + (i32.rotr) + (i64.extend_u/i32) + (i64.or) + (i64.const 4607182418800017408) + (i64.or) + (f64.reinterpret/i64) + (f64.const -1.0) + (f64.add) + (f64.store align=8 offset=16) + (return) + (end) + (i32.const 608) + (i32.const 37) + (i32.const 592) + (call 11) + (unreachable) + (end) + (i32.const 608) + (i32.const 37) + (i32.const 592) + (call 11) + (unreachable) + ) + (func 22 (type 8) (local i32 i32 i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 80) + (i32.sub) + (tee_local 7) + (i32.store align=4 offset=4) + (get_local 7) + (i64.const 42) + (i64.store align=8 offset=24) + (get_local 7) + (i64.const 42) + (i64.store align=8 offset=16) + (get_local 7) + (i32.const 56) + (i32.add) + (get_local 7) + (i32.const 16) + (i32.add) + (get_local 0) + (get_local 1) + (call 21) + (get_local 7) + (i32.const 32) + (i32.add) + (i32.const 16) + (i32.add) + (tee_local 3) + (get_local 7) + (i32.const 56) + (i32.add) + (i32.const 16) + (i32.add) + (tee_local 4) + (i64.load align=8) + (i64.store align=8) + (get_local 7) + (i32.const 32) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 5) + (get_local 7) + (i32.const 56) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 6) + (i64.load align=8) + (i64.store align=8) + (get_local 7) + (get_local 7) + (i64.load align=8 offset=56) + (i64.store align=8 offset=32) + (block emptyblock) + (block emptyblock) + (i32.const 32000) + (call 107) + (tee_local 2) + (i32.eqz) + (br_if 0) + (get_local 4) + (get_local 3) + (i64.load align=8) + (i64.store align=8) + (get_local 6) + (get_local 5) + (i64.load align=8) + (i64.store align=8) + (get_local 7) + (get_local 7) + (i64.load align=8 offset=32) + (i64.store align=8 offset=56) + (get_local 3) + (get_local 4) + (i64.load align=8) + (i64.store align=8) + (get_local 5) + (get_local 6) + (i64.load align=8) + (i64.store align=8) + (get_local 7) + (get_local 7) + (i64.load align=8 offset=56) + (i64.store align=8 offset=32) + (get_local 4) + (get_local 3) + (i64.load align=8) + (i64.store align=8) + (get_local 6) + (get_local 5) + (i64.load align=8) + (i64.store align=8) + (get_local 7) + (get_local 7) + (i64.load align=8 offset=32) + (i64.store align=8 offset=56) + (get_local 7) + (i32.const 800) + (i32.store align=4 offset=12) + (i32.const 0) + (i32.load align=4 offset=804) + (i32.const 3) + (i32.eq) + (br_if 1) + (get_local 7) + (get_local 7) + (i32.const 12) + (i32.add) + (i32.store align=4 offset=16) + (get_local 7) + (get_local 7) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=32) + (i32.const 804) + (get_local 7) + (i32.const 32) + (i32.add) + (i32.const 320) + (call 103) + (br 1) + (end) + (unreachable) + (unreachable) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=800) + (tee_local 3) + (i32.load align=4) + (tee_local 4) + (i32.load8_u align=1) + (br_if 0) + (get_local 4) + (i32.const 1) + (i32.store8 align=1) + (call 86) + (tee_local 4) + (i32.eqz) + (br_if 1) + (block emptyblock) + (block emptyblock) + (get_local 4) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 4) + (i32.const 4) + (i32.add) + (set_local 5) + (get_local 4) + (i32.load align=4 offset=4) + (set_local 4) + (br 1) + (end) + (get_local 4) + (i64.const 1) + (i64.store align=4) + (get_local 4) + (i32.const 4) + (i32.add) + (set_local 5) + (i32.const 0) + (set_local 4) + (end) + (get_local 5) + (get_local 4) + (i32.store align=1) + (get_local 3) + (i32.const 4) + (i32.add) + (i32.load8_u align=1) + (br_if 2) + (get_local 7) + (get_local 4) + (i32.const 0) + (i32.ne) + (i32.store8 align=1 offset=32) + (block emptyblock) + (get_local 3) + (i32.const 52) + (i32.add) + (i32.load align=4) + (i32.eqz) + (br_if 0) + (get_local 3) + (i32.const 48) + (i32.add) + (i32.load align=4) + (call 109) + (end) + (block emptyblock) + (get_local 3) + (i32.const 64) + (i32.add) + (i32.load align=4) + (i32.eqz) + (br_if 0) + (get_local 3) + (i32.const 60) + (i32.add) + (i32.load align=4) + (call 109) + (end) + (block emptyblock) + (get_local 3) + (i32.const 76) + (i32.add) + (tee_local 4) + (i32.load align=4) + (i32.eqz) + (br_if 0) + (get_local 3) + (i32.const 72) + (i32.add) + (i32.load align=4) + (call 109) + (end) + (get_local 3) + (get_local 7) + (i64.load align=8 offset=56) + (i64.store align=8 offset=8) + (get_local 3) + (i32.const 24) + (i32.add) + (get_local 7) + (i32.const 56) + (i32.add) + (i32.const 16) + (i32.add) + (i64.load align=8) + (i64.store align=8) + (get_local 3) + (i32.const 16) + (i32.add) + (get_local 7) + (i32.const 56) + (i32.add) + (i32.const 8) + (i32.add) + (i64.load align=8) + (i64.store align=8) + (get_local 3) + (i32.const 32) + (i32.add) + (get_local 0) + (f64.store align=8) + (get_local 3) + (i32.const 40) + (i32.add) + (get_local 1) + (f64.store align=8) + (get_local 3) + (i32.const 48) + (i32.add) + (get_local 2) + (i32.store align=4) + (get_local 3) + (i32.const 52) + (i32.add) + (i32.const 1000) + (i32.store align=4) + (get_local 3) + (i32.const 56) + (i32.add) + (i32.const 0) + (i32.store align=4) + (get_local 3) + (i32.const 60) + (i32.add) + (i32.const 8) + (i32.store align=4) + (get_local 3) + (i32.const 64) + (i32.add) + (i32.const 0) + (i32.store align=4) + (get_local 3) + (i32.const 68) + (i32.add) + (i32.const 0) + (i32.store align=4) + (get_local 3) + (i32.const 72) + (i32.add) + (i32.const 8) + (i32.store align=4) + (get_local 4) + (i32.const 0) + (i32.store align=4) + (get_local 3) + (i32.const 80) + (i32.add) + (i32.const 0) + (i32.store align=4) + (get_local 3) + (i32.const 88) + (i32.add) + (i32.const 0) + (i32.store align=4) + (get_local 3) + (i32.const 96) + (i32.add) + (i64.const 42) + (i64.store align=8) + (get_local 3) + (i32.const 104) + (i32.add) + (i64.const 42) + (i64.store align=8) + (get_local 3) + (i32.const 112) + (i32.add) + (i64.const 0) + (i64.store align=8) + (get_local 3) + (i32.const 120) + (i32.add) + (i64.const 0) + (i64.store align=8) + (get_local 3) + (i32.const 128) + (i32.add) + (i64.const 0) + (i64.store align=8) + (get_local 3) + (i32.const 136) + (i32.add) + (i64.const 0) + (i64.store align=8) + (get_local 3) + (i32.const 144) + (i32.add) + (i32.const 0) + (i32.store align=4) + (block emptyblock) + (get_local 7) + (i32.load8_u align=1 offset=32) + (br_if 0) + (call 86) + (tee_local 4) + (i32.eqz) + (br_if 4) + (block emptyblock) + (get_local 4) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 4) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 1) + (get_local 3) + (i32.const 4) + (i32.add) + (i32.const 1) + (i32.store8 align=1) + (br 1) + (end) + (get_local 4) + (i64.const 1) + (i64.store align=4) + (get_local 4) + (i32.const 0) + (i32.store align=1 offset=4) + (end) + (get_local 3) + (i32.load align=4) + (i32.const 0) + (i32.store8 align=1) + (i32.const 0) + (get_local 7) + (i32.const 80) + (i32.add) + (i32.store align=4 offset=4) + (return) + (end) + (i32.const 288) + (i32.const 32) + (i32.const 264) + (call 11) + (unreachable) + (end) + (call 40) + (unreachable) + (end) + (get_local 3) + (get_local 4) + (i32.const 0) + (i32.ne) + (call 18) + (unreachable) + (end) + (call 40) + (unreachable) + ) + (func 23 (type 1) (local i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 3) + (i32.store align=4 offset=4) + (get_local 3) + (i32.const 800) + (i32.store align=4 offset=4) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=804) + (i32.const 3) + (i32.eq) + (br_if 0) + (get_local 3) + (get_local 3) + (i32.const 4) + (i32.add) + (i32.store align=4 offset=8) + (get_local 3) + (get_local 3) + (i32.const 8) + (i32.add) + (i32.store align=4 offset=12) + (i32.const 804) + (get_local 3) + (i32.const 12) + (i32.add) + (i32.const 320) + (call 103) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=800) + (tee_local 0) + (i32.load align=4) + (tee_local 2) + (i32.load8_u align=1) + (br_if 0) + (get_local 2) + (i32.const 1) + (i32.store8 align=1) + (call 86) + (tee_local 2) + (i32.eqz) + (br_if 1) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 2) + (i32.const 4) + (i32.add) + (set_local 1) + (get_local 2) + (i32.load align=4 offset=4) + (set_local 2) + (br 1) + (end) + (get_local 2) + (i64.const 1) + (i64.store align=4) + (get_local 2) + (i32.const 4) + (i32.add) + (set_local 1) + (i32.const 0) + (set_local 2) + (end) + (get_local 1) + (get_local 2) + (i32.store align=1) + (get_local 0) + (i32.const 4) + (i32.add) + (i32.load8_u align=1) + (br_if 2) + (get_local 3) + (get_local 2) + (i32.const 0) + (i32.ne) + (i32.store8 align=1) + (call 1) + (block emptyblock) + (get_local 0) + (i32.const 56) + (i32.add) + (i32.load align=4) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 0) + (i32.const 48) + (i32.add) + (i32.load align=4) + (tee_local 2) + (get_local 1) + (i32.const 5) + (i32.shl) + (i32.add) + (set_local 1) + (loop emptyblock) + (get_local 2) + (f64.load align=8) + (get_local 2) + (i32.const 8) + (i32.add) + (f64.load align=8) + (get_local 2) + (i32.const 24) + (i32.add) + (f64.load align=8) + (f64.const 5.0) + (f64.mul) + (call 5) + (get_local 2) + (i32.const 32) + (i32.add) + (tee_local 2) + (get_local 1) + (i32.ne) + (br_if 0) + (end) + (end) + (block emptyblock) + (get_local 0) + (i32.const 68) + (i32.add) + (i32.load align=4) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 0) + (i32.const 60) + (i32.add) + (i32.load align=4) + (tee_local 2) + (get_local 1) + (i32.const 24) + (i32.mul) + (i32.add) + (set_local 1) + (loop emptyblock) + (get_local 2) + (f64.load align=8) + (get_local 2) + (i32.const 8) + (i32.add) + (f64.load align=8) + (call 3) + (get_local 2) + (i32.const 24) + (i32.add) + (tee_local 2) + (get_local 1) + (i32.ne) + (br_if 0) + (end) + (end) + (block emptyblock) + (get_local 0) + (i32.const 80) + (i32.add) + (i32.load align=4) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 0) + (i32.const 72) + (i32.add) + (i32.load align=4) + (tee_local 2) + (get_local 1) + (i32.const 24) + (i32.mul) + (i32.add) + (set_local 1) + (loop emptyblock) + (get_local 2) + (f64.load align=8) + (get_local 2) + (i32.const 8) + (i32.add) + (f64.load align=8) + (call 4) + (get_local 2) + (i32.const 24) + (i32.add) + (tee_local 2) + (get_local 1) + (i32.ne) + (br_if 0) + (end) + (end) + (get_local 0) + (i32.const 8) + (i32.add) + (f64.load align=8) + (get_local 0) + (i32.const 16) + (i32.add) + (f64.load align=8) + (get_local 0) + (i32.const 24) + (i32.add) + (f64.load align=8) + (call 6) + (get_local 0) + (i32.const 88) + (i32.add) + (i32.load align=4) + (f64.convert_u/i32) + (call 7) + (block emptyblock) + (get_local 3) + (i32.load8_u align=1) + (br_if 0) + (call 86) + (tee_local 2) + (i32.eqz) + (br_if 4) + (block emptyblock) + (get_local 2) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 2) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 1) + (get_local 0) + (i32.const 4) + (i32.add) + (i32.const 1) + (i32.store8 align=1) + (br 1) + (end) + (get_local 2) + (i64.const 1) + (i64.store align=4) + (get_local 2) + (i32.const 0) + (i32.store align=1 offset=4) + (end) + (get_local 0) + (i32.load align=4) + (i32.const 0) + (i32.store8 align=1) + (i32.const 0) + (get_local 3) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (return) + (end) + (i32.const 288) + (i32.const 32) + (i32.const 264) + (call 11) + (unreachable) + (end) + (call 40) + (unreachable) + (end) + (get_local 0) + (get_local 2) + (i32.const 0) + (i32.ne) + (call 18) + (unreachable) + (end) + (call 40) + (unreachable) + ) + (func 24 (type 10) (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i64 i64 i64 f64 f64 f64 f64 f64 f64) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 48) + (i32.sub) + (tee_local 22) + (i32.store align=4 offset=4) + (get_local 22) + (i32.const 800) + (i32.store align=4 offset=8) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=804) + (i32.const 3) + (i32.eq) + (br_if 0) + (get_local 22) + (get_local 22) + (i32.const 8) + (i32.add) + (i32.store align=4 offset=12) + (get_local 22) + (get_local 22) + (i32.const 12) + (i32.add) + (i32.store align=4 offset=16) + (i32.const 804) + (get_local 22) + (i32.const 16) + (i32.add) + (i32.const 320) + (call 103) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=800) + (tee_local 1) + (i32.load align=4) + (tee_local 21) + (i32.load8_u align=1) + (br_if 0) + (get_local 21) + (i32.const 1) + (i32.store8 align=1) + (call 86) + (tee_local 21) + (i32.eqz) + (br_if 1) + (block emptyblock) + (block emptyblock) + (get_local 21) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 21) + (i32.const 4) + (i32.add) + (set_local 20) + (get_local 21) + (i32.load align=4 offset=4) + (set_local 21) + (br 1) + (end) + (get_local 21) + (i64.const 1) + (i64.store align=4) + (get_local 21) + (i32.const 4) + (i32.add) + (set_local 20) + (i32.const 0) + (set_local 21) + (end) + (get_local 20) + (get_local 21) + (i32.store align=1) + (get_local 1) + (i32.const 4) + (i32.add) + (i32.load8_u align=1) + (br_if 2) + (get_local 1) + (i32.const 112) + (i32.add) + (tee_local 20) + (get_local 20) + (f64.load align=8) + (get_local 0) + (f64.add) + (tee_local 31) + (f64.store align=8) + (get_local 22) + (get_local 21) + (i32.const 0) + (i32.ne) + (i32.store8 align=1 offset=12) + (block emptyblock) + (get_local 1) + (i32.const 144) + (i32.add) + (i32.load8_u align=1) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.const 24) + (i32.add) + (tee_local 21) + (get_local 21) + (f64.load align=8) + (get_local 0) + (f64.const -6.283185307179586) + (f64.mul) + (f64.add) + (f64.store align=8) + (end) + (block emptyblock) + (block emptyblock) + (get_local 1) + (i32.const 145) + (i32.add) + (i32.load8_u align=1) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.const 24) + (i32.add) + (tee_local 4) + (get_local 0) + (f64.const 6.283185307179586) + (f64.mul) + (get_local 4) + (f64.load align=8) + (f64.add) + (tee_local 30) + (f64.store align=8) + (br 1) + (end) + (get_local 1) + (i32.const 24) + (i32.add) + (tee_local 4) + (f64.load align=8) + (set_local 30) + (end) + (get_local 1) + (i32.const 146) + (i32.add) + (i32.load8_u align=1) + (set_local 21) + (get_local 30) + (call 2) + (set_local 28) + (get_local 1) + (i32.const 8) + (i32.add) + (tee_local 20) + (get_local 20) + (f64.load align=8) + (get_local 28) + (f64.const 400.0) + (f64.const 200.0) + (get_local 21) + (select) + (get_local 0) + (f64.mul) + (tee_local 29) + (f64.mul) + (f64.add) + (tee_local 28) + (f64.store align=8) + (get_local 30) + (call 8) + (set_local 30) + (get_local 1) + (i32.const 16) + (i32.add) + (tee_local 21) + (get_local 21) + (f64.load align=8) + (get_local 29) + (get_local 30) + (f64.mul) + (f64.add) + (tee_local 30) + (f64.store align=8) + (get_local 1) + (i32.const 40) + (i32.add) + (f64.load align=8) + (set_local 29) + (get_local 1) + (i32.const 32) + (i32.add) + (f64.load align=8) + (set_local 26) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 28) + (f64.const 0.0) + (f64.ge) + (get_local 28) + (get_local 28) + (f64.ne) + (tee_local 21) + (i32.or) + (br_if 0) + (get_local 26) + (get_local 28) + (f64.add) + (set_local 28) + (br 1) + (end) + (get_local 28) + (get_local 26) + (f64.lt) + (get_local 21) + (get_local 26) + (get_local 26) + (f64.ne) + (i32.or) + (i32.or) + (br_if 1) + (get_local 28) + (get_local 26) + (f64.sub) + (set_local 28) + (end) + (get_local 1) + (i32.const 8) + (i32.add) + (get_local 28) + (f64.store align=8) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 30) + (f64.const 0.0) + (f64.ge) + (get_local 30) + (get_local 30) + (f64.ne) + (tee_local 21) + (i32.or) + (br_if 0) + (get_local 29) + (get_local 30) + (f64.add) + (set_local 28) + (br 1) + (end) + (get_local 30) + (get_local 29) + (f64.lt) + (get_local 21) + (get_local 29) + (get_local 29) + (f64.ne) + (i32.or) + (i32.or) + (br_if 1) + (get_local 30) + (get_local 29) + (f64.sub) + (set_local 28) + (end) + (get_local 1) + (i32.const 16) + (i32.add) + (get_local 28) + (f64.store align=8) + (end) + (i32.const 0) + (set_local 20) + (block emptyblock) + (block emptyblock) + (get_local 1) + (i32.const 56) + (i32.add) + (i32.load align=4) + (tee_local 9) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.const 48) + (i32.add) + (i32.load align=4) + (set_local 21) + (get_local 9) + (i32.const 5) + (i32.shl) + (set_local 9) + (loop emptyblock) + (get_local 21) + (i32.const 24) + (i32.add) + (tee_local 10) + (get_local 10) + (f64.load align=8) + (get_local 0) + (f64.sub) + (tee_local 28) + (f64.store align=8) + (get_local 21) + (i32.const 16) + (i32.add) + (f64.load align=8) + (tee_local 30) + (call 2) + (set_local 29) + (get_local 21) + (get_local 21) + (f64.load align=8) + (get_local 29) + (get_local 28) + (get_local 28) + (f64.const 500.0) + (f64.mul) + (f64.mul) + (get_local 0) + (f64.mul) + (tee_local 28) + (f64.mul) + (f64.add) + (f64.store align=8) + (get_local 30) + (call 8) + (set_local 30) + (get_local 21) + (i32.const 8) + (i32.add) + (tee_local 10) + (get_local 10) + (f64.load align=8) + (get_local 28) + (get_local 30) + (f64.mul) + (f64.add) + (f64.store align=8) + (get_local 21) + (i32.const 32) + (i32.add) + (set_local 21) + (get_local 9) + (i32.const -32) + (i32.add) + (tee_local 9) + (br_if 0) + (end) + (get_local 1) + (i32.const 56) + (i32.add) + (tee_local 15) + (i32.load align=4) + (tee_local 10) + (i32.eqz) + (br_if 0) + (i32.const 0) + (set_local 9) + (get_local 1) + (i32.const 48) + (i32.add) + (i32.load align=4) + (tee_local 5) + (set_local 21) + (get_local 10) + (set_local 20) + (loop emptyblock) + (get_local 20) + (get_local 9) + (i32.le_u) + (br_if 2) + (block emptyblock) + (get_local 21) + (i32.const 24) + (i32.add) + (tee_local 16) + (f64.load align=8) + (f64.const 0.0) + (f64.gt) + (br_if 0) + (get_local 22) + (i32.const 16) + (i32.add) + (i32.const 24) + (i32.add) + (tee_local 17) + (get_local 16) + (i64.load align=8) + (i64.store align=8) + (get_local 22) + (i32.const 16) + (i32.add) + (i32.const 16) + (i32.add) + (tee_local 19) + (get_local 21) + (i32.const 16) + (i32.add) + (tee_local 18) + (i64.load align=8) + (i64.store align=8) + (get_local 22) + (i32.const 16) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 8) + (get_local 21) + (i32.const 8) + (i32.add) + (tee_local 6) + (i64.load align=8) + (i64.store align=8) + (get_local 22) + (get_local 21) + (i64.load align=8) + (i64.store align=8 offset=16) + (get_local 5) + (get_local 20) + (i32.const -1) + (i32.add) + (tee_local 20) + (i32.const 5) + (i32.shl) + (i32.add) + (tee_local 10) + (i64.load align=8) + (set_local 24) + (get_local 10) + (i32.const 8) + (i32.add) + (tee_local 14) + (i64.load align=8) + (set_local 23) + (get_local 10) + (i32.const 16) + (i32.add) + (tee_local 12) + (i64.load align=8) + (set_local 25) + (get_local 16) + (get_local 10) + (i32.const 24) + (i32.add) + (tee_local 7) + (i64.load align=8) + (i64.store align=8) + (get_local 18) + (get_local 25) + (i64.store align=8) + (get_local 6) + (get_local 23) + (i64.store align=8) + (get_local 21) + (get_local 24) + (i64.store align=8) + (get_local 7) + (get_local 17) + (i64.load align=8) + (i64.store align=8) + (get_local 12) + (get_local 19) + (i64.load align=8) + (i64.store align=8) + (get_local 14) + (get_local 8) + (i64.load align=8) + (i64.store align=8) + (get_local 10) + (get_local 22) + (i64.load align=8 offset=16) + (i64.store align=8) + (get_local 15) + (get_local 20) + (i32.store align=4) + (end) + (get_local 21) + (i32.const 32) + (i32.add) + (set_local 21) + (get_local 9) + (i32.const 1) + (i32.add) + (tee_local 9) + (get_local 20) + (i32.lt_u) + (br_if 0) + (end) + (end) + (get_local 31) + (get_local 1) + (i32.const 120) + (i32.add) + (tee_local 21) + (f64.load align=8) + (f64.sub) + (f64.const 0.05) + (f64.gt) + (i32.eqz) + (br_if 5) + (get_local 21) + (get_local 31) + (f64.store align=8) + (get_local 1) + (i32.const 24) + (i32.add) + (f64.load align=8) + (f64.const -3.141592653589793) + (f64.add) + (set_local 28) + (get_local 1) + (i32.const 16) + (i32.add) + (i64.load align=8) + (set_local 24) + (get_local 1) + (i32.const 8) + (i32.add) + (i64.load align=8) + (set_local 23) + (get_local 20) + (get_local 1) + (i32.const 52) + (i32.add) + (i32.load align=4) + (i32.ne) + (br_if 4) + (get_local 1) + (i32.const 48) + (i32.add) + (call 13) + (get_local 1) + (i32.const 56) + (i32.add) + (i32.load align=4) + (set_local 20) + (br 4) + (end) + (i32.const 672) + (get_local 9) + (get_local 20) + (call 140) + (unreachable) + (end) + (i32.const 288) + (i32.const 32) + (i32.const 264) + (call 11) + (unreachable) + (end) + (call 40) + (unreachable) + (end) + (get_local 1) + (get_local 21) + (i32.const 0) + (i32.ne) + (call 18) + (unreachable) + (end) + (get_local 1) + (i32.const 48) + (i32.add) + (i32.load align=4) + (get_local 20) + (i32.const 5) + (i32.shl) + (i32.add) + (tee_local 21) + (get_local 24) + (i64.store align=8 offset=8) + (get_local 21) + (get_local 23) + (i64.store align=8) + (get_local 21) + (get_local 28) + (f64.store align=8 offset=16) + (get_local 21) + (i64.const 4602678819172646912) + (i64.store align=8 offset=24) + (get_local 1) + (i32.const 56) + (i32.add) + (get_local 20) + (i32.const 1) + (i32.add) + (i32.store align=4) + (end) + (block emptyblock) + (get_local 1) + (i32.const 147) + (i32.add) + (i32.load8_u align=1) + (i32.eqz) + (br_if 0) + (get_local 31) + (get_local 1) + (i32.const 128) + (i32.add) + (tee_local 21) + (f64.load align=8) + (f64.sub) + (tee_local 28) + (f64.const 0.01) + (f64.le) + (get_local 28) + (get_local 28) + (f64.ne) + (i32.or) + (br_if 0) + (get_local 21) + (get_local 31) + (f64.store align=8) + (get_local 1) + (i32.const 24) + (i32.add) + (f64.load align=8) + (f64.const 0.0) + (call 0) + (f64.add) + (tee_local 28) + (call 8) + (f64.const 20.0) + (f64.mul) + (get_local 1) + (i32.const 16) + (i32.add) + (f64.load align=8) + (f64.add) + (set_local 30) + (get_local 28) + (call 2) + (f64.const 20.0) + (f64.mul) + (get_local 1) + (i32.const 8) + (i32.add) + (f64.load align=8) + (f64.add) + (set_local 28) + (get_local 4) + (i64.load align=8) + (set_local 24) + (block emptyblock) + (get_local 1) + (i32.const 68) + (i32.add) + (tee_local 9) + (i32.load align=4) + (tee_local 21) + (get_local 1) + (i32.const 64) + (i32.add) + (i32.load align=4) + (i32.ne) + (br_if 0) + (get_local 1) + (i32.const 60) + (i32.add) + (call 12) + (get_local 9) + (i32.load align=4) + (set_local 21) + (end) + (get_local 1) + (i32.const 60) + (i32.add) + (i32.load align=4) + (get_local 21) + (i32.const 24) + (i32.mul) + (i32.add) + (tee_local 20) + (get_local 24) + (i64.store align=8 offset=16) + (get_local 20) + (get_local 30) + (f64.store align=8 offset=8) + (get_local 20) + (get_local 28) + (f64.store align=8) + (get_local 9) + (get_local 21) + (i32.const 1) + (i32.add) + (i32.store align=4) + (end) + (block emptyblock) + (get_local 1) + (i32.const 68) + (i32.add) + (i32.load align=4) + (tee_local 20) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.const 60) + (i32.add) + (i32.load align=4) + (set_local 21) + (get_local 20) + (i32.const 24) + (i32.mul) + (set_local 20) + (get_local 0) + (f64.const 500.0) + (f64.mul) + (set_local 28) + (loop emptyblock) + (get_local 21) + (i32.const 16) + (i32.add) + (f64.load align=8) + (tee_local 30) + (call 2) + (set_local 29) + (get_local 21) + (get_local 21) + (f64.load align=8) + (get_local 28) + (get_local 29) + (f64.mul) + (f64.add) + (f64.store align=8) + (get_local 30) + (call 8) + (set_local 30) + (get_local 21) + (i32.const 8) + (i32.add) + (tee_local 9) + (get_local 9) + (f64.load align=8) + (get_local 28) + (get_local 30) + (f64.mul) + (f64.add) + (f64.store align=8) + (get_local 21) + (i32.const 24) + (i32.add) + (set_local 21) + (get_local 20) + (i32.const -24) + (i32.add) + (tee_local 20) + (br_if 0) + (end) + (get_local 1) + (i32.const 68) + (i32.add) + (tee_local 14) + (i32.load align=4) + (tee_local 20) + (i32.eqz) + (br_if 0) + (i32.const 0) + (set_local 9) + (get_local 1) + (i32.const 40) + (i32.add) + (set_local 15) + (get_local 1) + (i32.const 32) + (i32.add) + (set_local 7) + (get_local 1) + (i32.const 60) + (i32.add) + (i32.load align=4) + (tee_local 12) + (set_local 21) + (loop emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 20) + (get_local 9) + (i32.le_u) + (br_if 0) + (get_local 21) + (i32.const 8) + (i32.add) + (set_local 10) + (get_local 21) + (f64.load align=8) + (tee_local 28) + (f64.const 0.0) + (f64.lt) + (get_local 28) + (get_local 28) + (f64.ne) + (tee_local 16) + (i32.or) + (br_if 1) + (get_local 10) + (f64.load align=8) + (tee_local 30) + (f64.const 0.0) + (f64.lt) + (get_local 30) + (get_local 30) + (f64.ne) + (i32.or) + (br_if 1) + (get_local 7) + (f64.load align=8) + (tee_local 29) + (get_local 28) + (f64.lt) + (get_local 29) + (get_local 29) + (f64.ne) + (get_local 16) + (i32.or) + (i32.or) + (br_if 1) + (get_local 15) + (f64.load align=8) + (get_local 30) + (f64.ge) + (i32.eqz) + (br_if 1) + (br 2) + (end) + (i32.const 672) + (get_local 9) + (get_local 20) + (call 140) + (unreachable) + (end) + (get_local 22) + (i32.const 16) + (i32.add) + (i32.const 16) + (i32.add) + (tee_local 17) + (get_local 21) + (i32.const 16) + (i32.add) + (tee_local 19) + (i64.load align=8) + (i64.store align=8) + (get_local 22) + (i32.const 16) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 18) + (get_local 10) + (i64.load align=8) + (i64.store align=8) + (get_local 22) + (get_local 21) + (i64.load align=8) + (i64.store align=8 offset=16) + (get_local 12) + (get_local 20) + (i32.const -1) + (i32.add) + (tee_local 20) + (i32.const 24) + (i32.mul) + (i32.add) + (tee_local 16) + (i64.load align=8) + (set_local 24) + (get_local 16) + (i32.const 8) + (i32.add) + (tee_local 8) + (i64.load align=8) + (set_local 23) + (get_local 19) + (get_local 16) + (i32.const 16) + (i32.add) + (tee_local 6) + (i64.load align=8) + (i64.store align=8) + (get_local 10) + (get_local 23) + (i64.store align=8) + (get_local 21) + (get_local 24) + (i64.store align=8) + (get_local 6) + (get_local 17) + (i64.load align=8) + (i64.store align=8) + (get_local 8) + (get_local 18) + (i64.load align=8) + (i64.store align=8) + (get_local 16) + (get_local 22) + (i64.load align=8 offset=16) + (i64.store align=8) + (get_local 14) + (get_local 20) + (i32.store align=4) + (end) + (get_local 21) + (i32.const 24) + (i32.add) + (set_local 21) + (get_local 9) + (i32.const 1) + (i32.add) + (tee_local 9) + (get_local 20) + (i32.lt_u) + (br_if 0) + (end) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 31) + (get_local 1) + (i32.const 136) + (i32.add) + (tee_local 20) + (f64.load align=8) + (f64.sub) + (f64.const 1.0) + (f64.gt) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.const 96) + (i32.add) + (set_local 21) + (get_local 20) + (get_local 31) + (f64.store align=8) + (get_local 1) + (i32.const 40) + (i32.add) + (set_local 20) + (get_local 1) + (i32.const 32) + (i32.add) + (set_local 9) + (block emptyblock) + (loop emptyblock) + (get_local 22) + (i32.const 16) + (i32.add) + (get_local 21) + (get_local 9) + (f64.load align=8) + (get_local 20) + (f64.load align=8) + (call 21) + (get_local 22) + (i32.const 16) + (i32.add) + (i32.const 16) + (i32.add) + (i64.load align=8) + (set_local 24) + (get_local 22) + (i32.const 16) + (i32.add) + (i32.const 8) + (i32.add) + (f64.load align=8) + (set_local 28) + (get_local 1) + (i32.const 16) + (i32.add) + (f64.load align=8) + (set_local 30) + (get_local 22) + (f64.load align=8 offset=16) + (tee_local 29) + (get_local 1) + (i32.const 8) + (i32.add) + (f64.load align=8) + (tee_local 31) + (f64.ne) + (br_if 1) + (get_local 28) + (get_local 30) + (f64.eq) + (br_if 0) + (end) + (end) + (block emptyblock) + (get_local 29) + (get_local 31) + (f64.sub) + (tee_local 27) + (get_local 27) + (f64.mul) + (get_local 28) + (get_local 30) + (f64.sub) + (tee_local 26) + (get_local 26) + (f64.mul) + (f64.add) + (tee_local 26) + (f64.const 40000.0) + (f64.ge) + (get_local 26) + (get_local 26) + (f64.ne) + (i32.or) + (br_if 0) + (get_local 26) + (f64.sqrt) + (tee_local 28) + (f64.const 0.0) + (f64.eq) + (br_if 3) + (get_local 30) + (get_local 27) + (get_local 28) + (f64.div) + (f64.const 200.0) + (f64.mul) + (tee_local 29) + (f64.add) + (set_local 28) + (get_local 31) + (get_local 29) + (f64.add) + (set_local 29) + (end) + (get_local 1) + (i32.const 80) + (i32.add) + (tee_local 9) + (i32.load align=4) + (tee_local 21) + (get_local 1) + (i32.const 76) + (i32.add) + (i32.load align=4) + (i32.eq) + (br_if 1) + (br 3) + (end) + (get_local 1) + (i32.const 80) + (i32.add) + (i32.load align=4) + (tee_local 20) + (i32.eqz) + (br_if 4) + (br 3) + (end) + (get_local 1) + (i32.const 72) + (i32.add) + (call 14) + (get_local 9) + (i32.load align=4) + (set_local 21) + (br 1) + (end) + (i32.const 768) + (i32.const 30) + (i32.const 744) + (call 11) + (unreachable) + (end) + (get_local 1) + (i32.const 72) + (i32.add) + (i32.load align=4) + (get_local 21) + (i32.const 24) + (i32.mul) + (i32.add) + (tee_local 20) + (get_local 24) + (i64.store align=8 offset=16) + (get_local 20) + (get_local 28) + (f64.store align=8 offset=8) + (get_local 20) + (get_local 29) + (f64.store align=8) + (get_local 9) + (get_local 21) + (i32.const 1) + (i32.add) + (tee_local 20) + (i32.store align=4) + (get_local 20) + (i32.eqz) + (br_if 1) + (end) + (get_local 1) + (i32.const 72) + (i32.add) + (i32.load align=4) + (set_local 21) + (get_local 20) + (i32.const 24) + (i32.mul) + (set_local 20) + (get_local 0) + (f64.const 100.0) + (f64.mul) + (set_local 30) + (loop emptyblock) + (get_local 21) + (i32.const 16) + (i32.add) + (get_local 21) + (i32.const 8) + (i32.add) + (tee_local 9) + (f64.load align=8) + (tee_local 29) + (get_local 1) + (i32.const 16) + (i32.add) + (f64.load align=8) + (f64.sub) + (get_local 21) + (f64.load align=8) + (tee_local 28) + (get_local 1) + (i32.const 8) + (i32.add) + (f64.load align=8) + (tee_local 0) + (f64.sub) + (f64.div) + (call 0) + (tee_local 31) + (get_local 31) + (f64.const 3.141592653589793) + (f64.add) + (get_local 28) + (get_local 0) + (f64.lt) + (select) + (tee_local 0) + (f64.store align=8) + (get_local 21) + (get_local 28) + (get_local 30) + (get_local 0) + (call 2) + (f64.mul) + (f64.add) + (f64.store align=8) + (get_local 9) + (get_local 29) + (get_local 30) + (get_local 0) + (call 8) + (f64.mul) + (f64.add) + (f64.store align=8) + (get_local 21) + (i32.const 24) + (i32.add) + (set_local 21) + (get_local 20) + (i32.const -24) + (i32.add) + (tee_local 20) + (br_if 0) + (end) + (get_local 1) + (i32.const 80) + (i32.add) + (tee_local 2) + (i32.load align=4) + (set_local 3) + (br 1) + (end) + (get_local 1) + (i32.const 80) + (i32.add) + (set_local 2) + (i32.const 0) + (set_local 3) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 1) + (i32.const 68) + (i32.add) + (tee_local 11) + (i32.load align=4) + (tee_local 6) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.const 60) + (i32.add) + (i32.load align=4) + (set_local 4) + (i32.const 0) + (set_local 7) + (get_local 1) + (i32.const 72) + (i32.add) + (set_local 13) + (get_local 1) + (i32.const 52) + (i32.add) + (set_local 17) + (get_local 3) + (set_local 5) + (loop emptyblock) + (get_local 6) + (get_local 7) + (i32.le_u) + (br_if 3) + (get_local 13) + (i32.load align=4) + (tee_local 9) + (get_local 5) + (i32.const 24) + (i32.mul) + (tee_local 12) + (i32.add) + (set_local 8) + (get_local 4) + (get_local 7) + (i32.const 24) + (i32.mul) + (i32.add) + (tee_local 14) + (f64.load align=8) + (set_local 28) + (get_local 14) + (i32.const 8) + (i32.add) + (tee_local 15) + (f64.load align=8) + (set_local 0) + (i32.const 0) + (set_local 21) + (i32.const 0) + (set_local 10) + (get_local 9) + (set_local 16) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (loop emptyblock) + (get_local 16) + (set_local 19) + (get_local 10) + (set_local 18) + (get_local 8) + (get_local 9) + (get_local 21) + (i32.add) + (tee_local 20) + (i32.sub) + (i32.const 24) + (i32.div_s) + (i32.const 3) + (i32.le_u) + (br_if 1) + (get_local 20) + (f64.load align=8) + (get_local 28) + (f64.sub) + (tee_local 30) + (get_local 30) + (f64.mul) + (get_local 20) + (i32.const 8) + (i32.add) + (f64.load align=8) + (get_local 0) + (f64.sub) + (tee_local 30) + (get_local 30) + (f64.mul) + (f64.add) + (tee_local 30) + (f64.const 169.0) + (f64.ge) + (get_local 30) + (get_local 30) + (f64.ne) + (i32.or) + (i32.eqz) + (br_if 4) + (get_local 9) + (get_local 21) + (i32.add) + (tee_local 20) + (i32.const 24) + (i32.add) + (f64.load align=8) + (get_local 28) + (f64.sub) + (tee_local 30) + (get_local 30) + (f64.mul) + (get_local 20) + (i32.const 32) + (i32.add) + (f64.load align=8) + (get_local 0) + (f64.sub) + (tee_local 30) + (get_local 30) + (f64.mul) + (f64.add) + (f64.const 169.0) + (f64.lt) + (br_if 2) + (get_local 20) + (i32.const 48) + (i32.add) + (f64.load align=8) + (get_local 28) + (f64.sub) + (tee_local 30) + (get_local 30) + (f64.mul) + (get_local 20) + (i32.const 56) + (i32.add) + (f64.load align=8) + (get_local 0) + (f64.sub) + (tee_local 30) + (get_local 30) + (f64.mul) + (f64.add) + (f64.const 169.0) + (f64.lt) + (br_if 3) + (get_local 21) + (i32.const 96) + (i32.add) + (set_local 21) + (get_local 18) + (i32.const 4) + (i32.add) + (set_local 10) + (get_local 19) + (i32.const 96) + (i32.add) + (set_local 16) + (get_local 20) + (i32.const 72) + (i32.add) + (f64.load align=8) + (get_local 28) + (f64.sub) + (tee_local 30) + (get_local 30) + (f64.mul) + (get_local 20) + (i32.const 80) + (i32.add) + (f64.load align=8) + (get_local 0) + (f64.sub) + (tee_local 30) + (get_local 30) + (f64.mul) + (f64.add) + (tee_local 30) + (f64.const 169.0) + (f64.ge) + (get_local 30) + (get_local 30) + (f64.ne) + (i32.or) + (br_if 0) + (end) + (get_local 19) + (i32.const 72) + (i32.add) + (set_local 20) + (get_local 18) + (i32.const 3) + (i32.or) + (set_local 18) + (br 3) + (end) + (i32.const 1) + (set_local 10) + (loop emptyblock) + (get_local 12) + (get_local 21) + (i32.eq) + (br_if 4) + (get_local 9) + (get_local 21) + (i32.add) + (set_local 20) + (get_local 21) + (i32.const 24) + (i32.add) + (set_local 21) + (get_local 10) + (i32.const -1) + (i32.add) + (set_local 10) + (get_local 20) + (f64.load align=8) + (get_local 28) + (f64.sub) + (tee_local 30) + (get_local 30) + (f64.mul) + (get_local 20) + (i32.const 8) + (i32.add) + (f64.load align=8) + (get_local 0) + (f64.sub) + (tee_local 30) + (get_local 30) + (f64.mul) + (f64.add) + (tee_local 30) + (f64.const 169.0) + (f64.ge) + (get_local 30) + (get_local 30) + (f64.ne) + (i32.or) + (br_if 0) + (end) + (get_local 18) + (get_local 10) + (i32.sub) + (set_local 18) + (get_local 9) + (get_local 21) + (i32.add) + (i32.const -24) + (i32.add) + (set_local 20) + (br 2) + (end) + (get_local 19) + (i32.const 24) + (i32.add) + (set_local 20) + (get_local 18) + (i32.const 1) + (i32.or) + (set_local 18) + (br 1) + (end) + (get_local 19) + (i32.const 48) + (i32.add) + (set_local 20) + (get_local 18) + (i32.const 2) + (i32.or) + (set_local 18) + (end) + (get_local 1) + (i32.const 56) + (i32.add) + (tee_local 16) + (i32.load align=4) + (set_local 21) + (get_local 20) + (i32.const 8) + (i32.add) + (i64.load align=8) + (set_local 24) + (get_local 20) + (i64.load align=8) + (set_local 23) + (i32.const 0) + (set_local 19) + (f64.const 0.0) + (set_local 30) + (loop emptyblock) + (get_local 30) + (f64.const 0.21666156231653746) + (f64.mul) + (f64.const 0.0) + (f64.add) + (set_local 0) + (i32.const 1) + (set_local 20) + (loop emptyblock) + (get_local 20) + (i32.const 1) + (i32.add) + (set_local 9) + (get_local 20) + (i32.const 255) + (i32.and) + (f64.convert_u/i32) + (f64.const 10.0) + (f64.div) + (set_local 28) + (block emptyblock) + (get_local 21) + (get_local 17) + (i32.load align=4) + (i32.ne) + (br_if 0) + (get_local 1) + (i32.const 48) + (i32.add) + (call 13) + (get_local 16) + (i32.load align=4) + (set_local 21) + (end) + (get_local 16) + (get_local 21) + (i32.const 1) + (i32.add) + (tee_local 10) + (i32.store align=4) + (get_local 1) + (i32.const 48) + (i32.add) + (i32.load align=4) + (get_local 21) + (i32.const 5) + (i32.shl) + (i32.add) + (tee_local 21) + (get_local 23) + (i64.store align=8) + (get_local 21) + (get_local 24) + (i64.store align=8 offset=8) + (get_local 21) + (get_local 0) + (f64.store align=8 offset=16) + (get_local 21) + (get_local 28) + (f64.store align=8 offset=24) + (get_local 10) + (set_local 21) + (get_local 9) + (set_local 20) + (get_local 9) + (i32.const 255) + (i32.and) + (i32.const 10) + (i32.lt_u) + (br_if 0) + (end) + (get_local 30) + (f64.const 1.0) + (f64.add) + (set_local 30) + (get_local 10) + (set_local 21) + (get_local 19) + (i32.const 1) + (i32.add) + (tee_local 19) + (i32.const 30) + (i32.ne) + (br_if 0) + (end) + (get_local 2) + (i32.load align=4) + (tee_local 21) + (get_local 18) + (i32.le_u) + (br_if 5) + (get_local 13) + (i32.load align=4) + (tee_local 9) + (get_local 18) + (i32.const 24) + (i32.mul) + (i32.add) + (tee_local 20) + (get_local 20) + (i32.const 24) + (i32.add) + (get_local 21) + (get_local 18) + (i32.sub) + (i32.const 24) + (i32.mul) + (i32.const -24) + (i32.add) + (call 113) + (drop) + (get_local 1) + (i32.const 80) + (i32.add) + (get_local 21) + (i32.const -1) + (i32.add) + (tee_local 5) + (i32.store align=4) + (get_local 22) + (i32.const 16) + (i32.add) + (i32.const 16) + (i32.add) + (tee_local 20) + (get_local 14) + (i32.const 16) + (i32.add) + (tee_local 10) + (i64.load align=8) + (i64.store align=8) + (get_local 22) + (i32.const 16) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 16) + (get_local 15) + (i64.load align=8) + (i64.store align=8) + (get_local 22) + (get_local 14) + (i64.load align=8) + (i64.store align=8 offset=16) + (get_local 4) + (get_local 6) + (i32.const -1) + (i32.add) + (tee_local 6) + (i32.const 24) + (i32.mul) + (i32.add) + (tee_local 21) + (i64.load align=8) + (set_local 24) + (get_local 21) + (i32.const 8) + (i32.add) + (tee_local 19) + (i64.load align=8) + (set_local 23) + (get_local 10) + (get_local 21) + (i32.const 16) + (i32.add) + (tee_local 18) + (i64.load align=8) + (i64.store align=8) + (get_local 15) + (get_local 23) + (i64.store align=8) + (get_local 14) + (get_local 24) + (i64.store align=8) + (get_local 18) + (get_local 20) + (i64.load align=8) + (i64.store align=8) + (get_local 19) + (get_local 16) + (i64.load align=8) + (i64.store align=8) + (get_local 21) + (get_local 22) + (i64.load align=8 offset=16) + (i64.store align=8) + (get_local 11) + (get_local 6) + (i32.store align=4) + (end) + (get_local 7) + (i32.const 1) + (i32.add) + (tee_local 7) + (get_local 6) + (i32.lt_u) + (br_if 0) + (br 2) + (end) + (unreachable) + (end) + (get_local 1) + (i32.const 72) + (i32.add) + (i32.load align=4) + (set_local 9) + (get_local 3) + (set_local 5) + (end) + (get_local 1) + (i32.const 88) + (i32.add) + (tee_local 21) + (get_local 3) + (get_local 5) + (i32.sub) + (i32.const 10) + (i32.mul) + (get_local 21) + (i32.load align=4) + (i32.add) + (i32.store align=4) + (get_local 9) + (get_local 5) + (i32.const 24) + (i32.mul) + (tee_local 16) + (i32.add) + (set_local 10) + (get_local 1) + (i32.const 16) + (i32.add) + (f64.load align=8) + (set_local 0) + (get_local 1) + (i32.const 8) + (i32.add) + (f64.load align=8) + (set_local 30) + (i32.const 0) + (set_local 20) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (loop emptyblock) + (get_local 10) + (get_local 9) + (get_local 20) + (i32.add) + (tee_local 21) + (i32.sub) + (i32.const 24) + (i32.div_s) + (i32.const 3) + (i32.le_u) + (br_if 1) + (get_local 30) + (get_local 9) + (get_local 20) + (i32.add) + (tee_local 21) + (f64.load align=8) + (f64.sub) + (tee_local 28) + (get_local 28) + (f64.mul) + (get_local 0) + (get_local 21) + (i32.const 8) + (i32.add) + (f64.load align=8) + (f64.sub) + (tee_local 28) + (get_local 28) + (f64.mul) + (f64.add) + (f64.const 256.0) + (f64.lt) + (br_if 2) + (get_local 30) + (get_local 21) + (i32.const 24) + (i32.add) + (f64.load align=8) + (f64.sub) + (tee_local 28) + (get_local 28) + (f64.mul) + (get_local 0) + (get_local 21) + (i32.const 32) + (i32.add) + (f64.load align=8) + (f64.sub) + (tee_local 28) + (get_local 28) + (f64.mul) + (f64.add) + (f64.const 256.0) + (f64.lt) + (br_if 2) + (get_local 30) + (get_local 21) + (i32.const 48) + (i32.add) + (f64.load align=8) + (f64.sub) + (tee_local 28) + (get_local 28) + (f64.mul) + (get_local 0) + (get_local 21) + (i32.const 56) + (i32.add) + (f64.load align=8) + (f64.sub) + (tee_local 28) + (get_local 28) + (f64.mul) + (f64.add) + (f64.const 256.0) + (f64.lt) + (br_if 2) + (get_local 20) + (i32.const 96) + (i32.add) + (set_local 20) + (get_local 30) + (get_local 21) + (i32.const 72) + (i32.add) + (f64.load align=8) + (f64.sub) + (tee_local 28) + (get_local 28) + (f64.mul) + (get_local 0) + (get_local 21) + (i32.const 80) + (i32.add) + (f64.load align=8) + (f64.sub) + (tee_local 28) + (get_local 28) + (f64.mul) + (f64.add) + (tee_local 28) + (f64.const 256.0) + (f64.ge) + (get_local 28) + (get_local 28) + (f64.ne) + (i32.or) + (br_if 0) + (br 2) + (end) + (unreachable) + (end) + (get_local 16) + (get_local 20) + (i32.sub) + (set_local 20) + (loop emptyblock) + (get_local 20) + (i32.eqz) + (br_if 2) + (get_local 21) + (f64.load align=8) + (set_local 28) + (get_local 21) + (i32.const 8) + (i32.add) + (set_local 9) + (get_local 20) + (i32.const -24) + (i32.add) + (set_local 20) + (get_local 21) + (i32.const 24) + (i32.add) + (set_local 21) + (get_local 30) + (get_local 28) + (f64.sub) + (tee_local 28) + (get_local 28) + (f64.mul) + (get_local 0) + (get_local 9) + (f64.load align=8) + (f64.sub) + (tee_local 28) + (get_local 28) + (f64.mul) + (f64.add) + (f64.const 256.0) + (f64.lt) + (i32.eqz) + (br_if 0) + (end) + (end) + (get_local 1) + (i32.const 56) + (i32.add) + (tee_local 16) + (i32.load align=4) + (set_local 21) + (i32.const 0) + (set_local 18) + (get_local 1) + (i32.const 52) + (i32.add) + (set_local 19) + (get_local 1) + (i32.const 48) + (i32.add) + (set_local 17) + (f64.const 0.0) + (set_local 31) + (loop emptyblock) + (get_local 31) + (f64.const 0.21666156231653746) + (f64.mul) + (f64.const 0.0) + (f64.add) + (set_local 29) + (i32.const 1) + (set_local 20) + (loop emptyblock) + (get_local 20) + (i32.const 1) + (i32.add) + (set_local 9) + (get_local 20) + (i32.const 255) + (i32.and) + (f64.convert_u/i32) + (f64.const 10.0) + (f64.div) + (set_local 28) + (block emptyblock) + (get_local 21) + (get_local 19) + (i32.load align=4) + (i32.ne) + (br_if 0) + (get_local 17) + (call 13) + (get_local 16) + (i32.load align=4) + (set_local 21) + (end) + (get_local 16) + (get_local 21) + (i32.const 1) + (i32.add) + (tee_local 10) + (i32.store align=4) + (get_local 17) + (i32.load align=4) + (get_local 21) + (i32.const 5) + (i32.shl) + (i32.add) + (tee_local 21) + (get_local 30) + (f64.store align=8) + (get_local 21) + (get_local 0) + (f64.store align=8 offset=8) + (get_local 21) + (get_local 29) + (f64.store align=8 offset=16) + (get_local 21) + (get_local 28) + (f64.store align=8 offset=24) + (get_local 10) + (set_local 21) + (get_local 9) + (set_local 20) + (get_local 9) + (i32.const 255) + (i32.and) + (i32.const 8) + (i32.lt_u) + (br_if 0) + (end) + (get_local 31) + (f64.const 1.0) + (f64.add) + (set_local 31) + (get_local 10) + (set_local 21) + (get_local 18) + (i32.const 1) + (i32.add) + (tee_local 18) + (i32.const 30) + (i32.ne) + (br_if 0) + (end) + (get_local 1) + (i32.const 32) + (i32.add) + (f64.load align=8) + (tee_local 28) + (f64.const 0.0) + (f64.gt) + (i32.eqz) + (br_if 3) + (get_local 1) + (i32.const 8) + (i32.add) + (get_local 28) + (f64.const 4.6644147211338804e-08) + (f64.mul) + (f64.const 0.0) + (f64.add) + (f64.store align=8) + (get_local 1) + (i32.const 40) + (i32.add) + (f64.load align=8) + (tee_local 28) + (f64.const 0.0) + (f64.gt) + (i32.eqz) + (br_if 4) + (get_local 1) + (i32.const 88) + (i32.add) + (i32.const 0) + (i32.store align=4) + (get_local 1) + (i32.const 16) + (i32.add) + (get_local 28) + (f64.const 0.6070386340724931) + (f64.mul) + (f64.const 0.0) + (f64.add) + (f64.store align=8) + (block emptyblock) + (get_local 1) + (i32.const 68) + (i32.add) + (tee_local 21) + (i32.load align=4) + (i32.eqz) + (br_if 0) + (get_local 21) + (i32.const 0) + (i32.store align=4) + (end) + (get_local 2) + (i32.load align=4) + (i32.eqz) + (br_if 0) + (get_local 2) + (i32.const 0) + (i32.store align=4) + (end) + (block emptyblock) + (get_local 22) + (i32.load8_u align=1 offset=12) + (br_if 0) + (call 86) + (tee_local 21) + (i32.eqz) + (br_if 5) + (block emptyblock) + (get_local 21) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 21) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 1) + (get_local 1) + (i32.const 4) + (i32.add) + (i32.const 1) + (i32.store8 align=1) + (br 1) + (end) + (get_local 21) + (i64.const 1) + (i64.store align=4) + (get_local 21) + (i32.const 0) + (i32.store align=1 offset=4) + (end) + (get_local 1) + (i32.load align=4) + (i32.const 0) + (i32.store8 align=1) + (i32.const 0) + (get_local 22) + (i32.const 48) + (i32.add) + (i32.store align=4 offset=4) + (return) + (end) + (i32.const 672) + (get_local 7) + (get_local 6) + (call 140) + (unreachable) + (end) + (i32.const 80) + (call 139) + (unreachable) + (end) + (i32.const 608) + (i32.const 37) + (i32.const 592) + (call 11) + (unreachable) + (end) + (i32.const 608) + (i32.const 37) + (i32.const 592) + (call 11) + (unreachable) + (end) + (call 40) + (unreachable) + ) + (func 25 (type 2) (local i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 4) + (i32.store align=4 offset=4) + (get_local 4) + (i32.const 800) + (i32.store align=4 offset=4) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=804) + (i32.const 3) + (i32.eq) + (br_if 0) + (get_local 4) + (get_local 4) + (i32.const 4) + (i32.add) + (i32.store align=4 offset=8) + (get_local 4) + (get_local 4) + (i32.const 8) + (i32.add) + (i32.store align=4 offset=12) + (i32.const 804) + (get_local 4) + (i32.const 12) + (i32.add) + (i32.const 320) + (call 103) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=800) + (tee_local 1) + (i32.load align=4) + (tee_local 2) + (i32.load8_u align=1) + (br_if 0) + (get_local 2) + (i32.const 1) + (i32.store8 align=1) + (call 86) + (tee_local 2) + (i32.eqz) + (br_if 1) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 2) + (i32.const 4) + (i32.add) + (set_local 3) + (get_local 2) + (i32.load align=4 offset=4) + (set_local 2) + (br 1) + (end) + (get_local 2) + (i64.const 1) + (i64.store align=4) + (get_local 2) + (i32.const 4) + (i32.add) + (set_local 3) + (i32.const 0) + (set_local 2) + (end) + (get_local 3) + (get_local 2) + (i32.store align=1) + (get_local 1) + (i32.const 4) + (i32.add) + (i32.load8_u align=1) + (br_if 2) + (get_local 1) + (i32.const 147) + (i32.add) + (get_local 0) + (i32.store8 align=1) + (get_local 4) + (get_local 2) + (i32.const 0) + (i32.ne) + (i32.store8 align=1) + (block emptyblock) + (get_local 4) + (i32.load8_u align=1) + (br_if 0) + (call 86) + (tee_local 2) + (i32.eqz) + (br_if 4) + (block emptyblock) + (get_local 2) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 2) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 1) + (get_local 1) + (i32.const 4) + (i32.add) + (i32.const 1) + (i32.store8 align=1) + (br 1) + (end) + (get_local 2) + (i64.const 1) + (i64.store align=4) + (get_local 2) + (i32.const 0) + (i32.store align=1 offset=4) + (end) + (get_local 1) + (i32.load align=4) + (i32.const 0) + (i32.store8 align=1) + (i32.const 0) + (get_local 4) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (return) + (end) + (i32.const 288) + (i32.const 32) + (i32.const 264) + (call 11) + (unreachable) + (end) + (call 40) + (unreachable) + (end) + (get_local 1) + (get_local 2) + (i32.const 0) + (i32.ne) + (call 18) + (unreachable) + (end) + (call 40) + (unreachable) + ) + (func 26 (type 2) (local i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 4) + (i32.store align=4 offset=4) + (get_local 4) + (i32.const 800) + (i32.store align=4 offset=4) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=804) + (i32.const 3) + (i32.eq) + (br_if 0) + (get_local 4) + (get_local 4) + (i32.const 4) + (i32.add) + (i32.store align=4 offset=8) + (get_local 4) + (get_local 4) + (i32.const 8) + (i32.add) + (i32.store align=4 offset=12) + (i32.const 804) + (get_local 4) + (i32.const 12) + (i32.add) + (i32.const 320) + (call 103) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=800) + (tee_local 1) + (i32.load align=4) + (tee_local 2) + (i32.load8_u align=1) + (br_if 0) + (get_local 2) + (i32.const 1) + (i32.store8 align=1) + (call 86) + (tee_local 2) + (i32.eqz) + (br_if 1) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 2) + (i32.const 4) + (i32.add) + (set_local 3) + (get_local 2) + (i32.load align=4 offset=4) + (set_local 2) + (br 1) + (end) + (get_local 2) + (i64.const 1) + (i64.store align=4) + (get_local 2) + (i32.const 4) + (i32.add) + (set_local 3) + (i32.const 0) + (set_local 2) + (end) + (get_local 3) + (get_local 2) + (i32.store align=1) + (get_local 1) + (i32.const 4) + (i32.add) + (i32.load8_u align=1) + (br_if 2) + (get_local 1) + (i32.const 146) + (i32.add) + (get_local 0) + (i32.store8 align=1) + (get_local 4) + (get_local 2) + (i32.const 0) + (i32.ne) + (i32.store8 align=1) + (block emptyblock) + (get_local 4) + (i32.load8_u align=1) + (br_if 0) + (call 86) + (tee_local 2) + (i32.eqz) + (br_if 4) + (block emptyblock) + (get_local 2) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 2) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 1) + (get_local 1) + (i32.const 4) + (i32.add) + (i32.const 1) + (i32.store8 align=1) + (br 1) + (end) + (get_local 2) + (i64.const 1) + (i64.store align=4) + (get_local 2) + (i32.const 0) + (i32.store align=1 offset=4) + (end) + (get_local 1) + (i32.load align=4) + (i32.const 0) + (i32.store8 align=1) + (i32.const 0) + (get_local 4) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (return) + (end) + (i32.const 288) + (i32.const 32) + (i32.const 264) + (call 11) + (unreachable) + (end) + (call 40) + (unreachable) + (end) + (get_local 1) + (get_local 2) + (i32.const 0) + (i32.ne) + (call 18) + (unreachable) + (end) + (call 40) + (unreachable) + ) + (func 27 (type 2) (local i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 4) + (i32.store align=4 offset=4) + (get_local 4) + (i32.const 800) + (i32.store align=4 offset=4) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=804) + (i32.const 3) + (i32.eq) + (br_if 0) + (get_local 4) + (get_local 4) + (i32.const 4) + (i32.add) + (i32.store align=4 offset=8) + (get_local 4) + (get_local 4) + (i32.const 8) + (i32.add) + (i32.store align=4 offset=12) + (i32.const 804) + (get_local 4) + (i32.const 12) + (i32.add) + (i32.const 320) + (call 103) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=800) + (tee_local 1) + (i32.load align=4) + (tee_local 2) + (i32.load8_u align=1) + (br_if 0) + (get_local 2) + (i32.const 1) + (i32.store8 align=1) + (call 86) + (tee_local 2) + (i32.eqz) + (br_if 1) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 2) + (i32.const 4) + (i32.add) + (set_local 3) + (get_local 2) + (i32.load align=4 offset=4) + (set_local 2) + (br 1) + (end) + (get_local 2) + (i64.const 1) + (i64.store align=4) + (get_local 2) + (i32.const 4) + (i32.add) + (set_local 3) + (i32.const 0) + (set_local 2) + (end) + (get_local 3) + (get_local 2) + (i32.store align=1) + (get_local 1) + (i32.const 4) + (i32.add) + (i32.load8_u align=1) + (br_if 2) + (get_local 1) + (i32.const 144) + (i32.add) + (get_local 0) + (i32.store8 align=1) + (get_local 4) + (get_local 2) + (i32.const 0) + (i32.ne) + (i32.store8 align=1) + (block emptyblock) + (get_local 4) + (i32.load8_u align=1) + (br_if 0) + (call 86) + (tee_local 2) + (i32.eqz) + (br_if 4) + (block emptyblock) + (get_local 2) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 2) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 1) + (get_local 1) + (i32.const 4) + (i32.add) + (i32.const 1) + (i32.store8 align=1) + (br 1) + (end) + (get_local 2) + (i64.const 1) + (i64.store align=4) + (get_local 2) + (i32.const 0) + (i32.store align=1 offset=4) + (end) + (get_local 1) + (i32.load align=4) + (i32.const 0) + (i32.store8 align=1) + (i32.const 0) + (get_local 4) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (return) + (end) + (i32.const 288) + (i32.const 32) + (i32.const 264) + (call 11) + (unreachable) + (end) + (call 40) + (unreachable) + (end) + (get_local 1) + (get_local 2) + (i32.const 0) + (i32.ne) + (call 18) + (unreachable) + (end) + (call 40) + (unreachable) + ) + (func 28 (type 2) (local i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 4) + (i32.store align=4 offset=4) + (get_local 4) + (i32.const 800) + (i32.store align=4 offset=4) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=804) + (i32.const 3) + (i32.eq) + (br_if 0) + (get_local 4) + (get_local 4) + (i32.const 4) + (i32.add) + (i32.store align=4 offset=8) + (get_local 4) + (get_local 4) + (i32.const 8) + (i32.add) + (i32.store align=4 offset=12) + (i32.const 804) + (get_local 4) + (i32.const 12) + (i32.add) + (i32.const 320) + (call 103) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=800) + (tee_local 1) + (i32.load align=4) + (tee_local 2) + (i32.load8_u align=1) + (br_if 0) + (get_local 2) + (i32.const 1) + (i32.store8 align=1) + (call 86) + (tee_local 2) + (i32.eqz) + (br_if 1) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 2) + (i32.const 4) + (i32.add) + (set_local 3) + (get_local 2) + (i32.load align=4 offset=4) + (set_local 2) + (br 1) + (end) + (get_local 2) + (i64.const 1) + (i64.store align=4) + (get_local 2) + (i32.const 4) + (i32.add) + (set_local 3) + (i32.const 0) + (set_local 2) + (end) + (get_local 3) + (get_local 2) + (i32.store align=1) + (get_local 1) + (i32.const 4) + (i32.add) + (i32.load8_u align=1) + (br_if 2) + (get_local 1) + (i32.const 145) + (i32.add) + (get_local 0) + (i32.store8 align=1) + (get_local 4) + (get_local 2) + (i32.const 0) + (i32.ne) + (i32.store8 align=1) + (block emptyblock) + (get_local 4) + (i32.load8_u align=1) + (br_if 0) + (call 86) + (tee_local 2) + (i32.eqz) + (br_if 4) + (block emptyblock) + (get_local 2) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 2) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 1) + (get_local 1) + (i32.const 4) + (i32.add) + (i32.const 1) + (i32.store8 align=1) + (br 1) + (end) + (get_local 2) + (i64.const 1) + (i64.store align=4) + (get_local 2) + (i32.const 0) + (i32.store align=1 offset=4) + (end) + (get_local 1) + (i32.load align=4) + (i32.const 0) + (i32.store8 align=1) + (i32.const 0) + (get_local 4) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (return) + (end) + (i32.const 288) + (i32.const 32) + (i32.const 264) + (call 11) + (unreachable) + (end) + (call 40) + (unreachable) + (end) + (get_local 1) + (get_local 2) + (i32.const 0) + (i32.ne) + (call 18) + (unreachable) + (end) + (call 40) + (unreachable) + ) + (func 29 (type 1) + + ) + (func 30 (type 13) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.const -1) + (i32.le_s) + (br_if 0) + (block emptyblock) + (get_local 0) + (i32.eqz) + (br_if 0) + (get_local 0) + (call 107) + (tee_local 0) + (i32.eqz) + (br_if 2) + (get_local 0) + (return) + (end) + (i32.const 1) + (return) + (end) + (i32.const 648) + (call 139) + (unreachable) + (end) + (unreachable) + (unreachable) + ) + (func 31 (type 5) + (block emptyblock) + (get_local 1) + (i32.eqz) + (br_if 0) + (get_local 0) + (call 109) + (end) + ) + (func 32 (type 2) (local i32 i32 i32) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load8_u align=1) + (i32.eqz) + (br_if 0) + (i32.const 1) + (set_local 3) + (loop emptyblock) + (get_local 0) + (get_local 3) + (i32.add) + (set_local 2) + (get_local 3) + (i32.const 1) + (i32.add) + (tee_local 1) + (set_local 3) + (get_local 2) + (i32.load8_u align=1) + (br_if 0) + (end) + (get_local 0) + (i32.const 0) + (i32.store8 align=1) + (get_local 1) + (br_if 1) + (br 2) + (end) + (get_local 0) + (i32.const 0) + (i32.store8 align=1) + (end) + (get_local 0) + (call 109) + (end) + ) + (func 33 (type 6) (local i32 i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 48) + (i32.sub) + (tee_local 6) + (i32.store align=4 offset=4) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (i32.const 4) + (call 107) + (tee_local 2) + (i32.eqz) + (br_if 0) + (get_local 6) + (i32.const 4) + (i32.store align=4 offset=20) + (get_local 6) + (get_local 2) + (i32.store align=4 offset=16) + (get_local 6) + (i32.const 0) + (i32.store align=4 offset=24) + (get_local 6) + (i32.const 16) + (i32.add) + (i32.const 2432) + (i32.const 4) + (call 111) + (get_local 6) + (i32.const 32) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 2) + (get_local 6) + (i32.load align=4 offset=24) + (tee_local 5) + (i32.store align=4) + (get_local 6) + (i32.const 8) + (i32.add) + (tee_local 3) + (get_local 5) + (i32.store align=4) + (get_local 6) + (get_local 6) + (i32.load align=4 offset=16) + (tee_local 5) + (i32.store align=4 offset=32) + (get_local 6) + (get_local 6) + (i32.load align=4 offset=20) + (tee_local 4) + (i32.store align=4 offset=36) + (get_local 6) + (get_local 4) + (i32.store align=4 offset=4) + (get_local 6) + (get_local 5) + (i32.store align=4) + (get_local 2) + (get_local 3) + (i32.load align=4) + (tee_local 5) + (i32.store align=4) + (get_local 6) + (i32.const 16) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 3) + (get_local 5) + (i32.store align=4) + (get_local 6) + (get_local 6) + (i32.load align=4) + (tee_local 5) + (i32.store align=4 offset=32) + (get_local 6) + (get_local 6) + (i32.load align=4 offset=4) + (tee_local 4) + (i32.store align=4 offset=36) + (get_local 6) + (get_local 4) + (i32.store align=4 offset=20) + (get_local 6) + (get_local 5) + (i32.store align=4 offset=16) + (get_local 2) + (get_local 3) + (i32.load align=4) + (i32.store align=4) + (get_local 6) + (get_local 6) + (i64.load align=8 offset=16) + (i64.store align=8 offset=32) + (get_local 6) + (i32.const 32) + (i32.add) + (call 59) + (set_local 3) + (call 68) + (tee_local 2) + (i32.eqz) + (br_if 1) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.load align=4 offset=4) + (tee_local 5) + (i32.const 3) + (i32.ne) + (br_if 0) + (get_local 2) + (i64.const 8589934592) + (i64.store align=4) + (get_local 2) + (i32.const 0) + (i32.store align=4) + (call 68) + (tee_local 2) + (br_if 1) + (br 4) + (end) + (get_local 2) + (i32.load align=4) + (tee_local 4) + (i32.const -1) + (i32.eq) + (br_if 4) + (get_local 2) + (get_local 4) + (i32.store align=4) + (get_local 5) + (i32.const 2) + (i32.ne) + (br_if 5) + (call 68) + (tee_local 2) + (i32.eqz) + (br_if 3) + (end) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.load align=4 offset=4) + (tee_local 4) + (i32.const 3) + (i32.ne) + (br_if 0) + (get_local 2) + (i64.const 8589934592) + (i64.store align=4) + (get_local 2) + (i32.const -1) + (i32.store align=4) + (get_local 2) + (i32.const 12) + (i32.add) + (set_local 5) + (br 1) + (end) + (get_local 2) + (i32.load align=4) + (br_if 6) + (get_local 2) + (i32.const -1) + (i32.store align=4) + (get_local 2) + (i32.const 12) + (i32.add) + (set_local 5) + (get_local 4) + (i32.const 2) + (i32.eq) + (br_if 0) + (get_local 5) + (i32.load align=4) + (tee_local 4) + (get_local 4) + (i32.load align=4) + (tee_local 4) + (i32.const -1) + (i32.add) + (i32.store align=4) + (get_local 4) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 5) + (i32.load align=4) + (call 60) + (end) + (get_local 5) + (get_local 3) + (i32.store align=4) + (get_local 2) + (i32.const 0) + (i32.store align=4) + (get_local 2) + (i32.const 4) + (i32.add) + (i64.const 0) + (i64.store align=4) + (i32.const 3) + (call 42) + (i32.const 0) + (i32.load align=4 offset=2424) + (i32.const 3) + (i32.eq) + (br_if 6) + (get_local 6) + (i32.const 1) + (i32.store8 align=1 offset=16) + (get_local 6) + (get_local 6) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=32) + (i32.const 2424) + (get_local 6) + (i32.const 32) + (i32.add) + (i32.const 3536) + (call 103) + (br 6) + (end) + (get_local 6) + (i32.const 4) + (i32.store align=4 offset=36) + (get_local 6) + (get_local 2) + (i32.store align=4 offset=32) + (get_local 6) + (i32.const 1) + (i32.store align=4 offset=40) + (unreachable) + (unreachable) + (end) + (call 40) + (unreachable) + (end) + (get_local 3) + (get_local 3) + (i32.load align=4) + (tee_local 6) + (i32.const -1) + (i32.add) + (i32.store align=4) + (block emptyblock) + (get_local 6) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 3) + (call 60) + (end) + (call 40) + (unreachable) + (end) + (call 39) + (unreachable) + (end) + (i32.const 3344) + (i32.const 38) + (i32.const 3384) + (call 75) + (unreachable) + (end) + (call 38) + (unreachable) + (end) + (i32.const 0) + (get_local 6) + (i32.const 48) + (i32.add) + (i32.store align=4 offset=4) + (i32.const 0) + ) + (func 34 (type 4) (local i32 i32 i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 8) + (i32.store align=4 offset=4) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=4) + (tee_local 7) + (get_local 0) + (i32.load align=4 offset=8) + (tee_local 3) + (i32.sub) + (get_local 2) + (i32.ge_u) + (br_if 0) + (get_local 3) + (get_local 2) + (i32.add) + (tee_local 6) + (get_local 3) + (i32.lt_u) + (br_if 4) + (get_local 6) + (get_local 7) + (i32.const 1) + (i32.shl) + (tee_local 4) + (get_local 6) + (get_local 4) + (i32.ge_u) + (select) + (tee_local 4) + (i32.const -1) + (i32.le_s) + (br_if 5) + (get_local 7) + (i32.eqz) + (br_if 1) + (get_local 0) + (i32.load align=4) + (get_local 7) + (i32.const 1) + (get_local 4) + (i32.const 1) + (get_local 8) + (call 145) + (tee_local 5) + (get_local 8) + (i32.load align=4) + (get_local 5) + (select) + (set_local 7) + (get_local 5) + (i32.eqz) + (i32.eqz) + (br_if 2) + (br 6) + (end) + (get_local 3) + (get_local 2) + (i32.add) + (set_local 6) + (get_local 0) + (i32.load align=4) + (set_local 7) + (br 2) + (end) + (block emptyblock) + (block emptyblock) + (get_local 4) + (call 107) + (tee_local 7) + (i32.eqz) + (br_if 0) + (get_local 7) + (set_local 5) + (br 1) + (end) + (get_local 8) + (get_local 4) + (i32.store align=4 offset=4) + (get_local 8) + (get_local 7) + (i32.store align=4) + (get_local 8) + (i32.const 1) + (i32.store align=4 offset=8) + (i32.const 0) + (set_local 5) + (end) + (get_local 5) + (get_local 7) + (get_local 5) + (select) + (set_local 7) + (get_local 5) + (i32.eqz) + (br_if 4) + (end) + (get_local 0) + (get_local 7) + (i32.store align=4) + (get_local 0) + (i32.const 4) + (i32.add) + (get_local 4) + (i32.store align=4) + (end) + (get_local 0) + (i32.const 8) + (i32.add) + (get_local 6) + (i32.store align=4) + (get_local 7) + (get_local 3) + (i32.add) + (get_local 1) + (get_local 2) + (call 112) + (drop) + (i32.const 0) + (get_local 8) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (return) + (end) + (i32.const 2032) + (i32.const 17) + (call 143) + (unreachable) + (end) + (i32.const 2052) + (call 139) + (unreachable) + (end) + (unreachable) + (unreachable) + ) + (func 35 (type 5) (local i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 64) + (i32.sub) + (tee_local 2) + (i32.store align=4 offset=4) + (get_local 2) + (i32.const 1568) + (i32.store align=4 offset=8) + (get_local 2) + (i32.const 43) + (i32.store align=4 offset=12) + (get_local 2) + (get_local 1) + (i32.store8 align=1 offset=20) + (get_local 2) + (get_local 0) + (i32.store align=4 offset=16) + (get_local 2) + (i32.const 48) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 4) + (i32.store align=4) + (get_local 2) + (i32.const 5) + (i32.store align=4 offset=52) + (get_local 2) + (get_local 2) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=56) + (get_local 2) + (i32.const 6944) + (i32.store align=4 offset=32) + (get_local 2) + (i32.const 2) + (i32.store align=4 offset=28) + (get_local 2) + (get_local 2) + (i32.const 8) + (i32.add) + (i32.store align=4 offset=48) + (get_local 2) + (i32.const 808) + (i32.store align=4 offset=24) + (get_local 2) + (i32.const 24) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 2) + (get_local 2) + (i32.const 48) + (i32.add) + (i32.store align=4 offset=40) + (get_local 2) + (i32.const 44) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 2) + (i32.const 24) + (i32.add) + (i32.const 824) + (call 141) + (unreachable) + ) + (func 36 (type 6) + (i32.const 896) + (i32.const 25) + (get_local 1) + (call 124) + ) + (func 37 (type 2) (local i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 48) + (i32.sub) + (tee_local 1) + (i32.store align=4 offset=4) + (get_local 1) + (i32.const 47) + (i32.store align=4 offset=4) + (get_local 1) + (i32.const 1712) + (i32.store align=4) + (get_local 1) + (i32.const 32) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 6) + (i32.store align=4) + (get_local 1) + (get_local 0) + (i32.store align=4 offset=40) + (get_local 1) + (i32.const 5) + (i32.store align=4 offset=36) + (get_local 1) + (i32.const 6944) + (i32.store align=4 offset=16) + (get_local 1) + (i32.const 2) + (i32.store align=4 offset=12) + (get_local 1) + (get_local 1) + (i32.store align=4 offset=32) + (get_local 1) + (i32.const 808) + (i32.store align=4 offset=8) + (get_local 1) + (i32.const 8) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 1) + (get_local 1) + (i32.const 32) + (i32.add) + (i32.store align=4 offset=24) + (get_local 1) + (i32.const 28) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 1) + (i32.const 8) + (i32.add) + (i32.const 824) + (call 141) + (unreachable) + ) + (func 38 (type 1) (local i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 64) + (i32.sub) + (tee_local 0) + (i32.store align=4 offset=4) + (get_local 0) + (i32.const 16) + (i32.store align=4 offset=12) + (get_local 0) + (i32.const 3152) + (i32.store align=4 offset=8) + (get_local 0) + (i32.const 40) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 7) + (i32.store align=4) + (get_local 0) + (i32.const 5) + (i32.store align=4 offset=44) + (get_local 0) + (get_local 0) + (i32.const 56) + (i32.add) + (i32.store align=4 offset=48) + (get_local 0) + (i32.const 6944) + (i32.store align=4 offset=24) + (get_local 0) + (i32.const 2) + (i32.store align=4 offset=20) + (get_local 0) + (get_local 0) + (i32.const 8) + (i32.add) + (i32.store align=4 offset=40) + (get_local 0) + (i32.const 808) + (i32.store align=4 offset=16) + (get_local 0) + (i32.const 16) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 0) + (get_local 0) + (i32.const 40) + (i32.add) + (i32.store align=4 offset=32) + (get_local 0) + (i32.const 36) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 0) + (i32.const 16) + (i32.add) + (i32.const 824) + (call 141) + (unreachable) + ) + (func 39 (type 1) (local i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 64) + (i32.sub) + (tee_local 0) + (i32.store align=4 offset=4) + (get_local 0) + (i32.const 24) + (i32.store align=4 offset=12) + (get_local 0) + (i32.const 3312) + (i32.store align=4 offset=8) + (get_local 0) + (i32.const 40) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 8) + (i32.store align=4) + (get_local 0) + (i32.const 5) + (i32.store align=4 offset=44) + (get_local 0) + (get_local 0) + (i32.const 56) + (i32.add) + (i32.store align=4 offset=48) + (get_local 0) + (i32.const 6944) + (i32.store align=4 offset=24) + (get_local 0) + (i32.const 2) + (i32.store align=4 offset=20) + (get_local 0) + (get_local 0) + (i32.const 8) + (i32.add) + (i32.store align=4 offset=40) + (get_local 0) + (i32.const 808) + (i32.store align=4 offset=16) + (get_local 0) + (i32.const 16) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 0) + (get_local 0) + (i32.const 40) + (i32.add) + (i32.store align=4 offset=32) + (get_local 0) + (i32.const 36) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 0) + (i32.const 16) + (i32.add) + (i32.const 824) + (call 141) + (unreachable) + ) + (func 40 (type 1) (local i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 64) + (i32.sub) + (tee_local 0) + (i32.store align=4 offset=4) + (get_local 0) + (i32.const 57) + (i32.store align=4 offset=12) + (get_local 0) + (i32.const 3168) + (i32.store align=4 offset=8) + (get_local 0) + (i32.const 40) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 9) + (i32.store align=4) + (get_local 0) + (i32.const 5) + (i32.store align=4 offset=44) + (get_local 0) + (get_local 0) + (i32.const 56) + (i32.add) + (i32.store align=4 offset=48) + (get_local 0) + (i32.const 6944) + (i32.store align=4 offset=24) + (get_local 0) + (i32.const 2) + (i32.store align=4 offset=20) + (get_local 0) + (get_local 0) + (i32.const 8) + (i32.add) + (i32.store align=4 offset=40) + (get_local 0) + (i32.const 808) + (i32.store align=4 offset=16) + (get_local 0) + (i32.const 16) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 0) + (get_local 0) + (i32.const 40) + (i32.add) + (i32.store align=4 offset=32) + (get_local 0) + (i32.const 36) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 0) + (i32.const 16) + (i32.add) + (i32.const 824) + (call 141) + (unreachable) + ) + (func 41 (type 6) (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 80) + (i32.sub) + (tee_local 11) + (i32.store align=4 offset=4) + (get_local 1) + (i32.const 28) + (i32.add) + (tee_local 3) + (i32.load align=4) + (set_local 10) + (get_local 0) + (i32.load align=4) + (tee_local 0) + (i32.load align=4 offset=8) + (set_local 8) + (get_local 0) + (i32.load align=4) + (set_local 0) + (get_local 1) + (i32.load align=4 offset=24) + (set_local 9) + (get_local 11) + (i32.const 76) + (i32.add) + (tee_local 4) + (i32.const 0) + (i32.store align=4) + (i32.const 1) + (set_local 5) + (get_local 11) + (i32.const 1) + (i32.store align=4 offset=60) + (get_local 11) + (i32.const 5444) + (i32.store align=4 offset=56) + (get_local 11) + (i32.const 0) + (i32.store align=4 offset=64) + (get_local 11) + (i32.const 7076) + (i32.store align=4 offset=72) + (get_local 9) + (get_local 10) + (get_local 11) + (i32.const 56) + (i32.add) + (call 121) + (set_local 10) + (block emptyblock) + (get_local 8) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.const 24) + (i32.add) + (set_local 6) + (get_local 11) + (i32.const 72) + (i32.add) + (set_local 7) + (i32.const 0) + (set_local 9) + (loop emptyblock) + (get_local 9) + (set_local 2) + (get_local 11) + (get_local 0) + (i32.store align=4 offset=12) + (get_local 11) + (i32.const 2536) + (i32.store align=4 offset=20) + (i32.const 1) + (set_local 9) + (get_local 10) + (i32.const 255) + (i32.and) + (set_local 5) + (get_local 11) + (get_local 11) + (i32.const 12) + (i32.add) + (i32.store align=4 offset=16) + (i32.const 1) + (set_local 10) + (block emptyblock) + (get_local 5) + (br_if 0) + (block emptyblock) + (get_local 1) + (i32.load8_u align=1) + (i32.const 4) + (i32.and) + (br_if 0) + (get_local 11) + (i32.const 5424) + (i32.const 5232) + (get_local 2) + (i32.const 255) + (i32.and) + (tee_local 10) + (select) + (i32.store align=4 offset=32) + (get_local 11) + (get_local 10) + (i32.const 0) + (i32.ne) + (i32.const 1) + (i32.shl) + (i32.store align=4 offset=36) + (get_local 11) + (i32.const 40) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 10) + (i32.store align=4) + (get_local 11) + (i32.const 11) + (i32.store align=4 offset=44) + (get_local 11) + (i32.const 40) + (i32.add) + (i32.const 8) + (i32.add) + (get_local 11) + (i32.const 16) + (i32.add) + (i32.store align=4) + (get_local 3) + (i32.load align=4) + (set_local 10) + (get_local 6) + (i32.load align=4) + (set_local 5) + (get_local 11) + (get_local 11) + (i32.const 32) + (i32.add) + (i32.store align=4 offset=40) + (get_local 11) + (i32.const 56) + (i32.add) + (i32.const 8) + (i32.add) + (i32.const 6944) + (i32.store align=4) + (get_local 11) + (i32.const 56) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 4) + (i32.const 2) + (i32.store align=4) + (get_local 11) + (i32.const 2) + (i32.store align=4 offset=60) + (get_local 11) + (i32.const 5428) + (i32.store align=4 offset=56) + (get_local 7) + (get_local 11) + (i32.const 40) + (i32.add) + (i32.store align=4) + (get_local 5) + (get_local 10) + (get_local 11) + (i32.const 56) + (i32.add) + (call 121) + (set_local 10) + (br 1) + (end) + (get_local 11) + (i32.const 0) + (i32.store8 align=1 offset=28) + (get_local 11) + (get_local 1) + (i32.store align=4 offset=24) + (get_local 11) + (get_local 2) + (i32.const 255) + (i32.and) + (tee_local 10) + (i32.store align=4 offset=36) + (get_local 11) + (i32.const 5200) + (i32.const 5232) + (get_local 10) + (select) + (i32.store align=4 offset=32) + (get_local 11) + (i32.const 40) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 10) + (i32.store align=4) + (get_local 11) + (i32.const 40) + (i32.add) + (i32.const 8) + (i32.add) + (get_local 11) + (i32.const 16) + (i32.add) + (i32.store align=4) + (get_local 11) + (i32.const 56) + (i32.add) + (i32.const 8) + (i32.add) + (i32.const 5300) + (i32.store align=4) + (get_local 11) + (i32.const 56) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 11) + (i32.const 11) + (i32.store align=4 offset=44) + (get_local 11) + (i32.const 2) + (i32.store align=4 offset=60) + (get_local 11) + (get_local 11) + (i32.const 32) + (i32.add) + (i32.store align=4 offset=40) + (get_local 11) + (i32.const 5284) + (i32.store align=4 offset=56) + (get_local 7) + (get_local 11) + (i32.const 40) + (i32.add) + (i32.store align=4) + (get_local 4) + (i32.const 2) + (i32.store align=4) + (get_local 11) + (i32.const 24) + (i32.add) + (i32.const 5204) + (get_local 11) + (i32.const 56) + (i32.add) + (call 121) + (set_local 10) + (end) + (get_local 0) + (i32.const 1) + (i32.add) + (set_local 0) + (get_local 8) + (i32.const -1) + (i32.add) + (tee_local 8) + (br_if 0) + (end) + (i32.const 0) + (set_local 5) + (end) + (i32.const 1) + (set_local 0) + (block emptyblock) + (get_local 10) + (br_if 0) + (i32.const 1) + (set_local 0) + (get_local 1) + (i32.const 24) + (i32.add) + (tee_local 8) + (i32.load align=4) + (i32.const 5232) + (i32.const 5264) + (get_local 1) + (i32.load8_u align=1) + (i32.const 4) + (i32.and) + (i32.eqz) + (get_local 5) + (i32.or) + (tee_local 10) + (select) + (get_local 10) + (i32.const 1) + (i32.xor) + (get_local 1) + (i32.const 28) + (i32.add) + (tee_local 10) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (br_if 0) + (get_local 8) + (i32.load align=4) + (i32.const 5472) + (i32.const 1) + (get_local 10) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (set_local 0) + (end) + (i32.const 0) + (get_local 11) + (i32.const 80) + (i32.add) + (i32.store align=4 offset=4) + (get_local 0) + ) + (func 42 (type 2) + (get_local 0) + (call_indirect (type 1)) + ) + (func 43 (type 6) (local i32 i32 i32 i32 i32 i32 i32 i64) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 8) + (i32.store align=4 offset=4) + (i32.const 0) + (set_local 4) + (get_local 8) + (i32.const 0) + (i32.store align=4 offset=4) + (block emptyblock) + (block emptyblock) + (get_local 1) + (i32.const 127) + (i32.gt_u) + (br_if 0) + (get_local 8) + (get_local 1) + (i32.store8 align=1 offset=4) + (i32.const 1) + (set_local 7) + (br 1) + (end) + (block emptyblock) + (block emptyblock) + (get_local 1) + (i32.const 2048) + (i32.ge_u) + (br_if 0) + (i32.const 2) + (set_local 7) + (i32.const 1) + (set_local 6) + (i32.const 192) + (set_local 5) + (i32.const 31) + (set_local 3) + (br 1) + (end) + (block emptyblock) + (block emptyblock) + (get_local 1) + (i32.const 65536) + (i32.ge_u) + (br_if 0) + (i32.const 3) + (set_local 7) + (i32.const 2) + (set_local 6) + (i32.const 1) + (set_local 4) + (i32.const 224) + (set_local 5) + (i32.const 0) + (set_local 3) + (i32.const 15) + (set_local 2) + (br 1) + (end) + (get_local 8) + (get_local 1) + (i32.const 18) + (i32.shr_u) + (i32.const 240) + (i32.or) + (i32.store8 align=1 offset=4) + (i32.const 4) + (set_local 7) + (i32.const 3) + (set_local 6) + (i32.const 2) + (set_local 4) + (i32.const 128) + (set_local 5) + (i32.const 1) + (set_local 3) + (i32.const 63) + (set_local 2) + (end) + (get_local 8) + (i32.const 4) + (i32.add) + (get_local 3) + (i32.or) + (get_local 2) + (get_local 1) + (i32.const 12) + (i32.shr_u) + (i32.and) + (get_local 5) + (i32.or) + (i32.store8 align=1) + (i32.const 128) + (set_local 5) + (i32.const 63) + (set_local 3) + (end) + (get_local 8) + (i32.const 4) + (i32.add) + (get_local 4) + (i32.add) + (get_local 3) + (get_local 1) + (i32.const 6) + (i32.shr_u) + (i32.and) + (get_local 5) + (i32.or) + (i32.store8 align=1) + (get_local 8) + (i32.const 4) + (i32.add) + (get_local 6) + (i32.add) + (get_local 1) + (i32.const 63) + (i32.and) + (i32.const 128) + (i32.or) + (i32.store8 align=1) + (end) + (get_local 8) + (i32.const 8) + (i32.add) + (get_local 8) + (i32.const 4) + (i32.add) + (get_local 7) + (call 100) + (i32.const 0) + (set_local 1) + (block emptyblock) + (get_local 8) + (i32.load8_u align=1 offset=8) + (i32.const 3) + (i32.eq) + (br_if 0) + (get_local 8) + (i64.load align=8 offset=8) + (set_local 9) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (br_if 0) + (get_local 0) + (i32.load8_u align=1 offset=4) + (i32.const 2) + (i32.ne) + (br_if 1) + (end) + (get_local 0) + (i32.const 8) + (i32.add) + (i32.load align=4) + (tee_local 1) + (i32.load align=4) + (get_local 1) + (i32.load align=4 offset=4) + (i32.load align=4) + (call_indirect (type 2)) + (block emptyblock) + (get_local 1) + (i32.load align=4 offset=4) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.load align=4) + (call 109) + (end) + (get_local 1) + (call 109) + (end) + (get_local 0) + (i32.const 4) + (i32.add) + (get_local 9) + (i64.store align=4) + (i32.const 1) + (set_local 1) + (end) + (i32.const 0) + (get_local 8) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (get_local 1) + ) + (func 44 (type 6) (local i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 32) + (i32.sub) + (tee_local 2) + (i32.store align=4 offset=4) + (get_local 2) + (get_local 0) + (i32.store align=4 offset=4) + (get_local 2) + (i32.const 8) + (i32.add) + (i32.const 16) + (i32.add) + (get_local 1) + (i32.const 16) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 2) + (i32.const 8) + (i32.add) + (i32.const 8) + (i32.add) + (get_local 1) + (i32.const 8) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 2) + (get_local 1) + (i64.load align=4) + (i64.store align=8 offset=8) + (get_local 2) + (i32.const 4) + (i32.add) + (i32.const 1148) + (get_local 2) + (i32.const 8) + (i32.add) + (call 121) + (set_local 1) + (i32.const 0) + (get_local 2) + (i32.const 32) + (i32.add) + (i32.store align=4 offset=4) + (get_local 1) + ) + (func 45 (type 2) + + ) + (func 46 (type 5) + (get_local 0) + (i32.const 0) + (i32.store align=4) + ) + (func 47 (type 3) + (i64.const 5672177759992450925) + ) + (func 48 (type 5) + (get_local 0) + (get_local 1) + (i32.load align=4 offset=8) + (i32.store align=4 offset=4) + (get_local 0) + (get_local 1) + (i32.load align=4) + (i32.store align=4) + ) + (func 49 (type 6) + (get_local 1) + (get_local 0) + (i32.load align=4) + (get_local 0) + (i32.load align=4 offset=8) + (call 123) + ) + (func 50 (type 0) (local i32 i64) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 3) + (i32.store align=4 offset=4) + (get_local 3) + (i32.const 8) + (i32.add) + (get_local 1) + (get_local 2) + (call 100) + (i32.const 0) + (set_local 1) + (block emptyblock) + (get_local 3) + (i32.load8_u align=1 offset=8) + (i32.const 3) + (i32.eq) + (br_if 0) + (get_local 3) + (i64.load align=8 offset=8) + (set_local 4) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (br_if 0) + (get_local 0) + (i32.load8_u align=1 offset=4) + (i32.const 2) + (i32.ne) + (br_if 1) + (end) + (get_local 0) + (i32.const 8) + (i32.add) + (i32.load align=4) + (tee_local 1) + (i32.load align=4) + (get_local 1) + (i32.load align=4 offset=4) + (i32.load align=4) + (call_indirect (type 2)) + (block emptyblock) + (get_local 1) + (i32.load align=4 offset=4) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.load align=4) + (call 109) + (end) + (get_local 1) + (call 109) + (end) + (get_local 0) + (i32.const 4) + (i32.add) + (get_local 4) + (i64.store align=4) + (i32.const 1) + (set_local 1) + (end) + (i32.const 0) + (get_local 3) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (get_local 1) + ) + (func 51 (type 6) (local i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 3) + (i32.store align=4 offset=4) + (get_local 3) + (get_local 1) + (i32.load align=4 offset=24) + (i32.const 1312) + (i32.const 11) + (get_local 1) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (i32.store8 align=1 offset=8) + (get_local 3) + (get_local 1) + (i32.store align=4) + (get_local 3) + (i32.const 0) + (i32.store align=4 offset=4) + (get_local 3) + (i32.const 0) + (i32.store8 align=1 offset=9) + (get_local 3) + (get_local 0) + (i32.store align=4 offset=12) + (get_local 3) + (get_local 3) + (i32.const 12) + (i32.add) + (i32.const 1324) + (call 137) + (drop) + (get_local 3) + (i32.load8_u align=1 offset=8) + (set_local 1) + (block emptyblock) + (get_local 3) + (i32.load align=4 offset=4) + (tee_local 2) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.const 255) + (i32.and) + (set_local 0) + (i32.const 1) + (set_local 1) + (block emptyblock) + (get_local 0) + (br_if 0) + (block emptyblock) + (get_local 3) + (i32.load align=4) + (tee_local 0) + (i32.load8_u align=1) + (i32.const 4) + (i32.and) + (i32.eqz) + (br_if 0) + (i32.const 1) + (set_local 1) + (get_local 0) + (i32.load align=4 offset=24) + (i32.const 5264) + (i32.const 1) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (br_if 1) + (end) + (block emptyblock) + (get_local 2) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 3) + (i32.const 9) + (i32.add) + (i32.load8_u align=1) + (i32.const 255) + (i32.and) + (i32.eqz) + (br_if 0) + (i32.const 1) + (set_local 1) + (get_local 0) + (i32.load align=4 offset=24) + (i32.const 5200) + (i32.const 1) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (br_if 1) + (end) + (get_local 0) + (i32.load align=4 offset=24) + (i32.const 5408) + (i32.const 1) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (set_local 1) + (end) + (get_local 3) + (i32.const 8) + (i32.add) + (get_local 1) + (i32.store8 align=1) + (end) + (i32.const 0) + (get_local 3) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (get_local 1) + (i32.const 255) + (i32.and) + (i32.const 0) + (i32.ne) + ) + (func 52 (type 2) + + ) + (func 53 (type 2) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 0) + (i32.load align=4) + (call 109) + (end) + ) + (func 54 (type 2) (local i32 i32 i32 i32 i32 i64) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 64) + (i32.sub) + (tee_local 5) + (i32.store align=4 offset=4) + (block emptyblock) + (block emptyblock) + (i32.const 35) + (call 107) + (tee_local 2) + (i32.eqz) + (br_if 0) + (get_local 5) + (i32.const 35) + (i32.store align=4 offset=36) + (get_local 5) + (get_local 2) + (i32.store align=4 offset=32) + (get_local 5) + (i32.const 0) + (i32.store align=4 offset=40) + (get_local 5) + (i32.const 32) + (i32.add) + (i32.const 1376) + (i32.const 35) + (call 111) + (get_local 5) + (i32.const 48) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 2) + (get_local 5) + (i32.load align=4 offset=40) + (tee_local 1) + (i32.store align=4) + (get_local 5) + (i32.const 16) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 3) + (get_local 1) + (i32.store align=4) + (get_local 5) + (get_local 5) + (i32.load align=4 offset=32) + (tee_local 1) + (i32.store align=4 offset=48) + (get_local 5) + (get_local 5) + (i32.load align=4 offset=36) + (tee_local 4) + (i32.store align=4 offset=52) + (get_local 5) + (get_local 4) + (i32.store align=4 offset=20) + (get_local 5) + (get_local 1) + (i32.store align=4 offset=16) + (get_local 2) + (get_local 3) + (i32.load align=4) + (tee_local 1) + (i32.store align=4) + (get_local 5) + (i32.const 8) + (i32.add) + (tee_local 3) + (get_local 1) + (i32.store align=4) + (get_local 5) + (get_local 5) + (i32.load align=4 offset=16) + (tee_local 1) + (i32.store align=4 offset=48) + (get_local 5) + (get_local 5) + (i32.load align=4 offset=20) + (tee_local 4) + (i32.store align=4 offset=52) + (get_local 5) + (get_local 4) + (i32.store align=4 offset=4) + (get_local 5) + (get_local 1) + (i32.store align=4) + (get_local 2) + (get_local 3) + (i32.load align=4) + (tee_local 1) + (i32.store align=4) + (get_local 5) + (i32.const 32) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 4) + (get_local 1) + (i32.store align=4) + (get_local 5) + (get_local 5) + (i32.load align=4) + (tee_local 1) + (i32.store align=4 offset=48) + (get_local 5) + (get_local 5) + (i32.load align=4 offset=4) + (tee_local 3) + (i32.store align=4 offset=52) + (get_local 5) + (get_local 3) + (i32.store align=4 offset=36) + (get_local 5) + (get_local 1) + (i32.store align=4 offset=32) + (i32.const 12) + (call 107) + (tee_local 1) + (i32.eqz) + (br_if 1) + (get_local 1) + (get_local 5) + (i64.load align=8 offset=32) + (tee_local 6) + (i64.store align=4) + (get_local 1) + (i32.const 8) + (i32.add) + (get_local 4) + (i32.load align=4) + (tee_local 3) + (i32.store align=4) + (get_local 2) + (get_local 3) + (i32.store align=4) + (get_local 5) + (get_local 6) + (i64.store align=8 offset=48) + (i32.const 12) + (call 107) + (tee_local 2) + (i32.eqz) + (br_if 1) + (get_local 2) + (get_local 1) + (i32.store align=4) + (get_local 2) + (i32.const 1340) + (i32.store align=4 offset=4) + (get_local 5) + (i32.const 48) + (i32.add) + (i32.const 2) + (i32.add) + (tee_local 1) + (get_local 5) + (i32.const 32) + (i32.add) + (i32.const 2) + (i32.add) + (i32.load8_u align=1) + (i32.store8 align=1) + (get_local 5) + (get_local 5) + (i32.load16_u align=1 offset=32) + (i32.store16 align=2 offset=48) + (get_local 2) + (i32.const 16) + (i32.store8 align=1 offset=8) + (get_local 2) + (i32.const 11) + (i32.add) + (get_local 1) + (i32.load8_u align=1) + (i32.store8 align=1) + (get_local 2) + (get_local 5) + (i32.load16_u align=2 offset=48) + (i32.store16 align=1 offset=9) + (get_local 0) + (get_local 2) + (i32.store align=4 offset=8) + (get_local 0) + (i64.const 8589934593) + (i64.store align=4) + (i32.const 0) + (get_local 5) + (i32.const 64) + (i32.add) + (i32.store align=4 offset=4) + (return) + (end) + (get_local 5) + (i32.const 35) + (i32.store align=4 offset=52) + (get_local 5) + (get_local 2) + (i32.store align=4 offset=48) + (get_local 5) + (i32.const 1) + (i32.store align=4 offset=56) + (end) + (unreachable) + (unreachable) + ) + (func 55 (type 5) (local i32 i32 i32 i32 i32 i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 32) + (i32.sub) + (tee_local 10) + (i32.store align=4 offset=4) + (i32.const 0) + (set_local 8) + (get_local 1) + (i32.load align=4 offset=8) + (set_local 2) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 1) + (i32.load align=4) + (tee_local 7) + (i32.const 3) + (i32.and) + (tee_local 9) + (i32.eqz) + (br_if 0) + (get_local 7) + (get_local 7) + (i32.const -4) + (i32.or) + (i32.const 0) + (get_local 9) + (select) + (tee_local 9) + (get_local 2) + (get_local 9) + (get_local 2) + (i32.le_u) + (select) + (tee_local 8) + (i32.add) + (set_local 3) + (get_local 8) + (set_local 4) + (get_local 7) + (set_local 5) + (i32.const 0) + (set_local 9) + (block emptyblock) + (loop emptyblock) + (get_local 3) + (get_local 5) + (i32.sub) + (i32.const 3) + (i32.le_u) + (br_if 1) + (get_local 5) + (i32.load8_u align=1) + (tee_local 6) + (i32.const 0) + (i32.ne) + (get_local 9) + (i32.add) + (set_local 9) + (get_local 6) + (i32.eqz) + (br_if 3) + (get_local 5) + (i32.const 1) + (i32.add) + (i32.load8_u align=1) + (tee_local 6) + (i32.const 0) + (i32.ne) + (get_local 9) + (i32.add) + (set_local 9) + (get_local 6) + (i32.eqz) + (br_if 3) + (get_local 5) + (i32.const 2) + (i32.add) + (i32.load8_u align=1) + (tee_local 6) + (i32.const 0) + (i32.ne) + (get_local 9) + (i32.add) + (set_local 9) + (get_local 6) + (i32.eqz) + (br_if 3) + (get_local 4) + (i32.const -4) + (i32.add) + (set_local 4) + (get_local 5) + (i32.const 3) + (i32.add) + (i32.load8_u align=1) + (tee_local 6) + (i32.const 0) + (i32.ne) + (get_local 9) + (i32.add) + (set_local 9) + (get_local 5) + (i32.const 4) + (i32.add) + (set_local 5) + (get_local 6) + (br_if 0) + (br 3) + (end) + (unreachable) + (end) + (loop emptyblock) + (get_local 4) + (i32.eqz) + (br_if 1) + (get_local 4) + (i32.const -1) + (i32.add) + (set_local 4) + (get_local 5) + (i32.load8_u align=1) + (tee_local 6) + (i32.const 0) + (i32.ne) + (get_local 9) + (i32.add) + (set_local 9) + (get_local 5) + (i32.const 1) + (i32.add) + (set_local 5) + (get_local 6) + (br_if 0) + (br 2) + (end) + (unreachable) + (end) + (block emptyblock) + (get_local 2) + (i32.const 8) + (i32.lt_u) + (br_if 0) + (get_local 8) + (get_local 2) + (i32.const -8) + (i32.add) + (tee_local 4) + (i32.gt_u) + (br_if 0) + (block emptyblock) + (loop emptyblock) + (get_local 7) + (get_local 8) + (i32.add) + (tee_local 9) + (i32.const 4) + (i32.add) + (i32.load align=4) + (tee_local 5) + (i32.const -1) + (i32.xor) + (get_local 5) + (i32.const -16843009) + (i32.add) + (i32.and) + (get_local 9) + (i32.load align=4) + (tee_local 9) + (i32.const -1) + (i32.xor) + (get_local 9) + (i32.const -16843009) + (i32.add) + (i32.and) + (i32.or) + (i32.const -2139062144) + (i32.and) + (br_if 1) + (get_local 8) + (i32.const 8) + (i32.add) + (tee_local 8) + (get_local 4) + (i32.le_u) + (br_if 0) + (end) + (end) + (get_local 8) + (get_local 2) + (i32.gt_u) + (br_if 3) + (end) + (get_local 7) + (get_local 8) + (i32.add) + (tee_local 6) + (get_local 2) + (get_local 8) + (i32.sub) + (tee_local 2) + (i32.add) + (set_local 3) + (i32.const 0) + (set_local 5) + (i32.const 0) + (set_local 9) + (block emptyblock) + (block emptyblock) + (loop emptyblock) + (get_local 3) + (get_local 6) + (get_local 5) + (i32.add) + (tee_local 4) + (i32.sub) + (i32.const 3) + (i32.le_u) + (br_if 1) + (get_local 4) + (i32.load8_u align=1) + (tee_local 4) + (i32.const 0) + (i32.ne) + (get_local 9) + (i32.add) + (set_local 9) + (get_local 4) + (i32.eqz) + (br_if 2) + (get_local 6) + (get_local 5) + (i32.add) + (tee_local 4) + (i32.const 1) + (i32.add) + (i32.load8_u align=1) + (tee_local 7) + (i32.const 0) + (i32.ne) + (get_local 9) + (i32.add) + (set_local 9) + (get_local 7) + (i32.eqz) + (br_if 2) + (get_local 4) + (i32.const 2) + (i32.add) + (i32.load8_u align=1) + (tee_local 7) + (i32.const 0) + (i32.ne) + (get_local 9) + (i32.add) + (set_local 9) + (get_local 7) + (i32.eqz) + (br_if 2) + (get_local 5) + (i32.const 4) + (i32.add) + (set_local 5) + (get_local 4) + (i32.const 3) + (i32.add) + (i32.load8_u align=1) + (tee_local 4) + (i32.const 0) + (i32.ne) + (get_local 9) + (i32.add) + (set_local 9) + (get_local 4) + (br_if 0) + (br 2) + (end) + (unreachable) + (end) + (get_local 2) + (get_local 5) + (i32.sub) + (set_local 5) + (loop emptyblock) + (get_local 5) + (i32.eqz) + (br_if 3) + (get_local 5) + (i32.const -1) + (i32.add) + (set_local 5) + (get_local 4) + (i32.load8_u align=1) + (tee_local 6) + (i32.const 0) + (i32.ne) + (get_local 9) + (i32.add) + (set_local 9) + (get_local 4) + (i32.const 1) + (i32.add) + (set_local 4) + (get_local 6) + (br_if 0) + (end) + (end) + (get_local 9) + (get_local 8) + (i32.add) + (set_local 9) + (end) + (get_local 10) + (i32.const 16) + (i32.add) + (i32.const 8) + (i32.add) + (get_local 1) + (i32.const 8) + (i32.add) + (i32.load align=4) + (tee_local 5) + (i32.store align=4) + (get_local 10) + (i32.const 8) + (i32.add) + (tee_local 4) + (get_local 5) + (i32.store align=4) + (get_local 10) + (get_local 1) + (i32.load align=4) + (tee_local 5) + (i32.store align=4 offset=16) + (get_local 10) + (get_local 1) + (i32.const 4) + (i32.add) + (i32.load align=4) + (tee_local 8) + (i32.store align=4 offset=20) + (get_local 10) + (get_local 8) + (i32.store align=4 offset=4) + (get_local 10) + (get_local 5) + (i32.store align=4) + (get_local 0) + (get_local 9) + (i32.store align=4 offset=4) + (get_local 0) + (i32.const 1) + (i32.store align=4) + (get_local 0) + (i32.const 16) + (i32.add) + (get_local 4) + (i32.load align=4) + (i32.store align=4) + (get_local 0) + (i32.const 12) + (i32.add) + (get_local 10) + (i32.load align=4 offset=4) + (i32.store align=4) + (get_local 0) + (get_local 10) + (i32.load align=4) + (i32.store align=4 offset=8) + (br 3) + (end) + (get_local 10) + (i32.const 8) + (i32.add) + (tee_local 4) + (get_local 1) + (i32.const 8) + (i32.add) + (i32.load align=4) + (tee_local 9) + (i32.store align=4) + (get_local 10) + (get_local 1) + (i64.load align=4) + (i64.store align=8) + (get_local 10) + (get_local 9) + (call 62) + (get_local 4) + (i32.load align=4) + (tee_local 9) + (get_local 10) + (i32.load align=4 offset=4) + (tee_local 5) + (i32.ne) + (br_if 1) + (get_local 10) + (call 63) + (get_local 4) + (i32.load align=4) + (set_local 9) + (get_local 10) + (i32.load align=4 offset=4) + (set_local 5) + (br 1) + (end) + (get_local 8) + (get_local 2) + (call 129) + (unreachable) + (end) + (get_local 10) + (i32.load align=4) + (tee_local 8) + (get_local 9) + (i32.add) + (i32.const 0) + (i32.store8 align=1) + (get_local 4) + (get_local 9) + (i32.const 1) + (i32.add) + (tee_local 9) + (i32.store align=4) + (block emptyblock) + (block emptyblock) + (get_local 5) + (get_local 9) + (i32.lt_u) + (br_if 0) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 9) + (i32.eqz) + (br_if 0) + (get_local 5) + (get_local 9) + (i32.ne) + (br_if 1) + (get_local 5) + (set_local 9) + (get_local 8) + (set_local 4) + (br 2) + (end) + (i32.const 1) + (set_local 4) + (i32.const 0) + (set_local 9) + (get_local 5) + (i32.eqz) + (br_if 1) + (get_local 8) + (call 109) + (br 1) + (end) + (get_local 8) + (get_local 5) + (i32.const 1) + (get_local 9) + (i32.const 1) + (get_local 10) + (i32.const 16) + (i32.add) + (call 145) + (tee_local 4) + (i32.eqz) + (br_if 2) + (end) + (get_local 0) + (get_local 4) + (i32.store align=4 offset=4) + (get_local 0) + (i32.const 0) + (i32.store align=4) + (get_local 0) + (get_local 9) + (i32.store align=4 offset=8) + (br 2) + (end) + (i32.const 2116) + (call 139) + (unreachable) + (end) + (unreachable) + (unreachable) + (end) + (i32.const 0) + (get_local 10) + (i32.const 32) + (i32.add) + (i32.store align=4 offset=4) + ) + (func 56 (type 6) (local i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 3) + (i32.store align=4 offset=4) + (get_local 3) + (get_local 1) + (i32.load align=4 offset=24) + (i32.const 1424) + (i32.const 8) + (get_local 1) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (i32.store8 align=1 offset=8) + (get_local 3) + (get_local 1) + (i32.store align=4) + (get_local 3) + (i32.const 0) + (i32.store align=4 offset=4) + (get_local 3) + (i32.const 0) + (i32.store8 align=1 offset=9) + (get_local 3) + (get_local 0) + (i32.store align=4 offset=12) + (get_local 3) + (get_local 3) + (i32.const 12) + (i32.add) + (i32.const 1432) + (call 137) + (set_local 1) + (get_local 3) + (get_local 0) + (i32.const 4) + (i32.add) + (i32.store align=4 offset=12) + (get_local 1) + (get_local 3) + (i32.const 12) + (i32.add) + (i32.const 1448) + (call 137) + (drop) + (get_local 3) + (i32.load8_u align=1 offset=8) + (set_local 1) + (block emptyblock) + (get_local 3) + (i32.load align=4 offset=4) + (tee_local 2) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.const 255) + (i32.and) + (set_local 0) + (i32.const 1) + (set_local 1) + (block emptyblock) + (get_local 0) + (br_if 0) + (block emptyblock) + (get_local 3) + (i32.load align=4) + (tee_local 0) + (i32.load8_u align=1) + (i32.const 4) + (i32.and) + (i32.eqz) + (br_if 0) + (i32.const 1) + (set_local 1) + (get_local 0) + (i32.load align=4 offset=24) + (i32.const 5264) + (i32.const 1) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (br_if 1) + (end) + (block emptyblock) + (get_local 2) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 3) + (i32.const 9) + (i32.add) + (i32.load8_u align=1) + (i32.const 255) + (i32.and) + (i32.eqz) + (br_if 0) + (i32.const 1) + (set_local 1) + (get_local 0) + (i32.load align=4 offset=24) + (i32.const 5200) + (i32.const 1) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (br_if 1) + (end) + (get_local 0) + (i32.load align=4 offset=24) + (i32.const 5408) + (i32.const 1) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (set_local 1) + (end) + (get_local 3) + (i32.const 8) + (i32.add) + (get_local 1) + (i32.store8 align=1) + (end) + (i32.const 0) + (get_local 3) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (get_local 1) + (i32.const 255) + (i32.and) + (i32.const 0) + (i32.ne) + ) + (func 57 (type 2) + + ) + (func 58 (type 2) + + ) + (func 59 (type 13) (local i32 i32 i64 i64 i64) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 64) + (i32.sub) + (tee_local 2) + (i32.store align=4 offset=4) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 2) + (get_local 0) + (i64.load align=4 offset=4) + (i64.store align=4 offset=52) + (get_local 2) + (get_local 1) + (i32.store align=4 offset=48) + (get_local 2) + (i32.const 8) + (i32.add) + (get_local 2) + (i32.const 48) + (i32.add) + (call 55) + (get_local 2) + (i32.load align=4 offset=8) + (i32.const 1) + (i32.eq) + (br_if 2) + (get_local 2) + (i64.load32_u align=4 offset=16) + (i64.const 32) + (i64.shl) + (set_local 3) + (get_local 2) + (i64.load32_u align=4 offset=12) + (set_local 4) + (br 1) + (end) + (i64.const 0) + (set_local 3) + (i64.const 0) + (set_local 4) + (end) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (i32.load8_u align=1 offset=1760) + (br_if 0) + (i32.const 0) + (i32.const 1) + (i32.store8 align=1 offset=1760) + (i32.const 0) + (i64.load align=8 offset=1824) + (tee_local 5) + (i64.const -1) + (i64.eq) + (br_if 1) + (i32.const 0) + (get_local 5) + (i64.const 1) + (i64.add) + (i64.store align=8 offset=1824) + (i32.const 0) + (i32.const 0) + (i32.store8 align=1 offset=1760) + (block emptyblock) + (i32.const 1) + (call 107) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.const 0) + (i32.store8 align=1) + (i32.const 48) + (call 107) + (tee_local 0) + (i32.eqz) + (br_if 0) + (get_local 0) + (get_local 5) + (i64.store align=8 offset=8) + (get_local 0) + (i64.const 4294967297) + (i64.store align=4) + (get_local 0) + (i32.const 0) + (i32.store align=4 offset=24) + (get_local 0) + (get_local 1) + (i32.store align=4 offset=28) + (get_local 0) + (i32.const 0) + (i32.store8 align=1 offset=32) + (get_local 0) + (get_local 4) + (get_local 3) + (i64.or) + (i64.store align=8 offset=16) + (get_local 0) + (i32.const 1) + (i32.store align=4 offset=36) + (get_local 0) + (i32.const 0) + (i32.store align=4 offset=40) + (i32.const 0) + (get_local 2) + (i32.const 64) + (i32.add) + (i32.store align=4 offset=4) + (get_local 0) + (return) + (end) + (unreachable) + (unreachable) + (end) + (i32.const 1776) + (i32.const 32) + (i32.const 1808) + (call 75) + (unreachable) + (end) + (i32.const 0) + (i32.const 0) + (i32.store8 align=1 offset=1760) + (i32.const 1840) + (i32.const 55) + (i32.const 1896) + (call 75) + (unreachable) + (end) + (get_local 2) + (i32.const 32) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 0) + (get_local 2) + (i32.const 20) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 2) + (get_local 2) + (i64.load align=4 offset=12) + (i64.store align=8 offset=32) + (get_local 2) + (i32.const 48) + (i32.add) + (i32.const 8) + (i32.add) + (get_local 0) + (i64.load align=8) + (i64.store align=8) + (get_local 2) + (get_local 2) + (i64.load align=8 offset=32) + (i64.store align=8 offset=48) + (get_local 2) + (i32.const 48) + (i32.add) + (call 37) + (unreachable) + ) + (func 60 (type 2) (local i32) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=16) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.const 0) + (i32.store8 align=1) + (get_local 0) + (i32.const 20) + (i32.add) + (i32.load align=4) + (i32.eqz) + (br_if 0) + (get_local 0) + (i32.const 16) + (i32.add) + (i32.load align=4) + (call 109) + (end) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (call 109) + (get_local 0) + (get_local 0) + (i32.load align=4 offset=4) + (tee_local 1) + (i32.const -1) + (i32.add) + (i32.store align=4 offset=4) + (block emptyblock) + (get_local 1) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 0) + (call 109) + (end) + ) + (func 61 (type 3) + (i64.const 3254967120849462314) + ) + (func 62 (type 5) (local i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 4) + (i32.store align=4 offset=4) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=4) + (get_local 1) + (i32.ne) + (br_if 0) + (get_local 1) + (i32.const 1) + (i32.add) + (tee_local 2) + (get_local 1) + (i32.lt_u) + (br_if 1) + (get_local 2) + (i32.const -1) + (i32.le_s) + (br_if 2) + (block emptyblock) + (block emptyblock) + (get_local 1) + (i32.eqz) + (br_if 0) + (get_local 0) + (i32.load align=4) + (get_local 1) + (i32.const 1) + (get_local 2) + (i32.const 1) + (get_local 4) + (call 145) + (tee_local 3) + (get_local 4) + (i32.load align=4) + (get_local 3) + (select) + (set_local 1) + (get_local 3) + (i32.eqz) + (i32.eqz) + (br_if 1) + (br 5) + (end) + (block emptyblock) + (block emptyblock) + (get_local 2) + (call 107) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 1) + (set_local 3) + (br 1) + (end) + (get_local 4) + (get_local 2) + (i32.store align=4 offset=4) + (get_local 4) + (get_local 1) + (i32.store align=4) + (get_local 4) + (i32.const 1) + (i32.store align=4 offset=8) + (i32.const 0) + (set_local 3) + (end) + (get_local 3) + (get_local 1) + (get_local 3) + (select) + (set_local 1) + (get_local 3) + (i32.eqz) + (br_if 4) + (end) + (get_local 0) + (get_local 1) + (i32.store align=4) + (get_local 0) + (i32.const 4) + (i32.add) + (get_local 2) + (i32.store align=4) + (end) + (i32.const 0) + (get_local 4) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (return) + (end) + (i32.const 2032) + (i32.const 17) + (call 143) + (unreachable) + (end) + (i32.const 2052) + (call 139) + (unreachable) + (end) + (unreachable) + (unreachable) + ) + (func 63 (type 2) (local i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 3) + (i32.store align=4 offset=4) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=4) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.const 1) + (i32.shl) + (tee_local 2) + (i32.const -1) + (i32.le_s) + (br_if 2) + (get_local 0) + (i32.load align=4) + (get_local 1) + (i32.const 1) + (get_local 2) + (i32.const 1) + (get_local 3) + (call 145) + (tee_local 1) + (br_if 1) + (unreachable) + (unreachable) + (end) + (i32.const 4) + (set_local 2) + (i32.const 4) + (call 107) + (tee_local 1) + (i32.eqz) + (br_if 2) + (end) + (get_local 0) + (get_local 1) + (i32.store align=4) + (get_local 0) + (i32.const 4) + (i32.add) + (get_local 2) + (i32.store align=4) + (i32.const 0) + (get_local 3) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (return) + (end) + (i32.const 2052) + (call 139) + (unreachable) + (end) + (get_local 3) + (i32.const 4) + (i32.store align=4 offset=4) + (get_local 3) + (i32.const 1) + (i32.store align=4 offset=8) + (get_local 3) + (get_local 1) + (i32.store align=4) + (get_local 3) + (get_local 3) + (i64.load align=4 offset=4) + (i64.store align=4 offset=4) + (get_local 3) + (get_local 1) + (i32.store align=4) + (unreachable) + (unreachable) + ) + (func 64 (type 6) (local i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 32) + (i32.sub) + (tee_local 2) + (i32.store align=4 offset=4) + (get_local 2) + (get_local 0) + (i32.store align=4 offset=4) + (get_local 2) + (i32.const 8) + (i32.add) + (i32.const 16) + (i32.add) + (get_local 1) + (i32.const 16) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 2) + (i32.const 8) + (i32.add) + (i32.const 8) + (i32.add) + (get_local 1) + (i32.const 8) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 2) + (get_local 1) + (i64.load align=4) + (i64.store align=8 offset=8) + (get_local 2) + (i32.const 4) + (i32.add) + (i32.const 2180) + (get_local 2) + (i32.const 8) + (i32.add) + (call 121) + (set_local 1) + (i32.const 0) + (get_local 2) + (i32.const 32) + (i32.add) + (i32.store align=4 offset=4) + (get_local 1) + ) + (func 65 (type 2) + + ) + (func 66 (type 6) + (get_local 0) + (i32.load align=4) + (tee_local 0) + (i32.load align=4) + (get_local 0) + (i32.load align=4 offset=8) + (get_local 1) + (call 124) + ) + (func 67 (type 1) (local i32 i32 i32 i32 i32 i32 i32 i32) + (i32.const 0) + (set_local 7) + (block emptyblock) + (i32.const 0) + (i32.const 9) + (i32.gt_u) + (br_if 0) + (loop emptyblock) + (get_local 7) + (i32.const 1) + (i32.add) + (tee_local 0) + (get_local 7) + (i32.lt_u) + (br_if 1) + (i32.const 0) + (i32.load align=4 offset=2296) + (set_local 1) + (i32.const 0) + (get_local 7) + (i32.const 9) + (i32.eq) + (i32.store align=4 offset=2296) + (get_local 0) + (set_local 7) + (block emptyblock) + (get_local 1) + (i32.eqz) + (br_if 0) + (block emptyblock) + (block emptyblock) + (get_local 1) + (i32.const 1) + (i32.eq) + (br_if 0) + (get_local 1) + (i32.load align=4) + (tee_local 2) + (get_local 1) + (i32.load align=4 offset=8) + (tee_local 7) + (i32.const 3) + (i32.shl) + (i32.add) + (set_local 4) + (get_local 1) + (i32.load align=4 offset=4) + (set_local 3) + (block emptyblock) + (get_local 7) + (i32.eqz) + (br_if 0) + (get_local 2) + (set_local 7) + (loop emptyblock) + (get_local 7) + (i32.load align=4) + (get_local 7) + (i32.const 4) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 2)) + (get_local 7) + (i32.const 8) + (i32.add) + (tee_local 7) + (get_local 4) + (i32.ne) + (br_if 0) + (br 3) + (end) + (unreachable) + (end) + (get_local 2) + (get_local 4) + (i32.eq) + (br_if 1) + (get_local 2) + (set_local 7) + (loop emptyblock) + (get_local 7) + (i32.load align=4) + (tee_local 5) + (get_local 7) + (i32.const 4) + (i32.add) + (i32.load align=4) + (tee_local 6) + (i32.load align=4) + (call_indirect (type 2)) + (block emptyblock) + (get_local 6) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 5) + (call 109) + (end) + (get_local 7) + (i32.const 8) + (i32.add) + (tee_local 7) + (get_local 4) + (i32.ne) + (br_if 0) + (br 2) + (end) + (unreachable) + (end) + (i32.const 2304) + (i32.const 37) + (i32.const 2344) + (call 75) + (unreachable) + (end) + (block emptyblock) + (get_local 3) + (i32.eqz) + (br_if 0) + (get_local 2) + (call 109) + (end) + (get_local 1) + (call 109) + (get_local 0) + (set_local 7) + (end) + (get_local 7) + (i32.const 9) + (i32.le_u) + (br_if 0) + (end) + (end) + ) + (func 68 (type 14) (local i32 i32 i32 i32) + (i32.const 0) + (set_local 3) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=2416) + (tee_local 2) + (br_if 0) + (i32.const 0) + (i32.load align=4 offset=2420) + (set_local 0) + (i32.const 8) + (call 107) + (tee_local 2) + (i32.eqz) + (br_if 1) + (get_local 2) + (i32.const 0) + (i32.store align=4) + (get_local 2) + (get_local 0) + (i32.store align=4 offset=4) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=2416) + (tee_local 0) + (get_local 2) + (get_local 0) + (select) + (i32.store align=4 offset=2416) + (get_local 0) + (i32.eqz) + (br_if 0) + (block emptyblock) + (get_local 2) + (i32.load align=4 offset=4) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 2) + (i32.load align=4) + (get_local 1) + (call_indirect (type 2)) + (end) + (get_local 2) + (call 109) + (get_local 0) + (set_local 2) + (end) + (block emptyblock) + (get_local 2) + (i32.load align=4) + (tee_local 2) + (i32.const 1) + (i32.eq) + (br_if 0) + (block emptyblock) + (get_local 2) + (br_if 0) + (i32.const 20) + (call 107) + (tee_local 2) + (i32.eqz) + (br_if 2) + (get_local 2) + (i32.const 2416) + (i32.store align=4) + (get_local 2) + (i32.const 3) + (i32.store align=4 offset=8) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=2416) + (tee_local 3) + (br_if 0) + (i32.const 0) + (i32.load align=4 offset=2420) + (set_local 0) + (i32.const 8) + (call 107) + (tee_local 3) + (i32.eqz) + (br_if 3) + (get_local 3) + (i32.const 0) + (i32.store align=4) + (get_local 3) + (get_local 0) + (i32.store align=4 offset=4) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=2416) + (tee_local 0) + (get_local 3) + (get_local 0) + (select) + (i32.store align=4 offset=2416) + (get_local 0) + (i32.eqz) + (br_if 0) + (block emptyblock) + (get_local 3) + (i32.load align=4 offset=4) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 3) + (i32.load align=4) + (get_local 1) + (call_indirect (type 2)) + (end) + (get_local 3) + (call 109) + (get_local 0) + (set_local 3) + (end) + (get_local 3) + (get_local 2) + (i32.store align=4) + (get_local 2) + (i32.const 4) + (i32.add) + (return) + (end) + (get_local 2) + (i32.const 4) + (i32.add) + (set_local 3) + (end) + (get_local 3) + (return) + (end) + (unreachable) + (unreachable) + ) + (func 69 (type 2) (local i32 i32 i32 i32) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4) + (tee_local 1) + (i32.load align=4) + (tee_local 4) + (br_if 0) + (get_local 1) + (i32.load align=4 offset=4) + (set_local 2) + (i32.const 8) + (call 107) + (tee_local 4) + (i32.eqz) + (br_if 1) + (get_local 4) + (get_local 2) + (i32.store align=4 offset=4) + (get_local 4) + (i32.const 0) + (i32.store align=4) + (get_local 1) + (get_local 1) + (i32.load align=4) + (tee_local 2) + (get_local 4) + (get_local 2) + (select) + (i32.store align=4) + (get_local 2) + (i32.eqz) + (br_if 0) + (block emptyblock) + (get_local 4) + (i32.load align=4 offset=4) + (tee_local 3) + (i32.eqz) + (br_if 0) + (get_local 4) + (i32.load align=4) + (get_local 3) + (call_indirect (type 2)) + (end) + (get_local 4) + (call 109) + (get_local 2) + (set_local 4) + (end) + (get_local 4) + (i32.const 1) + (i32.store align=4) + (get_local 0) + (call 109) + (block emptyblock) + (get_local 1) + (i32.load align=4) + (tee_local 4) + (br_if 0) + (get_local 1) + (i32.load align=4 offset=4) + (set_local 0) + (i32.const 8) + (call 107) + (tee_local 4) + (i32.eqz) + (br_if 1) + (get_local 4) + (get_local 0) + (i32.store align=4 offset=4) + (get_local 4) + (i32.const 0) + (i32.store align=4) + (get_local 1) + (get_local 1) + (i32.load align=4) + (tee_local 0) + (get_local 4) + (get_local 0) + (select) + (i32.store align=4) + (get_local 0) + (i32.eqz) + (br_if 0) + (block emptyblock) + (get_local 4) + (i32.load align=4 offset=4) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 4) + (i32.load align=4) + (get_local 1) + (call_indirect (type 2)) + (end) + (get_local 4) + (call 109) + (get_local 0) + (set_local 4) + (end) + (get_local 4) + (i32.const 0) + (i32.store align=4) + (return) + (end) + (unreachable) + (unreachable) + ) + (func 70 (type 2) (local i32 i32 i32 i32) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4) + (tee_local 1) + (i32.load align=4) + (tee_local 4) + (br_if 0) + (get_local 1) + (i32.load align=4 offset=4) + (set_local 2) + (i32.const 8) + (call 107) + (tee_local 4) + (i32.eqz) + (br_if 1) + (get_local 4) + (get_local 2) + (i32.store align=4 offset=4) + (get_local 4) + (i32.const 0) + (i32.store align=4) + (get_local 1) + (get_local 1) + (i32.load align=4) + (tee_local 2) + (get_local 4) + (get_local 2) + (select) + (i32.store align=4) + (get_local 2) + (i32.eqz) + (br_if 0) + (block emptyblock) + (get_local 4) + (i32.load align=4 offset=4) + (tee_local 3) + (i32.eqz) + (br_if 0) + (get_local 4) + (i32.load align=4) + (get_local 3) + (call_indirect (type 2)) + (end) + (get_local 4) + (call 109) + (get_local 2) + (set_local 4) + (end) + (get_local 4) + (i32.const 1) + (i32.store align=4) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 0) + (i32.load align=4 offset=12) + (tee_local 4) + (i32.eqz) + (br_if 0) + (get_local 4) + (get_local 0) + (i32.load align=4 offset=16) + (i32.load align=4) + (call_indirect (type 2)) + (get_local 0) + (i32.load align=4 offset=16) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 0) + (i32.const 12) + (i32.add) + (i32.load align=4) + (call 109) + (end) + (get_local 0) + (call 109) + (block emptyblock) + (get_local 1) + (i32.load align=4) + (tee_local 0) + (br_if 0) + (get_local 1) + (i32.load align=4 offset=4) + (set_local 4) + (i32.const 8) + (call 107) + (tee_local 0) + (i32.eqz) + (br_if 1) + (get_local 0) + (get_local 4) + (i32.store align=4 offset=4) + (get_local 0) + (i32.const 0) + (i32.store align=4) + (get_local 1) + (get_local 1) + (i32.load align=4) + (tee_local 4) + (get_local 0) + (get_local 4) + (select) + (i32.store align=4) + (get_local 4) + (i32.eqz) + (br_if 0) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=4) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 0) + (i32.load align=4) + (get_local 1) + (call_indirect (type 2)) + (end) + (get_local 0) + (call 109) + (get_local 4) + (set_local 0) + (end) + (get_local 0) + (i32.const 0) + (i32.store align=4) + (return) + (end) + (unreachable) + (unreachable) + ) + (func 71 (type 2) (local i32 i32 i32 i32) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4) + (tee_local 1) + (i32.load align=4) + (tee_local 4) + (br_if 0) + (get_local 1) + (i32.load align=4 offset=4) + (set_local 2) + (i32.const 8) + (call 107) + (tee_local 4) + (i32.eqz) + (br_if 1) + (get_local 4) + (get_local 2) + (i32.store align=4 offset=4) + (get_local 4) + (i32.const 0) + (i32.store align=4) + (get_local 1) + (get_local 1) + (i32.load align=4) + (tee_local 2) + (get_local 4) + (get_local 2) + (select) + (i32.store align=4) + (get_local 2) + (i32.eqz) + (br_if 0) + (block emptyblock) + (get_local 4) + (i32.load align=4 offset=4) + (tee_local 3) + (i32.eqz) + (br_if 0) + (get_local 4) + (i32.load align=4) + (get_local 3) + (call_indirect (type 2)) + (end) + (get_local 4) + (call 109) + (get_local 2) + (set_local 4) + (end) + (get_local 4) + (i32.const 1) + (i32.store align=4) + (block emptyblock) + (get_local 0) + (i32.load8_u align=1 offset=8) + (i32.const 2) + (i32.and) + (br_if 0) + (get_local 0) + (i32.load align=4 offset=16) + (tee_local 4) + (get_local 4) + (i32.load align=4) + (tee_local 4) + (i32.const -1) + (i32.add) + (i32.store align=4) + (get_local 4) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 0) + (i32.const 16) + (i32.add) + (i32.load align=4) + (call 60) + (end) + (get_local 0) + (call 109) + (block emptyblock) + (get_local 1) + (i32.load align=4) + (tee_local 0) + (br_if 0) + (get_local 1) + (i32.load align=4 offset=4) + (set_local 4) + (i32.const 8) + (call 107) + (tee_local 0) + (i32.eqz) + (br_if 1) + (get_local 0) + (get_local 4) + (i32.store align=4 offset=4) + (get_local 0) + (i32.const 0) + (i32.store align=4) + (get_local 1) + (get_local 1) + (i32.load align=4) + (tee_local 4) + (get_local 0) + (get_local 4) + (select) + (i32.store align=4) + (get_local 4) + (i32.eqz) + (br_if 0) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=4) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 0) + (i32.load align=4) + (get_local 1) + (call_indirect (type 2)) + (end) + (get_local 0) + (call 109) + (get_local 4) + (set_local 0) + (end) + (get_local 0) + (i32.const 0) + (i32.store align=4) + (return) + (end) + (unreachable) + (unreachable) + ) + (func 72 (type 2) (local i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 48) + (i32.sub) + (tee_local 1) + (i32.store align=4 offset=4) + (get_local 1) + (i32.const 16) + (i32.add) + (i32.const 16) + (i32.add) + (get_local 0) + (i32.const 16) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 1) + (i32.const 16) + (i32.add) + (i32.const 8) + (i32.add) + (get_local 0) + (i32.const 8) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 1) + (get_local 0) + (i64.load align=4) + (i64.store align=8 offset=16) + (get_local 1) + (i32.const 8) + (i32.add) + (get_local 1) + (i32.const 40) + (i32.add) + (get_local 1) + (i32.const 16) + (i32.add) + (call 101) + (get_local 1) + (i32.load align=4 offset=12) + (set_local 0) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (br_if 0) + (get_local 1) + (i32.load align=4 offset=8) + (i32.const 3) + (i32.and) + (i32.const 2) + (i32.ne) + (br_if 1) + (end) + (get_local 0) + (i32.load align=4) + (get_local 0) + (i32.load align=4 offset=4) + (i32.load align=4) + (call_indirect (type 2)) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=4) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 0) + (i32.load align=4) + (call 109) + (end) + (get_local 0) + (call 109) + (end) + (i32.const 0) + (get_local 1) + (i32.const 48) + (i32.add) + (i32.store align=4 offset=4) + ) + (func 73 (type 2) + + ) + (func 74 (type 2) + + ) + (func 75 (type 4) (local i32) + (block emptyblock) + (i32.const 8) + (call 107) + (tee_local 3) + (br_if 0) + (unreachable) + (unreachable) + (end) + (get_local 3) + (get_local 1) + (i32.store align=4 offset=4) + (get_local 3) + (get_local 0) + (i32.store align=4) + (get_local 3) + (i32.const 3084) + (get_local 2) + (call 78) + (unreachable) + ) + (func 76 (type 5) (local i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 48) + (i32.sub) + (tee_local 3) + (i32.store align=4 offset=4) + (get_local 3) + (i32.const 0) + (i32.store align=4 offset=16) + (get_local 3) + (i64.const 1) + (i64.store align=8 offset=8) + (get_local 3) + (i32.const 24) + (i32.add) + (i32.const 16) + (i32.add) + (get_local 0) + (i32.const 16) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 3) + (i32.const 24) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 2) + (get_local 0) + (i32.const 8) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 3) + (get_local 0) + (i64.load align=4) + (i64.store align=8 offset=24) + (get_local 3) + (i32.const 8) + (i32.add) + (get_local 3) + (i32.const 24) + (i32.add) + (call 64) + (drop) + (get_local 2) + (get_local 3) + (i32.load align=4 offset=16) + (i32.store align=4) + (get_local 3) + (get_local 3) + (i64.load align=8 offset=8) + (i64.store align=8 offset=24) + (get_local 3) + (i32.const 24) + (i32.add) + (get_local 1) + (call 77) + (unreachable) + ) + (func 77 (type 5) (local i32 i32 i64) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 32) + (i32.sub) + (tee_local 3) + (i32.store align=4 offset=4) + (get_local 3) + (i32.const 8) + (i32.add) + (tee_local 2) + (get_local 0) + (i32.const 8) + (i32.add) + (i32.load align=4) + (i32.store align=4) + (get_local 3) + (get_local 0) + (i64.load align=4) + (i64.store align=8) + (block emptyblock) + (i32.const 12) + (call 107) + (tee_local 0) + (br_if 0) + (unreachable) + (unreachable) + (end) + (get_local 3) + (i32.const 16) + (i32.add) + (i32.const 8) + (i32.add) + (get_local 2) + (i32.load align=4) + (tee_local 2) + (i32.store align=4) + (get_local 0) + (get_local 3) + (i64.load align=8) + (tee_local 4) + (i64.store align=4) + (get_local 0) + (i32.const 8) + (i32.add) + (get_local 2) + (i32.store align=4) + (get_local 3) + (get_local 4) + (i64.store align=8 offset=16) + (get_local 0) + (i32.const 2552) + (get_local 1) + (call 78) + (unreachable) + ) + (func 78 (type 4) (local i32 i32 i32 i32 i32 i32 i32 i64) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 96) + (i32.sub) + (tee_local 9) + (i32.store align=4 offset=4) + (get_local 2) + (i32.load align=4 offset=12) + (set_local 6) + (get_local 2) + (i32.load align=4 offset=8) + (set_local 5) + (get_local 2) + (i32.load align=4 offset=4) + (set_local 4) + (get_local 2) + (i32.load align=4) + (set_local 3) + (block emptyblock) + (call 86) + (tee_local 2) + (br_if 0) + (call 40) + (unreachable) + (end) + (i32.const 1) + (set_local 7) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 2) + (get_local 2) + (i32.load align=4 offset=4) + (i32.const 1) + (i32.add) + (tee_local 7) + (i32.store align=1 offset=4) + (get_local 7) + (i32.const 3) + (i32.lt_u) + (br_if 1) + (get_local 9) + (i32.const 76) + (i32.add) + (i32.const 0) + (i32.store align=4) + (get_local 9) + (i32.const 1) + (i32.store align=4 offset=60) + (get_local 9) + (i32.const 2568) + (i32.store align=4 offset=56) + (get_local 9) + (i32.const 0) + (i32.store align=4 offset=64) + (get_local 9) + (i32.const 7076) + (i32.store align=4 offset=72) + (get_local 9) + (i32.const 56) + (i32.add) + (call 72) + (unreachable) + (unreachable) + (end) + (get_local 2) + (i64.const 1) + (i64.store align=4) + (get_local 2) + (i32.const 1) + (i32.store align=1 offset=4) + (end) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=2576) + (tee_local 2) + (i32.const -1) + (i32.le_s) + (br_if 0) + (i32.const 0) + (get_local 2) + (i32.const 1) + (i32.add) + (i32.store align=4 offset=2576) + (call 86) + (tee_local 2) + (br_if 1) + (call 40) + (unreachable) + (end) + (i32.const 2592) + (i32.const 25) + (i32.const 2620) + (call 75) + (unreachable) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 0) + (i32.const 2) + (set_local 8) + (get_local 2) + (i32.load align=4 offset=4) + (i32.const 1) + (i32.le_u) + (br_if 1) + (br 2) + (end) + (get_local 2) + (i64.const 1) + (i64.store align=4) + (get_local 2) + (i32.const 0) + (i32.store align=1 offset=4) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=1028) + (tee_local 2) + (i32.const 3) + (i32.gt_u) + (br_if 0) + (i32.const 4) + (set_local 8) + (block emptyblock) + (get_local 2) + (br_table [Ref(space=label,index=0,name=None), Ref(space=label,index=4,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=3,name=None), Ref(space=label,index=0,name=None)]) + (end) + (i32.const 0) + (i32.const 1) + (i32.store align=4 offset=1028) + (br 3) + (end) + (i32.const 1040) + (i32.const 40) + (i32.const 1080) + (call 75) + (unreachable) + (end) + (i32.const 2) + (set_local 8) + (br 1) + (end) + (i32.const 3) + (set_local 8) + (end) + (get_local 9) + (get_local 8) + (i32.store8 align=1 offset=15) + (get_local 9) + (get_local 4) + (i32.store align=4 offset=20) + (get_local 9) + (get_local 3) + (i32.store align=4 offset=16) + (get_local 9) + (get_local 5) + (i32.store align=4 offset=24) + (get_local 9) + (get_local 6) + (i32.store align=4 offset=28) + (block emptyblock) + (block emptyblock) + (get_local 0) + (get_local 1) + (i32.load align=4 offset=12) + (tee_local 2) + (call_indirect (type 3)) + (i64.const 1229646359891580772) + (i64.ne) + (br_if 0) + (get_local 9) + (get_local 0) + (i32.load align=4) + (i32.store align=4 offset=32) + (get_local 0) + (i32.load align=4 offset=4) + (set_local 2) + (br 1) + (end) + (block emptyblock) + (block emptyblock) + (get_local 0) + (get_local 2) + (call_indirect (type 3)) + (i64.const 3254967120849462314) + (i64.ne) + (br_if 0) + (get_local 0) + (i32.load align=4 offset=8) + (set_local 2) + (get_local 0) + (i32.load align=4) + (set_local 0) + (br 1) + (end) + (i32.const 8) + (set_local 2) + (i32.const 2720) + (set_local 0) + (end) + (get_local 9) + (get_local 0) + (i32.store align=4 offset=32) + (end) + (get_local 9) + (get_local 2) + (i32.store align=4 offset=36) + (i32.const 1) + (set_local 2) + (get_local 9) + (i32.const 1) + (i32.store8 align=1 offset=47) + (block emptyblock) + (block emptyblock) + (call 99) + (tee_local 6) + (br_if 0) + (i32.const 0) + (set_local 0) + (br 1) + (end) + (block emptyblock) + (block emptyblock) + (get_local 6) + (i32.load align=4 offset=16) + (tee_local 0) + (br_if 0) + (i32.const 0) + (set_local 0) + (br 1) + (end) + (get_local 6) + (i32.const 20) + (i32.add) + (i32.load align=4) + (tee_local 2) + (i32.const -1) + (i32.add) + (set_local 1) + (get_local 2) + (br_if 0) + (get_local 1) + (i32.const 0) + (call 128) + (unreachable) + (end) + (get_local 0) + (i32.eqz) + (set_local 2) + (end) + (get_local 9) + (i32.const 9) + (get_local 1) + (get_local 2) + (select) + (i32.store align=4 offset=52) + (get_local 9) + (i32.const 2704) + (get_local 0) + (get_local 2) + (select) + (i32.store align=4 offset=48) + (get_local 9) + (get_local 9) + (i32.const 32) + (i32.add) + (i32.store align=4 offset=60) + (get_local 9) + (get_local 9) + (i32.const 48) + (i32.add) + (i32.store align=4 offset=56) + (get_local 9) + (get_local 9) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=64) + (get_local 9) + (get_local 9) + (i32.const 24) + (i32.add) + (i32.store align=4 offset=68) + (get_local 9) + (get_local 9) + (i32.const 28) + (i32.add) + (i32.store align=4 offset=72) + (get_local 9) + (get_local 9) + (i32.const 15) + (i32.add) + (i32.store align=4 offset=76) + (block emptyblock) + (call 85) + (tee_local 2) + (br_if 0) + (call 40) + (unreachable) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.load align=4) + (tee_local 0) + (i32.const 1) + (i32.eq) + (br_if 0) + (get_local 2) + (i64.const 1) + (i64.store align=4) + (get_local 2) + (i32.load align=4 offset=8) + (set_local 1) + (get_local 2) + (i32.const 0) + (i32.store align=4 offset=8) + (block emptyblock) + (get_local 0) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.eqz) + (br_if 0) + (get_local 1) + (get_local 2) + (i32.load align=4 offset=12) + (tee_local 0) + (i32.load align=4) + (call_indirect (type 2)) + (get_local 0) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 1) + (call 109) + (end) + (get_local 2) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 1) + (end) + (block emptyblock) + (get_local 2) + (i32.const 4) + (i32.add) + (tee_local 0) + (i32.load align=4) + (br_if 0) + (get_local 0) + (i32.const -1) + (i32.store align=4) + (get_local 2) + (i64.load align=4 offset=8) + (set_local 10) + (i32.const 0) + (set_local 1) + (get_local 2) + (i32.const 0) + (i32.store align=4 offset=8) + (get_local 0) + (i32.const 0) + (i32.store align=4) + (get_local 9) + (get_local 9) + (i32.const 48) + (i32.add) + (i32.store align=4 offset=88) + (get_local 9) + (get_local 10) + (i64.store align=8 offset=80) + (get_local 10) + (i32.wrap/i64) + (tee_local 0) + (br_if 2) + (get_local 9) + (i32.const 56) + (i32.add) + (get_local 9) + (i32.const 88) + (i32.add) + (i32.const 2728) + (call 79) + (get_local 6) + (i32.eqz) + (br_if 4) + (br 3) + (end) + (call 38) + (unreachable) + (end) + (i32.const 3116) + (call 139) + (unreachable) + (end) + (get_local 9) + (i32.const 56) + (i32.add) + (get_local 0) + (get_local 10) + (i64.const 32) + (i64.shr_u) + (i32.wrap/i64) + (tee_local 1) + (call 79) + (block emptyblock) + (call 85) + (tee_local 2) + (br_if 0) + (call 40) + (unreachable) + (end) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.load align=4) + (tee_local 5) + (i32.const 1) + (i32.eq) + (br_if 0) + (get_local 2) + (i64.const 1) + (i64.store align=4) + (get_local 2) + (i32.load align=4 offset=8) + (set_local 4) + (get_local 2) + (i32.const 0) + (i32.store align=4 offset=8) + (block emptyblock) + (get_local 5) + (i32.eqz) + (br_if 0) + (get_local 4) + (i32.eqz) + (br_if 0) + (get_local 4) + (get_local 2) + (i32.load align=4 offset=12) + (tee_local 5) + (i32.load align=4) + (call_indirect (type 2)) + (get_local 5) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 4) + (call 109) + (end) + (get_local 2) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 1) + (end) + (block emptyblock) + (get_local 2) + (i32.const 4) + (i32.add) + (tee_local 5) + (i32.load align=4) + (br_if 0) + (get_local 5) + (i32.const -1) + (i32.store align=4) + (block emptyblock) + (get_local 2) + (i32.load align=4 offset=8) + (tee_local 5) + (i32.eqz) + (br_if 0) + (get_local 5) + (get_local 2) + (i32.const 12) + (i32.add) + (tee_local 4) + (i32.load align=4) + (i32.load align=4) + (call_indirect (type 2)) + (get_local 4) + (i32.load align=4) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 2) + (i32.const 8) + (i32.add) + (i32.load align=4) + (call 109) + (end) + (get_local 2) + (i32.const 12) + (i32.add) + (get_local 1) + (i32.store align=4) + (get_local 2) + (i32.const 8) + (i32.add) + (get_local 0) + (i32.store align=4) + (get_local 2) + (i32.const 4) + (i32.add) + (i32.const 0) + (i32.store align=4) + (i32.const 1) + (set_local 1) + (get_local 6) + (br_if 2) + (br 3) + (end) + (call 38) + (unreachable) + (end) + (i32.const 3116) + (call 139) + (unreachable) + (end) + (get_local 6) + (get_local 6) + (i32.load align=4) + (tee_local 2) + (i32.const -1) + (i32.add) + (i32.store align=4) + (get_local 2) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 6) + (call 60) + (end) + (block emptyblock) + (get_local 9) + (i32.load align=4 offset=80) + (tee_local 2) + (i32.eqz) + (get_local 1) + (i32.or) + (br_if 0) + (get_local 2) + (get_local 9) + (i32.load align=4 offset=84) + (i32.load align=4) + (call_indirect (type 2)) + (get_local 9) + (i32.load align=4 offset=84) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 9) + (i32.load align=4 offset=80) + (call 109) + (end) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=2576) + (i32.const -1) + (i32.add) + (i32.store align=4 offset=2576) + (block emptyblock) + (get_local 7) + (i32.const 2) + (i32.lt_u) + (br_if 0) + (get_local 9) + (i32.const 76) + (i32.add) + (i32.const 0) + (i32.store align=4) + (get_local 9) + (i32.const 1) + (i32.store align=4 offset=60) + (get_local 9) + (i32.const 2636) + (i32.store align=4 offset=56) + (get_local 9) + (i32.const 0) + (i32.store align=4 offset=64) + (get_local 9) + (i32.const 7076) + (i32.store align=4 offset=72) + (get_local 9) + (i32.const 56) + (i32.add) + (call 72) + (end) + (unreachable) + (unreachable) + ) + (func 79 (type 4) (local i32 i32 i32 i32 i32 i64) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 880) + (i32.sub) + (tee_local 7) + (i32.store align=4 offset=4) + (get_local 7) + (get_local 0) + (i32.load align=4) + (i32.store align=4 offset=32) + (get_local 0) + (i32.load align=4 offset=16) + (set_local 3) + (get_local 0) + (i32.load align=4 offset=12) + (set_local 4) + (get_local 0) + (i32.load align=4 offset=8) + (set_local 5) + (get_local 0) + (i32.load align=4 offset=4) + (set_local 6) + (get_local 7) + (i32.const 5) + (i32.store align=4 offset=36) + (get_local 7) + (get_local 6) + (i32.store align=4 offset=40) + (get_local 7) + (i32.const 32) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 5) + (i32.store align=4) + (get_local 7) + (get_local 5) + (i32.store align=4 offset=48) + (get_local 7) + (i32.const 32) + (i32.add) + (i32.const 20) + (i32.add) + (i32.const 5) + (i32.store align=4) + (get_local 7) + (get_local 4) + (i32.store align=4 offset=56) + (get_local 7) + (i32.const 60) + (i32.add) + (i32.const 12) + (i32.store align=4) + (get_local 7) + (get_local 3) + (i32.store align=4 offset=64) + (get_local 7) + (i32.const 68) + (i32.add) + (i32.const 12) + (i32.store align=4) + (get_local 7) + (i32.const 2760) + (i32.store align=4 offset=8) + (get_local 7) + (i32.const 6) + (i32.store align=4 offset=12) + (get_local 7) + (i32.const 7668) + (i32.store align=4 offset=16) + (get_local 7) + (i32.const 8) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 5) + (i32.store align=4) + (get_local 7) + (get_local 7) + (i32.const 32) + (i32.add) + (i32.store align=4 offset=24) + (get_local 7) + (i32.const 8) + (i32.add) + (i32.const 20) + (i32.add) + (i32.const 5) + (i32.store align=4) + (get_local 7) + (i32.const 864) + (i32.add) + (get_local 1) + (get_local 7) + (i32.const 8) + (i32.add) + (get_local 2) + (i32.load align=4 offset=24) + (tee_local 2) + (call_indirect (type 4)) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (br_if 0) + (get_local 7) + (i32.load8_u align=1 offset=864) + (i32.const 2) + (i32.ne) + (br_if 1) + (end) + (get_local 7) + (i32.load align=4 offset=868) + (tee_local 3) + (i32.load align=4) + (get_local 3) + (i32.load align=4 offset=4) + (i32.load align=4) + (call_indirect (type 2)) + (block emptyblock) + (get_local 3) + (i32.load align=4 offset=4) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 3) + (i32.load align=4) + (call 109) + (end) + (get_local 3) + (call 109) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=20) + (i32.load8_u align=1) + (i32.const 4) + (i32.ne) + (br_if 0) + (i32.const 0) + (i32.const 0) + (i32.const 0) + (i32.load8_u align=1 offset=2816) + (tee_local 0) + (get_local 0) + (i32.const 1) + (i32.eq) + (select) + (i32.store8 align=1 offset=2816) + (get_local 0) + (i32.eqz) + (br_if 1) + (get_local 7) + (i32.const 52) + (i32.add) + (i32.const 0) + (i32.store align=4) + (get_local 7) + (i32.const 1) + (i32.store align=4 offset=36) + (get_local 7) + (i32.const 2820) + (i32.store align=4 offset=32) + (get_local 7) + (i32.const 0) + (i32.store align=4 offset=40) + (get_local 7) + (i32.const 7076) + (i32.store align=4 offset=48) + (get_local 7) + (i32.const 8) + (i32.add) + (get_local 1) + (get_local 7) + (i32.const 32) + (i32.add) + (get_local 2) + (call_indirect (type 4)) + (block emptyblock) + (i32.const 0) + (br_if 0) + (get_local 7) + (i32.load8_u align=1 offset=8) + (i32.const 2) + (i32.ne) + (br_if 2) + (end) + (get_local 7) + (i32.load align=4 offset=12) + (tee_local 0) + (i32.load align=4) + (get_local 0) + (i32.load align=4 offset=4) + (i32.load align=4) + (call_indirect (type 2)) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=4) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 0) + (i32.load align=4) + (call 109) + (end) + (get_local 0) + (call 109) + (br 1) + (end) + (i32.const 0) + (i32.load8_u align=1 offset=1024) + (br_if 1) + (i32.const 0) + (i32.const 1) + (i32.store8 align=1 offset=1024) + (get_local 7) + (i32.const 832) + (i32.add) + (set_local 1) + (get_local 7) + (i32.const 32) + (i32.add) + (set_local 0) + (loop emptyblock) + (get_local 0) + (i64.const 0) + (i64.store align=4) + (get_local 0) + (i32.const 8) + (i32.add) + (tee_local 0) + (get_local 1) + (i32.ne) + (br_if 0) + (end) + (i32.const 35) + (call 107) + (tee_local 0) + (i32.eqz) + (br_if 2) + (get_local 7) + (i32.const 35) + (i32.store align=4 offset=868) + (get_local 7) + (get_local 0) + (i32.store align=4 offset=864) + (get_local 7) + (i32.const 0) + (i32.store align=4 offset=872) + (get_local 7) + (i32.const 864) + (i32.add) + (i32.const 1376) + (i32.const 35) + (call 111) + (get_local 7) + (i32.const 8) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 0) + (get_local 7) + (i32.load align=4 offset=872) + (tee_local 1) + (i32.store align=4) + (get_local 7) + (i32.const 848) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 2) + (get_local 1) + (i32.store align=4) + (get_local 7) + (get_local 7) + (i32.load align=4 offset=864) + (tee_local 1) + (i32.store align=4 offset=8) + (get_local 7) + (get_local 7) + (i32.load align=4 offset=868) + (tee_local 3) + (i32.store align=4 offset=12) + (get_local 7) + (get_local 3) + (i32.store align=4 offset=852) + (get_local 7) + (get_local 1) + (i32.store align=4 offset=848) + (get_local 0) + (get_local 2) + (i32.load align=4) + (tee_local 1) + (i32.store align=4) + (get_local 7) + (i32.const 832) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 2) + (get_local 1) + (i32.store align=4) + (get_local 7) + (get_local 7) + (i32.load align=4 offset=848) + (tee_local 1) + (i32.store align=4 offset=8) + (get_local 7) + (get_local 7) + (i32.load align=4 offset=852) + (tee_local 3) + (i32.store align=4 offset=12) + (get_local 7) + (get_local 3) + (i32.store align=4 offset=836) + (get_local 7) + (get_local 1) + (i32.store align=4 offset=832) + (get_local 0) + (get_local 2) + (i32.load align=4) + (tee_local 1) + (i32.store align=4) + (get_local 7) + (i32.const 864) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 3) + (get_local 1) + (i32.store align=4) + (get_local 7) + (get_local 7) + (i32.load align=4 offset=832) + (tee_local 1) + (i32.store align=4 offset=8) + (get_local 7) + (get_local 7) + (i32.load align=4 offset=836) + (tee_local 2) + (i32.store align=4 offset=12) + (get_local 7) + (get_local 2) + (i32.store align=4 offset=868) + (get_local 7) + (get_local 1) + (i32.store align=4 offset=864) + (i32.const 12) + (call 107) + (tee_local 1) + (i32.eqz) + (br_if 3) + (get_local 1) + (get_local 7) + (i64.load align=8 offset=864) + (tee_local 8) + (i64.store align=4) + (get_local 1) + (i32.const 8) + (i32.add) + (get_local 3) + (i32.load align=4) + (tee_local 2) + (i32.store align=4) + (get_local 0) + (get_local 2) + (i32.store align=4) + (get_local 7) + (get_local 8) + (i64.store align=8 offset=8) + (i32.const 12) + (call 107) + (tee_local 0) + (i32.eqz) + (br_if 3) + (get_local 0) + (get_local 1) + (i32.store align=4) + (get_local 0) + (i32.const 1340) + (i32.store align=4 offset=4) + (get_local 7) + (i32.const 8) + (i32.add) + (i32.const 2) + (i32.add) + (tee_local 1) + (get_local 7) + (i32.const 864) + (i32.add) + (i32.const 2) + (i32.add) + (i32.load8_u align=1) + (i32.store8 align=1) + (get_local 7) + (get_local 7) + (i32.load16_u align=1 offset=864) + (i32.store16 align=2 offset=8) + (get_local 0) + (i32.const 16) + (i32.store8 align=1 offset=8) + (get_local 0) + (i32.const 11) + (i32.add) + (get_local 1) + (i32.load8_u align=1) + (i32.store8 align=1) + (get_local 0) + (get_local 7) + (i32.load16_u align=2 offset=8) + (i32.store16 align=1 offset=9) + (i32.const 0) + (i32.const 0) + (i32.store8 align=1 offset=1024) + (get_local 0) + (i32.load align=4) + (get_local 0) + (i32.load align=4 offset=4) + (i32.load align=4) + (call_indirect (type 2)) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=4) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 0) + (i32.load align=4) + (call 109) + (end) + (get_local 0) + (call 109) + (end) + (i32.const 0) + (get_local 7) + (i32.const 880) + (i32.add) + (i32.store align=4 offset=4) + (return) + (end) + (i32.const 928) + (i32.const 32) + (i32.const 960) + (call 75) + (unreachable) + (end) + (get_local 7) + (i32.const 35) + (i32.store align=4 offset=12) + (get_local 7) + (get_local 0) + (i32.store align=4 offset=8) + (get_local 7) + (i32.const 1) + (i32.store align=4 offset=16) + (end) + (unreachable) + (unreachable) + ) + (func 80 (type 2) + + ) + (func 81 (type 11) + (get_local 0) + (call 54) + ) + (func 82 (type 5) + (get_local 0) + (i32.const 3) + (i32.store8 align=1) + ) + (func 83 (type 11) + (get_local 0) + (get_local 2) + (get_local 3) + (call 100) + ) + (func 84 (type 4) (local i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 32) + (i32.sub) + (tee_local 3) + (i32.store align=4 offset=4) + (get_local 1) + (i32.load align=4) + (set_local 1) + (get_local 3) + (i32.const 8) + (i32.add) + (i32.const 16) + (i32.add) + (get_local 2) + (i32.const 16) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 3) + (i32.const 8) + (i32.add) + (i32.const 8) + (i32.add) + (get_local 2) + (i32.const 8) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 3) + (get_local 2) + (i64.load align=4) + (i64.store align=8 offset=8) + (get_local 0) + (get_local 1) + (get_local 3) + (i32.const 8) + (i32.add) + (call 101) + (i32.const 0) + (get_local 3) + (i32.const 32) + (i32.add) + (i32.store align=4 offset=4) + ) + (func 85 (type 14) (local i32 i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 48) + (i32.sub) + (tee_local 4) + (i32.store align=4 offset=4) + (i32.const 0) + (set_local 3) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=2964) + (tee_local 2) + (br_if 0) + (i32.const 0) + (i32.load align=4 offset=2968) + (set_local 0) + (i32.const 8) + (call 107) + (tee_local 2) + (i32.eqz) + (br_if 1) + (get_local 2) + (i32.const 0) + (i32.store align=4) + (get_local 2) + (get_local 0) + (i32.store align=4 offset=4) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=2964) + (tee_local 0) + (get_local 2) + (get_local 0) + (select) + (i32.store align=4 offset=2964) + (get_local 0) + (i32.eqz) + (br_if 0) + (block emptyblock) + (get_local 2) + (i32.load align=4 offset=4) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 2) + (i32.load align=4) + (get_local 1) + (call_indirect (type 2)) + (end) + (get_local 2) + (call 109) + (get_local 0) + (set_local 2) + (end) + (block emptyblock) + (get_local 2) + (i32.load align=4) + (tee_local 2) + (i32.const 1) + (i32.eq) + (br_if 0) + (block emptyblock) + (get_local 2) + (br_if 0) + (i32.const 20) + (call 107) + (tee_local 2) + (i32.eqz) + (br_if 2) + (get_local 4) + (i32.const 36) + (i32.add) + (i32.const 8) + (i32.add) + (get_local 4) + (i32.const 24) + (i32.add) + (i32.const 8) + (i32.add) + (i32.load align=4) + (tee_local 3) + (i32.store align=4) + (get_local 4) + (i32.const 36) + (i32.add) + (i32.const 4) + (i32.add) + (get_local 4) + (i32.const 24) + (i32.add) + (i32.const 4) + (i32.add) + (i32.load align=4) + (tee_local 0) + (i32.store align=4) + (get_local 4) + (i32.const 12) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 1) + (get_local 3) + (i32.store align=4) + (get_local 4) + (i32.const 12) + (i32.add) + (i32.const 4) + (i32.add) + (tee_local 3) + (get_local 0) + (i32.store align=4) + (get_local 4) + (get_local 4) + (i32.load align=4 offset=24) + (tee_local 0) + (i32.store align=4 offset=36) + (get_local 4) + (get_local 0) + (i32.store align=4 offset=12) + (get_local 2) + (i32.const 0) + (i32.store align=4 offset=4) + (get_local 2) + (i32.const 2964) + (i32.store align=4) + (get_local 2) + (i32.const 16) + (i32.add) + (get_local 1) + (i32.load align=4) + (i32.store align=4) + (get_local 2) + (i32.const 12) + (i32.add) + (get_local 3) + (i32.load align=4) + (i32.store align=4) + (get_local 2) + (get_local 4) + (i32.load align=4 offset=12) + (i32.store align=4 offset=8) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=2964) + (tee_local 3) + (br_if 0) + (i32.const 0) + (i32.load align=4 offset=2968) + (set_local 0) + (i32.const 8) + (call 107) + (tee_local 3) + (i32.eqz) + (br_if 3) + (get_local 3) + (i32.const 0) + (i32.store align=4) + (get_local 3) + (get_local 0) + (i32.store align=4 offset=4) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=2964) + (tee_local 0) + (get_local 3) + (get_local 0) + (select) + (i32.store align=4 offset=2964) + (get_local 0) + (i32.eqz) + (br_if 0) + (block emptyblock) + (get_local 3) + (i32.load align=4 offset=4) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 3) + (i32.load align=4) + (get_local 1) + (call_indirect (type 2)) + (end) + (get_local 3) + (call 109) + (get_local 0) + (set_local 3) + (end) + (get_local 3) + (get_local 2) + (i32.store align=4) + (get_local 2) + (i32.const 4) + (i32.add) + (set_local 3) + (br 1) + (end) + (get_local 2) + (i32.const 4) + (i32.add) + (set_local 3) + (end) + (i32.const 0) + (get_local 4) + (i32.const 48) + (i32.add) + (i32.store align=4 offset=4) + (get_local 3) + (return) + (end) + (unreachable) + (unreachable) + ) + (func 86 (type 14) (local i32 i32 i32 i32) + (i32.const 0) + (set_local 3) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=3076) + (tee_local 2) + (br_if 0) + (i32.const 0) + (i32.load align=4 offset=3080) + (set_local 0) + (i32.const 8) + (call 107) + (tee_local 2) + (i32.eqz) + (br_if 1) + (get_local 2) + (i32.const 0) + (i32.store align=4) + (get_local 2) + (get_local 0) + (i32.store align=4 offset=4) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=3076) + (tee_local 0) + (get_local 2) + (get_local 0) + (select) + (i32.store align=4 offset=3076) + (get_local 0) + (i32.eqz) + (br_if 0) + (block emptyblock) + (get_local 2) + (i32.load align=4 offset=4) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 2) + (i32.load align=4) + (get_local 1) + (call_indirect (type 2)) + (end) + (get_local 2) + (call 109) + (get_local 0) + (set_local 2) + (end) + (block emptyblock) + (get_local 2) + (i32.load align=4) + (tee_local 2) + (i32.const 1) + (i32.eq) + (br_if 0) + (block emptyblock) + (get_local 2) + (br_if 0) + (i32.const 12) + (call 107) + (tee_local 2) + (i32.eqz) + (br_if 2) + (get_local 2) + (i32.const 3076) + (i32.store align=4) + (get_local 2) + (i64.const 0) + (i64.store align=4 offset=4) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=3076) + (tee_local 3) + (br_if 0) + (i32.const 0) + (i32.load align=4 offset=3080) + (set_local 0) + (i32.const 8) + (call 107) + (tee_local 3) + (i32.eqz) + (br_if 3) + (get_local 3) + (i32.const 0) + (i32.store align=4) + (get_local 3) + (get_local 0) + (i32.store align=4 offset=4) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=3076) + (tee_local 0) + (get_local 3) + (get_local 0) + (select) + (i32.store align=4 offset=3076) + (get_local 0) + (i32.eqz) + (br_if 0) + (block emptyblock) + (get_local 3) + (i32.load align=4 offset=4) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 3) + (i32.load align=4) + (get_local 1) + (call_indirect (type 2)) + (end) + (get_local 3) + (call 109) + (get_local 0) + (set_local 3) + (end) + (get_local 3) + (get_local 2) + (i32.store align=4) + (get_local 2) + (i32.const 4) + (i32.add) + (return) + (end) + (get_local 2) + (i32.const 4) + (i32.add) + (set_local 3) + (end) + (get_local 3) + (return) + (end) + (unreachable) + (unreachable) + ) + (func 87 (type 2) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 0) + (i32.load align=4) + (call 109) + (end) + ) + (func 88 (type 3) + (i64.const 1229646359891580772) + ) + (func 89 (type 6) (local i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 48) + (i32.sub) + (tee_local 5) + (i32.store align=4 offset=4) + (i32.const 39) + (set_local 4) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4) + (i32.load align=4) + (tee_local 0) + (i32.const 10000) + (i32.lt_u) + (br_if 0) + (i32.const 39) + (set_local 4) + (loop emptyblock) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.add) + (tee_local 2) + (i32.const -2) + (i32.add) + (get_local 0) + (i32.const 10000) + (i32.rem_u) + (tee_local 3) + (i32.const 100) + (i32.rem_u) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (get_local 2) + (i32.const -4) + (i32.add) + (get_local 3) + (i32.const 100) + (i32.div_u) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (get_local 4) + (i32.const -4) + (i32.add) + (set_local 4) + (get_local 0) + (i32.const 99999999) + (i32.gt_u) + (set_local 2) + (get_local 0) + (i32.const 10000) + (i32.div_u) + (tee_local 3) + (set_local 0) + (get_local 2) + (br_if 0) + (br 2) + (end) + (unreachable) + (end) + (get_local 0) + (set_local 3) + (end) + (block emptyblock) + (get_local 3) + (i32.const 100) + (i32.lt_s) + (br_if 0) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.const -2) + (i32.add) + (tee_local 4) + (i32.add) + (get_local 3) + (i32.const 100) + (i32.rem_u) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (get_local 3) + (i32.const 100) + (i32.div_u) + (set_local 3) + (end) + (block emptyblock) + (block emptyblock) + (get_local 3) + (i32.const 9) + (i32.gt_s) + (br_if 0) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.const -1) + (i32.add) + (tee_local 0) + (i32.add) + (get_local 3) + (i32.const 48) + (i32.add) + (i32.store8 align=1) + (br 1) + (end) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.const -2) + (i32.add) + (tee_local 0) + (i32.add) + (get_local 3) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (end) + (get_local 1) + (i32.const 1) + (i32.const 4752) + (i32.const 0) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 0) + (i32.add) + (i32.const 39) + (get_local 0) + (i32.sub) + (call 122) + (set_local 0) + (i32.const 0) + (get_local 5) + (i32.const 48) + (i32.add) + (i32.store align=4 offset=4) + (get_local 0) + ) + (func 90 (type 6) (local i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 48) + (i32.sub) + (tee_local 3) + (i32.store align=4 offset=4) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4) + (i32.load8_u align=1) + (tee_local 0) + (i32.const 100) + (i32.lt_u) + (br_if 0) + (get_local 3) + (get_local 0) + (i32.const 100) + (i32.rem_u) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1 offset=46) + (get_local 0) + (i32.const 100) + (i32.div_u) + (set_local 0) + (i32.const 36) + (set_local 2) + (br 1) + (end) + (i32.const 38) + (set_local 2) + (get_local 0) + (i32.const 9) + (i32.gt_u) + (br_if 1) + (end) + (get_local 3) + (i32.const 9) + (i32.add) + (get_local 2) + (i32.add) + (get_local 0) + (i32.const 48) + (i32.add) + (i32.store8 align=1) + (br 1) + (end) + (get_local 3) + (get_local 0) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1 offset=46) + (i32.const 37) + (set_local 2) + (end) + (get_local 1) + (i32.const 1) + (i32.const 4752) + (i32.const 0) + (get_local 3) + (i32.const 9) + (i32.add) + (get_local 2) + (i32.add) + (i32.const 39) + (get_local 2) + (i32.sub) + (call 122) + (set_local 0) + (i32.const 0) + (get_local 3) + (i32.const 48) + (i32.add) + (i32.store align=4 offset=4) + (get_local 0) + ) + (func 91 (type 6) + (get_local 1) + (get_local 0) + (i32.load align=4) + (get_local 0) + (i32.load align=4 offset=4) + (call 123) + ) + (func 92 (type 6) (local i32 i32 i32 i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 8) + (i32.store align=4 offset=4) + (get_local 0) + (i32.load align=4) + (set_local 0) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 1) + (i32.const 128) + (i32.ge_u) + (br_if 0) + (get_local 0) + (i32.load align=4 offset=8) + (tee_local 4) + (get_local 0) + (i32.load align=4 offset=4) + (i32.eq) + (br_if 1) + (br 2) + (end) + (i32.const 0) + (set_local 4) + (get_local 8) + (i32.const 0) + (i32.store align=4 offset=12) + (block emptyblock) + (block emptyblock) + (get_local 1) + (i32.const 2048) + (i32.ge_u) + (br_if 0) + (i32.const 2) + (set_local 7) + (i32.const 1) + (set_local 6) + (i32.const 192) + (set_local 5) + (i32.const 31) + (set_local 3) + (br 1) + (end) + (block emptyblock) + (block emptyblock) + (get_local 1) + (i32.const 65536) + (i32.ge_u) + (br_if 0) + (i32.const 3) + (set_local 7) + (i32.const 2) + (set_local 6) + (i32.const 1) + (set_local 4) + (i32.const 224) + (set_local 5) + (i32.const 0) + (set_local 3) + (i32.const 15) + (set_local 2) + (br 1) + (end) + (get_local 8) + (get_local 1) + (i32.const 18) + (i32.shr_u) + (i32.const 240) + (i32.or) + (i32.store8 align=1 offset=12) + (i32.const 4) + (set_local 7) + (i32.const 3) + (set_local 6) + (i32.const 2) + (set_local 4) + (i32.const 128) + (set_local 5) + (i32.const 1) + (set_local 3) + (i32.const 63) + (set_local 2) + (end) + (get_local 8) + (i32.const 12) + (i32.add) + (get_local 3) + (i32.or) + (get_local 2) + (get_local 1) + (i32.const 12) + (i32.shr_u) + (i32.and) + (get_local 5) + (i32.or) + (i32.store8 align=1) + (i32.const 128) + (set_local 5) + (i32.const 63) + (set_local 3) + (end) + (get_local 8) + (i32.const 12) + (i32.add) + (get_local 4) + (i32.add) + (get_local 3) + (get_local 1) + (i32.const 6) + (i32.shr_u) + (i32.and) + (get_local 5) + (i32.or) + (i32.store8 align=1) + (get_local 8) + (i32.const 12) + (i32.add) + (get_local 6) + (i32.add) + (get_local 1) + (i32.const 63) + (i32.and) + (i32.const 128) + (i32.or) + (i32.store8 align=1) + (get_local 0) + (get_local 8) + (i32.const 12) + (i32.add) + (get_local 7) + (call 34) + (br 2) + (end) + (get_local 0) + (call 63) + (get_local 0) + (i32.const 8) + (i32.add) + (i32.load align=4) + (set_local 4) + (end) + (get_local 0) + (i32.load align=4) + (get_local 4) + (i32.add) + (get_local 1) + (i32.store8 align=1) + (get_local 0) + (i32.const 8) + (i32.add) + (tee_local 1) + (get_local 1) + (i32.load align=4) + (i32.const 1) + (i32.add) + (i32.store align=4) + (end) + (i32.const 0) + (get_local 8) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (i32.const 0) + ) + (func 93 (type 6) + (get_local 0) + (i32.load align=4) + (get_local 1) + (call 43) + ) + (func 94 (type 6) (local i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 64) + (i32.sub) + (tee_local 4) + (i32.store align=4 offset=4) + (get_local 0) + (i32.load align=4) + (set_local 0) + (get_local 4) + (i32.const 8) + (i32.add) + (i32.const 16) + (i32.add) + (tee_local 2) + (get_local 1) + (i32.const 16) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 4) + (i32.const 8) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 3) + (get_local 1) + (i32.const 8) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 4) + (get_local 1) + (i64.load align=4) + (i64.store align=8 offset=8) + (get_local 4) + (get_local 0) + (i32.store align=4 offset=36) + (get_local 4) + (i32.const 40) + (i32.add) + (i32.const 16) + (i32.add) + (get_local 2) + (i64.load align=8) + (i64.store align=8) + (get_local 4) + (i32.const 40) + (i32.add) + (i32.const 8) + (i32.add) + (get_local 3) + (i64.load align=8) + (i64.store align=8) + (get_local 4) + (get_local 4) + (i64.load align=8 offset=8) + (i64.store align=8 offset=40) + (get_local 4) + (i32.const 36) + (i32.add) + (i32.const 2180) + (get_local 4) + (i32.const 40) + (i32.add) + (call 121) + (set_local 1) + (i32.const 0) + (get_local 4) + (i32.const 64) + (i32.add) + (i32.store align=4 offset=4) + (get_local 1) + ) + (func 95 (type 6) (local i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 64) + (i32.sub) + (tee_local 4) + (i32.store align=4 offset=4) + (get_local 0) + (i32.load align=4) + (set_local 0) + (get_local 4) + (i32.const 8) + (i32.add) + (i32.const 16) + (i32.add) + (tee_local 2) + (get_local 1) + (i32.const 16) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 4) + (i32.const 8) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 3) + (get_local 1) + (i32.const 8) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 4) + (get_local 1) + (i64.load align=4) + (i64.store align=8 offset=8) + (get_local 4) + (get_local 0) + (i32.store align=4 offset=36) + (get_local 4) + (i32.const 40) + (i32.add) + (i32.const 16) + (i32.add) + (get_local 2) + (i64.load align=8) + (i64.store align=8) + (get_local 4) + (i32.const 40) + (i32.add) + (i32.const 8) + (i32.add) + (get_local 3) + (i64.load align=8) + (i64.store align=8) + (get_local 4) + (get_local 4) + (i64.load align=8 offset=8) + (i64.store align=8 offset=40) + (get_local 4) + (i32.const 36) + (i32.add) + (i32.const 1148) + (get_local 4) + (i32.const 40) + (i32.add) + (call 121) + (set_local 1) + (i32.const 0) + (get_local 4) + (i32.const 64) + (i32.add) + (i32.store align=4 offset=4) + (get_local 1) + ) + (func 96 (type 0) (local i32 i64) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 3) + (i32.store align=4 offset=4) + (get_local 0) + (i32.load align=4) + (set_local 0) + (get_local 3) + (i32.const 8) + (i32.add) + (get_local 1) + (get_local 2) + (call 100) + (i32.const 0) + (set_local 1) + (block emptyblock) + (get_local 3) + (i32.load8_u align=1 offset=8) + (i32.const 3) + (i32.eq) + (br_if 0) + (get_local 3) + (i64.load align=8 offset=8) + (set_local 4) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (br_if 0) + (get_local 0) + (i32.load8_u align=1 offset=4) + (i32.const 2) + (i32.ne) + (br_if 1) + (end) + (get_local 0) + (i32.const 8) + (i32.add) + (i32.load align=4) + (tee_local 1) + (i32.load align=4) + (get_local 1) + (i32.load align=4 offset=4) + (i32.load align=4) + (call_indirect (type 2)) + (block emptyblock) + (get_local 1) + (i32.load align=4 offset=4) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.load align=4) + (call 109) + (end) + (get_local 1) + (call 109) + (end) + (get_local 0) + (i32.const 4) + (i32.add) + (get_local 4) + (i64.store align=4) + (i32.const 1) + (set_local 1) + (end) + (i32.const 0) + (get_local 3) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (get_local 1) + ) + (func 97 (type 0) + (get_local 0) + (i32.load align=4) + (get_local 1) + (get_local 2) + (call 34) + (i32.const 0) + ) + (func 98 (type 6) + (get_local 1) + (i32.load align=4 offset=24) + (i32.const 3104) + (i32.const 11) + (get_local 1) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + ) + (func 99 (type 14) (local i32 i32 i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 5) + (i32.store align=4 offset=4) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (call 68) + (tee_local 0) + (i32.eqz) + (br_if 0) + (get_local 0) + (i32.load align=4 offset=4) + (tee_local 4) + (i32.const 3) + (i32.ne) + (br_if 1) + (get_local 0) + (i64.const 8589934592) + (i64.store align=4) + (get_local 0) + (i32.const 0) + (i32.store align=4) + (br 2) + (end) + (i32.const 0) + (set_local 0) + (br 4) + (end) + (get_local 0) + (i32.load align=4) + (tee_local 1) + (i32.const -1) + (i32.eq) + (br_if 6) + (get_local 0) + (get_local 1) + (i32.store align=4) + (get_local 4) + (i32.const 2) + (i32.ne) + (br_if 1) + (end) + (get_local 5) + (i32.const 0) + (i32.store align=4) + (get_local 5) + (call 59) + (set_local 4) + (get_local 0) + (i32.load align=4) + (br_if 3) + (get_local 0) + (i32.const -1) + (i32.store align=4) + (block emptyblock) + (get_local 0) + (i32.const 4) + (i32.add) + (tee_local 1) + (i32.load align=4) + (i32.const 2) + (i32.eq) + (br_if 0) + (get_local 0) + (i32.const 12) + (i32.add) + (tee_local 2) + (i32.load align=4) + (tee_local 3) + (get_local 3) + (i32.load align=4) + (tee_local 3) + (i32.const -1) + (i32.add) + (i32.store align=4) + (get_local 3) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 2) + (i32.load align=4) + (call 60) + (end) + (get_local 0) + (i32.const 0) + (i32.store align=4) + (get_local 0) + (i32.const 12) + (i32.add) + (get_local 4) + (i32.store align=4) + (get_local 1) + (i64.const 0) + (i64.store align=4) + (br 1) + (end) + (get_local 1) + (br_if 2) + (end) + (get_local 0) + (i32.const -1) + (i32.store align=4) + (get_local 0) + (i32.load align=4 offset=12) + (tee_local 4) + (get_local 4) + (i32.load align=4) + (tee_local 4) + (i32.const 1) + (i32.add) + (i32.store align=4) + (get_local 4) + (i32.const -1) + (i32.le_s) + (br_if 2) + (get_local 0) + (i32.const 0) + (i32.store align=4) + (get_local 0) + (i32.const 12) + (i32.add) + (i32.load align=4) + (set_local 0) + (end) + (i32.const 0) + (get_local 5) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (get_local 0) + (return) + (end) + (call 38) + (unreachable) + (end) + (unreachable) + (unreachable) + (end) + (call 39) + (unreachable) + ) + (func 100 (type 4) (local i32 i32 i32 i32 i32 i64) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 80) + (i32.sub) + (tee_local 7) + (i32.store align=4 offset=4) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.eqz) + (br_if 0) + (get_local 7) + (i32.const 5) + (i32.or) + (set_local 3) + (get_local 7) + (i32.const 8) + (i32.add) + (set_local 5) + (loop emptyblock) + (get_local 7) + (call 54) + (block emptyblock) + (get_local 7) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 3) + (set_local 6) + (block emptyblock) + (get_local 7) + (i32.load8_u align=1 offset=4) + (tee_local 4) + (i32.const 3) + (i32.and) + (i32.const 1) + (i32.eq) + (br_if 0) + (get_local 4) + (i32.const 2) + (i32.ne) + (br_if 4) + (get_local 5) + (i32.load align=4) + (i32.const 8) + (i32.add) + (set_local 6) + (end) + (get_local 6) + (i32.load8_u align=1) + (i32.const 15) + (i32.ne) + (br_if 3) + (get_local 4) + (i32.const 2) + (i32.lt_u) + (br_if 1) + (get_local 5) + (i32.load align=4) + (tee_local 4) + (i32.load align=4) + (get_local 4) + (i32.load align=4 offset=4) + (i32.load align=4) + (call_indirect (type 2)) + (block emptyblock) + (get_local 4) + (i32.load align=4 offset=4) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 4) + (i32.load align=4) + (call 109) + (end) + (get_local 4) + (call 109) + (br 1) + (end) + (get_local 7) + (i32.load align=4 offset=4) + (tee_local 4) + (i32.eqz) + (br_if 3) + (get_local 2) + (get_local 4) + (i32.lt_u) + (br_if 4) + (get_local 1) + (get_local 4) + (i32.add) + (set_local 1) + (get_local 2) + (get_local 4) + (i32.sub) + (tee_local 2) + (br_if 0) + (end) + (end) + (get_local 0) + (i32.const 3) + (i32.store8 align=1) + (br 5) + (end) + (get_local 0) + (get_local 7) + (i64.load align=4 offset=4) + (i64.store align=4) + (br 4) + (end) + (i32.const 28) + (call 107) + (tee_local 4) + (i32.eqz) + (br_if 1) + (get_local 7) + (i32.const 28) + (i32.store align=4 offset=52) + (get_local 7) + (get_local 4) + (i32.store align=4 offset=48) + (get_local 7) + (i32.const 0) + (i32.store align=4 offset=56) + (get_local 7) + (i32.const 48) + (i32.add) + (i32.const 3456) + (i32.const 28) + (call 111) + (get_local 7) + (i32.const 64) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 4) + (get_local 7) + (i32.load align=4 offset=56) + (tee_local 6) + (i32.store align=4) + (get_local 7) + (i32.const 32) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 3) + (get_local 6) + (i32.store align=4) + (get_local 7) + (get_local 7) + (i32.load align=4 offset=48) + (tee_local 6) + (i32.store align=4 offset=64) + (get_local 7) + (get_local 7) + (i32.load align=4 offset=52) + (tee_local 2) + (i32.store align=4 offset=68) + (get_local 7) + (get_local 2) + (i32.store align=4 offset=36) + (get_local 7) + (get_local 6) + (i32.store align=4 offset=32) + (get_local 4) + (get_local 3) + (i32.load align=4) + (tee_local 6) + (i32.store align=4) + (get_local 7) + (i32.const 16) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 3) + (get_local 6) + (i32.store align=4) + (get_local 7) + (get_local 7) + (i32.load align=4 offset=32) + (tee_local 6) + (i32.store align=4 offset=64) + (get_local 7) + (get_local 7) + (i32.load align=4 offset=36) + (tee_local 2) + (i32.store align=4 offset=68) + (get_local 7) + (get_local 2) + (i32.store align=4 offset=20) + (get_local 7) + (get_local 6) + (i32.store align=4 offset=16) + (get_local 4) + (get_local 3) + (i32.load align=4) + (tee_local 6) + (i32.store align=4) + (get_local 7) + (i32.const 48) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 2) + (get_local 6) + (i32.store align=4) + (get_local 7) + (get_local 7) + (i32.load align=4 offset=16) + (tee_local 6) + (i32.store align=4 offset=64) + (get_local 7) + (get_local 7) + (i32.load align=4 offset=20) + (tee_local 3) + (i32.store align=4 offset=68) + (get_local 7) + (get_local 3) + (i32.store align=4 offset=52) + (get_local 7) + (get_local 6) + (i32.store align=4 offset=48) + (i32.const 12) + (call 107) + (tee_local 6) + (i32.eqz) + (br_if 2) + (get_local 6) + (get_local 7) + (i64.load align=8 offset=48) + (tee_local 8) + (i64.store align=4) + (get_local 6) + (i32.const 8) + (i32.add) + (get_local 2) + (i32.load align=4) + (tee_local 3) + (i32.store align=4) + (get_local 4) + (get_local 3) + (i32.store align=4) + (get_local 7) + (get_local 8) + (i64.store align=8 offset=64) + (i32.const 12) + (call 107) + (tee_local 4) + (i32.eqz) + (br_if 2) + (get_local 4) + (get_local 6) + (i32.store align=4) + (get_local 4) + (i32.const 1340) + (i32.store align=4 offset=4) + (get_local 7) + (i32.const 64) + (i32.add) + (i32.const 2) + (i32.add) + (tee_local 6) + (get_local 7) + (i32.const 48) + (i32.add) + (i32.const 2) + (i32.add) + (i32.load8_u align=1) + (i32.store8 align=1) + (get_local 7) + (get_local 7) + (i32.load16_u align=1 offset=48) + (i32.store16 align=2 offset=64) + (get_local 4) + (i32.const 14) + (i32.store8 align=1 offset=8) + (get_local 4) + (i32.const 11) + (i32.add) + (get_local 6) + (i32.load8_u align=1) + (i32.store8 align=1) + (get_local 4) + (get_local 7) + (i32.load16_u align=2 offset=64) + (i32.store16 align=1 offset=9) + (get_local 0) + (i32.const 4) + (i32.add) + (get_local 4) + (i32.store align=4) + (get_local 0) + (i32.const 2) + (i32.store align=4) + (get_local 7) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 3) + (get_local 7) + (i32.load8_u align=1 offset=4) + (i32.const 255) + (i32.and) + (i32.const 2) + (i32.lt_u) + (br_if 3) + (get_local 7) + (i32.const 8) + (i32.add) + (i32.load align=4) + (tee_local 4) + (i32.load align=4) + (get_local 4) + (i32.load align=4 offset=4) + (i32.load align=4) + (call_indirect (type 2)) + (block emptyblock) + (get_local 4) + (i32.load align=4 offset=4) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 4) + (i32.load align=4) + (call 109) + (end) + (get_local 4) + (call 109) + (br 3) + (end) + (get_local 4) + (get_local 2) + (call 129) + (unreachable) + (end) + (get_local 7) + (i32.const 28) + (i32.store align=4 offset=68) + (get_local 7) + (get_local 4) + (i32.store align=4 offset=64) + (get_local 7) + (i32.const 1) + (i32.store align=4 offset=72) + (end) + (unreachable) + (unreachable) + (end) + (i32.const 0) + (get_local 7) + (i32.const 80) + (i32.add) + (i32.store align=4 offset=4) + ) + (func 101 (type 4) (local i32 i32 i32 i64) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 96) + (i32.sub) + (tee_local 5) + (i32.store align=4 offset=4) + (get_local 5) + (i32.const 19) + (i32.add) + (get_local 5) + (i32.const 30) + (i32.add) + (i32.load8_u align=1) + (i32.store8 align=1) + (get_local 5) + (i32.const 17) + (i32.add) + (get_local 5) + (i32.const 28) + (i32.add) + (i32.load16_u align=1) + (i32.store16 align=1) + (get_local 5) + (get_local 1) + (i32.store align=4 offset=8) + (get_local 5) + (i32.const 3) + (i32.store8 align=1 offset=12) + (get_local 5) + (get_local 5) + (i32.load align=1 offset=24) + (i32.store align=1 offset=13) + (get_local 5) + (i32.const 24) + (i32.add) + (i32.const 16) + (i32.add) + (get_local 2) + (i32.const 16) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 5) + (i32.const 24) + (i32.add) + (i32.const 8) + (i32.add) + (get_local 2) + (i32.const 8) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 5) + (get_local 2) + (i64.load align=4) + (i64.store align=8 offset=24) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 5) + (i32.const 8) + (i32.add) + (i32.const 3484) + (get_local 5) + (i32.const 24) + (i32.add) + (call 121) + (i32.eqz) + (br_if 0) + (get_local 5) + (i32.load8_u align=1 offset=12) + (i32.const 3) + (i32.ne) + (br_if 3) + (i32.const 15) + (call 107) + (tee_local 2) + (i32.eqz) + (br_if 5) + (get_local 5) + (i32.const 15) + (i32.store align=4 offset=84) + (get_local 5) + (get_local 2) + (i32.store align=4 offset=80) + (get_local 5) + (i32.const 0) + (i32.store align=4 offset=88) + (get_local 5) + (i32.const 80) + (i32.add) + (i32.const 3520) + (i32.const 15) + (call 111) + (get_local 5) + (i32.const 24) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 2) + (get_local 5) + (i32.load align=4 offset=88) + (tee_local 1) + (i32.store align=4) + (get_local 5) + (i32.const 64) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 3) + (get_local 1) + (i32.store align=4) + (get_local 5) + (get_local 5) + (i32.load align=4 offset=80) + (tee_local 1) + (i32.store align=4 offset=24) + (get_local 5) + (get_local 5) + (i32.load align=4 offset=84) + (tee_local 4) + (i32.store align=4 offset=28) + (get_local 5) + (get_local 4) + (i32.store align=4 offset=68) + (get_local 5) + (get_local 1) + (i32.store align=4 offset=64) + (get_local 2) + (get_local 3) + (i32.load align=4) + (tee_local 1) + (i32.store align=4) + (get_local 5) + (i32.const 48) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 3) + (get_local 1) + (i32.store align=4) + (get_local 5) + (get_local 5) + (i32.load align=4 offset=64) + (tee_local 1) + (i32.store align=4 offset=24) + (get_local 5) + (get_local 5) + (i32.load align=4 offset=68) + (tee_local 4) + (i32.store align=4 offset=28) + (get_local 5) + (get_local 4) + (i32.store align=4 offset=52) + (get_local 5) + (get_local 1) + (i32.store align=4 offset=48) + (get_local 2) + (get_local 3) + (i32.load align=4) + (tee_local 1) + (i32.store align=4) + (get_local 5) + (i32.const 80) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 4) + (get_local 1) + (i32.store align=4) + (get_local 5) + (get_local 5) + (i32.load align=4 offset=48) + (tee_local 1) + (i32.store align=4 offset=24) + (get_local 5) + (get_local 5) + (i32.load align=4 offset=52) + (tee_local 3) + (i32.store align=4 offset=28) + (get_local 5) + (get_local 3) + (i32.store align=4 offset=84) + (get_local 5) + (get_local 1) + (i32.store align=4 offset=80) + (i32.const 12) + (call 107) + (tee_local 1) + (i32.eqz) + (br_if 6) + (get_local 1) + (get_local 5) + (i64.load align=8 offset=80) + (tee_local 6) + (i64.store align=4) + (get_local 1) + (i32.const 8) + (i32.add) + (get_local 4) + (i32.load align=4) + (tee_local 3) + (i32.store align=4) + (get_local 2) + (get_local 3) + (i32.store align=4) + (get_local 5) + (get_local 6) + (i64.store align=8 offset=24) + (i32.const 12) + (call 107) + (tee_local 2) + (i32.eqz) + (br_if 6) + (get_local 2) + (get_local 1) + (i32.store align=4) + (get_local 2) + (i32.const 1340) + (i32.store align=4 offset=4) + (get_local 5) + (i32.const 24) + (i32.add) + (i32.const 2) + (i32.add) + (tee_local 1) + (get_local 5) + (i32.const 80) + (i32.add) + (i32.const 2) + (i32.add) + (i32.load8_u align=1) + (i32.store8 align=1) + (get_local 5) + (get_local 5) + (i32.load16_u align=1 offset=80) + (i32.store16 align=2 offset=24) + (get_local 2) + (i32.const 16) + (i32.store8 align=1 offset=8) + (get_local 2) + (i32.const 11) + (i32.add) + (get_local 1) + (i32.load8_u align=1) + (i32.store8 align=1) + (get_local 2) + (get_local 5) + (i32.load16_u align=2 offset=24) + (i32.store16 align=1 offset=9) + (get_local 0) + (i32.const 4) + (i32.add) + (get_local 2) + (i32.store align=4) + (get_local 0) + (i32.const 2) + (i32.store align=4) + (i32.const 0) + (i32.eqz) + (br_if 1) + (br 2) + (end) + (get_local 0) + (i32.const 3) + (i32.store8 align=1) + (i32.const 0) + (br_if 1) + (end) + (get_local 5) + (i32.load8_u align=1 offset=12) + (i32.const 2) + (i32.ne) + (br_if 2) + (end) + (get_local 5) + (i32.const 16) + (i32.add) + (tee_local 0) + (i32.load align=4) + (tee_local 2) + (i32.load align=4) + (get_local 2) + (i32.load align=4 offset=4) + (i32.load align=4) + (call_indirect (type 2)) + (block emptyblock) + (get_local 2) + (i32.load align=4 offset=4) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 2) + (i32.load align=4) + (call 109) + (end) + (get_local 0) + (i32.load align=4) + (call 109) + (br 1) + (end) + (get_local 0) + (get_local 5) + (i64.load align=4 offset=12) + (i64.store align=4) + (end) + (i32.const 0) + (get_local 5) + (i32.const 96) + (i32.add) + (i32.store align=4 offset=4) + (return) + (end) + (get_local 5) + (i32.const 15) + (i32.store align=4 offset=28) + (get_local 5) + (get_local 2) + (i32.store align=4 offset=24) + (get_local 5) + (i32.const 1) + (i32.store align=4 offset=32) + (end) + (unreachable) + (unreachable) + ) + (func 102 (type 2) (local i32) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (br_if 0) + (get_local 0) + (i32.load8_u align=1 offset=4) + (i32.const 2) + (i32.ne) + (br_if 1) + (end) + (get_local 0) + (i32.const 8) + (i32.add) + (tee_local 1) + (i32.load align=4) + (tee_local 0) + (i32.load align=4) + (get_local 0) + (i32.load align=4 offset=4) + (i32.load align=4) + (call_indirect (type 2)) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=4) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 0) + (i32.load align=4) + (call 109) + (end) + (get_local 1) + (i32.load align=4) + (call 109) + (end) + ) + (func 103 (type 4) (local i32 i32 i32 i32 i32 i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 64) + (i32.sub) + (tee_local 10) + (i32.store align=4 offset=4) + (get_local 10) + (i32.const 24) + (i32.add) + (i32.const 2) + (i32.or) + (set_local 3) + (get_local 10) + (i32.const 32) + (i32.add) + (set_local 5) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4) + (tee_local 8) + (br_if 0) + (i32.const 10) + (set_local 11) + (br 1) + (end) + (i32.const 0) + (set_local 11) + (end) + (loop emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 11) + (br_table [Ref(space=label,index=8,name=None), Ref(space=label,index=9,name=None), Ref(space=label,index=10,name=None), Ref(space=label,index=81,name=None), Ref(space=label,index=11,name=None), Ref(space=label,index=12,name=None), Ref(space=label,index=13,name=None), Ref(space=label,index=4,name=None), Ref(space=label,index=5,name=None), Ref(space=label,index=7,name=None), Ref(space=label,index=3,name=None), Ref(space=label,index=36,name=None), Ref(space=label,index=91,name=None), Ref(space=label,index=37,name=None), Ref(space=label,index=38,name=None), Ref(space=label,index=39,name=None), Ref(space=label,index=40,name=None), Ref(space=label,index=41,name=None), Ref(space=label,index=57,name=None), Ref(space=label,index=84,name=None), Ref(space=label,index=66,name=None), Ref(space=label,index=68,name=None), Ref(space=label,index=69,name=None), Ref(space=label,index=67,name=None), Ref(space=label,index=42,name=None), Ref(space=label,index=85,name=None), Ref(space=label,index=43,name=None), Ref(space=label,index=44,name=None), Ref(space=label,index=46,name=None), Ref(space=label,index=47,name=None), Ref(space=label,index=87,name=None), Ref(space=label,index=48,name=None), Ref(space=label,index=49,name=None), Ref(space=label,index=58,name=None), Ref(space=label,index=88,name=None), Ref(space=label,index=59,name=None), Ref(space=label,index=65,name=None), Ref(space=label,index=60,name=None), Ref(space=label,index=61,name=None), Ref(space=label,index=64,name=None), Ref(space=label,index=62,name=None), Ref(space=label,index=63,name=None), Ref(space=label,index=89,name=None), Ref(space=label,index=50,name=None), Ref(space=label,index=56,name=None), Ref(space=label,index=51,name=None), Ref(space=label,index=52,name=None), Ref(space=label,index=55,name=None), Ref(space=label,index=53,name=None), Ref(space=label,index=54,name=None), Ref(space=label,index=90,name=None), Ref(space=label,index=45,name=None), Ref(space=label,index=86,name=None), Ref(space=label,index=83,name=None), Ref(space=label,index=6,name=None), Ref(space=label,index=14,name=None), Ref(space=label,index=15,name=None), Ref(space=label,index=0,name=None), Ref(space=label,index=1,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=16,name=None), Ref(space=label,index=17,name=None), Ref(space=label,index=18,name=None), Ref(space=label,index=72,name=None), Ref(space=label,index=19,name=None), Ref(space=label,index=20,name=None), Ref(space=label,index=22,name=None), Ref(space=label,index=23,name=None), Ref(space=label,index=74,name=None), Ref(space=label,index=24,name=None), Ref(space=label,index=25,name=None), Ref(space=label,index=78,name=None), Ref(space=label,index=26,name=None), Ref(space=label,index=32,name=None), Ref(space=label,index=33,name=None), Ref(space=label,index=35,name=None), Ref(space=label,index=34,name=None), Ref(space=label,index=27,name=None), Ref(space=label,index=28,name=None), Ref(space=label,index=31,name=None), Ref(space=label,index=29,name=None), Ref(space=label,index=30,name=None), Ref(space=label,index=80,name=None), Ref(space=label,index=75,name=None), Ref(space=label,index=76,name=None), Ref(space=label,index=77,name=None), Ref(space=label,index=79,name=None), Ref(space=label,index=21,name=None), Ref(space=label,index=73,name=None), Ref(space=label,index=70,name=None), Ref(space=label,index=82,name=None), Ref(space=label,index=71,name=None), Ref(space=label,index=71,name=None)]) + (end) + (get_local 0) + (i32.load align=4) + (set_local 8) + (get_local 10) + (i32.load align=4 offset=24) + (tee_local 4) + (i32.eqz) + (br_if 103) + (i32.const 58) + (set_local 11) + (br 154) + (end) + (get_local 4) + (get_local 4) + (i32.load align=4) + (tee_local 6) + (i32.const -1) + (i32.add) + (i32.store align=4) + (get_local 6) + (i32.const 1) + (i32.ne) + (br_if 103) + (i32.const 59) + (set_local 11) + (br 153) + (end) + (get_local 10) + (i32.load align=4 offset=24) + (call 60) + (get_local 8) + (br_if 93) + (i32.const 10) + (set_local 11) + (br 152) + (end) + (get_local 0) + (get_local 0) + (i32.load align=4) + (tee_local 8) + (i32.const 2) + (get_local 8) + (select) + (i32.store align=4) + (get_local 8) + (br_if 99) + (br 98) + (end) + (get_local 10) + (i32.load align=4 offset=24) + (tee_local 4) + (i32.eqz) + (br_if 88) + (i32.const 8) + (set_local 11) + (br 150) + (end) + (get_local 4) + (get_local 4) + (i32.load align=4) + (tee_local 6) + (i32.const -1) + (i32.add) + (i32.store align=4) + (get_local 6) + (i32.const 1) + (i32.ne) + (br_if 88) + (i32.const 54) + (set_local 11) + (br 149) + (end) + (get_local 10) + (i32.load align=4 offset=24) + (call 60) + (i32.const 9) + (set_local 11) + (br 148) + (end) + (get_local 8) + (i32.eqz) + (br_if 84) + (i32.const 0) + (set_local 11) + (br 147) + (end) + (get_local 8) + (i32.const 3) + (i32.eq) + (br_if 86) + (i32.const 1) + (set_local 11) + (br 146) + (end) + (get_local 8) + (i32.const 1) + (i32.eq) + (br_if 87) + (i32.const 2) + (set_local 11) + (br 145) + (end) + (get_local 8) + (i32.const 3) + (i32.and) + (i32.const 2) + (i32.ne) + (br_if 87) + (i32.const 4) + (set_local 11) + (br 144) + (end) + (call 99) + (tee_local 4) + (i32.eqz) + (br_if 87) + (i32.const 5) + (set_local 11) + (br 143) + (end) + (get_local 5) + (i32.const 0) + (i32.store8 align=1) + (get_local 10) + (get_local 4) + (i32.store align=4 offset=24) + (get_local 10) + (i32.const 0) + (i32.store align=4 offset=28) + (i32.const 6) + (set_local 11) + (br 142) + (end) + (get_local 8) + (i32.const 3) + (i32.and) + (i32.const 2) + (i32.ne) + (br_if 87) + (i32.const 55) + (set_local 11) + (br 141) + (end) + (get_local 0) + (get_local 3) + (get_local 0) + (i32.load align=4) + (tee_local 4) + (get_local 4) + (get_local 8) + (i32.eq) + (select) + (i32.store align=4) + (get_local 10) + (get_local 8) + (i32.const -4) + (i32.and) + (i32.store align=4 offset=28) + (get_local 4) + (get_local 8) + (i32.ne) + (set_local 6) + (get_local 4) + (set_local 8) + (get_local 6) + (br_if 85) + (i32.const 56) + (set_local 11) + (br 140) + (end) + (get_local 5) + (i32.load8_u align=1) + (br_if 119) + (i32.const 60) + (set_local 11) + (br 139) + (end) + (call 99) + (tee_local 8) + (i32.eqz) + (br_if 121) + (i32.const 61) + (set_local 11) + (br 138) + (end) + (get_local 8) + (i32.const 0) + (get_local 8) + (i32.load align=4 offset=24) + (tee_local 4) + (get_local 4) + (i32.const 2) + (i32.eq) + (tee_local 4) + (select) + (i32.store align=4 offset=24) + (get_local 4) + (br_if 121) + (i32.const 62) + (set_local 11) + (br 137) + (end) + (get_local 8) + (i32.const 28) + (i32.add) + (tee_local 7) + (i32.load align=4) + (tee_local 4) + (i32.load8_u align=1) + (br_if 121) + (i32.const 64) + (set_local 11) + (br 136) + (end) + (get_local 4) + (i32.const 1) + (i32.store8 align=1) + (call 86) + (tee_local 4) + (i32.eqz) + (br_if 121) + (i32.const 65) + (set_local 11) + (br 135) + (end) + (get_local 4) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 121) + (i32.const 87) + (set_local 11) + (br 134) + (end) + (get_local 4) + (i32.const 4) + (i32.add) + (set_local 9) + (get_local 4) + (i32.load align=4 offset=4) + (set_local 6) + (br 121) + (end) + (get_local 4) + (i64.const 1) + (i64.store align=4) + (get_local 4) + (i32.const 4) + (i32.add) + (set_local 9) + (i32.const 0) + (set_local 6) + (i32.const 67) + (set_local 11) + (br 132) + (end) + (get_local 9) + (get_local 6) + (i32.store align=1) + (get_local 8) + (i32.const 32) + (i32.add) + (tee_local 9) + (i32.load8_u align=1) + (br_if 120) + (i32.const 69) + (set_local 11) + (br 131) + (end) + (get_local 8) + (get_local 8) + (i32.load align=4 offset=24) + (tee_local 4) + (i32.const 1) + (get_local 4) + (select) + (i32.store align=4 offset=24) + (get_local 10) + (get_local 6) + (i32.const 0) + (i32.ne) + (i32.store8 align=1 offset=48) + (get_local 4) + (i32.eqz) + (br_if 120) + (i32.const 70) + (set_local 11) + (br 130) + (end) + (get_local 4) + (i32.const 2) + (i32.ne) + (br_if 120) + (i32.const 72) + (set_local 11) + (br 129) + (end) + (get_local 10) + (i32.load8_u align=1 offset=48) + (br_if 120) + (i32.const 77) + (set_local 11) + (br 128) + (end) + (call 86) + (tee_local 4) + (i32.eqz) + (br_if 123) + (i32.const 78) + (set_local 11) + (br 127) + (end) + (get_local 4) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 123) + (i32.const 80) + (set_local 11) + (br 126) + (end) + (get_local 4) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 118) + (i32.const 81) + (set_local 11) + (br 125) + (end) + (get_local 9) + (i32.const 1) + (i32.store8 align=1) + (br 118) + (end) + (get_local 4) + (i64.const 1) + (i64.store align=4) + (get_local 4) + (i32.const 0) + (i32.store align=1 offset=4) + (i32.const 73) + (set_local 11) + (br 123) + (end) + (get_local 7) + (i32.load align=4) + (i32.const 0) + (i32.store8 align=1) + (i32.const 74) + (set_local 11) + (br 122) + (end) + (get_local 8) + (get_local 8) + (i32.load align=4) + (tee_local 4) + (i32.const -1) + (i32.add) + (i32.store align=4) + (get_local 4) + (i32.const 1) + (i32.ne) + (br_if 116) + (i32.const 76) + (set_local 11) + (br 121) + (end) + (get_local 8) + (call 60) + (i32.const 75) + (set_local 11) + (br 120) + (end) + (get_local 5) + (i32.load8_u align=1) + (i32.eqz) + (br_if 100) + (br 101) + (end) + (get_local 1) + (i32.const 0) + (get_local 2) + (i32.load align=4 offset=12) + (call_indirect (type 5)) + (get_local 0) + (i32.load align=4) + (set_local 8) + (get_local 0) + (i32.const 3) + (i32.store align=4) + (get_local 10) + (get_local 8) + (i32.const 3) + (i32.and) + (tee_local 4) + (i32.store align=4 offset=12) + (get_local 10) + (get_local 10) + (i32.const 12) + (i32.add) + (i32.store align=4 offset=16) + (get_local 10) + (i32.const 3732) + (i32.store align=4 offset=20) + (get_local 4) + (i32.const 2) + (i32.ne) + (br_if 69) + (i32.const 13) + (set_local 11) + (br 118) + (end) + (get_local 8) + (i32.const -4) + (i32.and) + (tee_local 4) + (i32.eqz) + (br_if 69) + (i32.const 14) + (set_local 11) + (br 117) + (end) + (i32.const 15) + (set_local 11) + (br 116) + (end) + (get_local 4) + (i32.load align=1) + (set_local 8) + (get_local 4) + (i32.const 0) + (i32.store align=1) + (get_local 8) + (i32.eqz) + (br_if 69) + (i32.const 16) + (set_local 11) + (br 115) + (end) + (get_local 4) + (i32.load align=4 offset=4) + (set_local 0) + (get_local 4) + (i32.const 1) + (i32.store8 align=1 offset=8) + (get_local 8) + (get_local 8) + (i32.load align=4 offset=24) + (tee_local 4) + (i32.const 2) + (get_local 4) + (select) + (i32.store align=4 offset=24) + (get_local 4) + (i32.eqz) + (br_if 71) + (i32.const 17) + (set_local 11) + (br 114) + (end) + (get_local 4) + (i32.const 1) + (i32.ne) + (br_if 71) + (i32.const 24) + (set_local 11) + (br 113) + (end) + (get_local 8) + (i32.const 28) + (i32.add) + (tee_local 5) + (i32.load align=4) + (tee_local 4) + (i32.load8_u align=1) + (br_if 74) + (i32.const 26) + (set_local 11) + (br 112) + (end) + (get_local 4) + (i32.const 1) + (i32.store8 align=1) + (call 86) + (tee_local 4) + (i32.eqz) + (br_if 74) + (i32.const 27) + (set_local 11) + (br 111) + (end) + (get_local 4) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 74) + (i32.const 51) + (set_local 11) + (br 110) + (end) + (get_local 4) + (i32.const 4) + (i32.add) + (set_local 3) + (get_local 4) + (i32.load align=4 offset=4) + (set_local 6) + (br 74) + (end) + (get_local 4) + (i64.const 1) + (i64.store align=4) + (get_local 4) + (i32.const 4) + (i32.add) + (set_local 3) + (i32.const 0) + (set_local 6) + (i32.const 29) + (set_local 11) + (br 108) + (end) + (get_local 3) + (get_local 6) + (i32.store align=1) + (get_local 8) + (i32.const 32) + (i32.add) + (tee_local 7) + (i32.load8_u align=1) + (br_if 73) + (i32.const 31) + (set_local 11) + (br 107) + (end) + (get_local 8) + (i32.const 24) + (i32.add) + (tee_local 3) + (i32.const 2) + (get_local 3) + (i32.load align=4) + (tee_local 4) + (get_local 4) + (i32.const 1) + (i32.eq) + (tee_local 9) + (select) + (i32.store align=4) + (get_local 10) + (get_local 6) + (i32.const 0) + (i32.ne) + (i32.store8 align=1 offset=24) + (get_local 9) + (br_if 73) + (i32.const 32) + (set_local 11) + (br 106) + (end) + (get_local 4) + (br_if 73) + (i32.const 43) + (set_local 11) + (br 105) + (end) + (get_local 10) + (i32.load8_u align=1 offset=24) + (br_if 79) + (i32.const 45) + (set_local 11) + (br 104) + (end) + (call 86) + (tee_local 4) + (i32.eqz) + (br_if 81) + (i32.const 46) + (set_local 11) + (br 103) + (end) + (get_local 4) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 81) + (i32.const 48) + (set_local 11) + (br 102) + (end) + (get_local 4) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 77) + (i32.const 49) + (set_local 11) + (br 101) + (end) + (get_local 7) + (i32.const 1) + (i32.store8 align=1) + (br 77) + (end) + (get_local 4) + (i64.const 1) + (i64.store align=4) + (get_local 4) + (i32.const 0) + (i32.store align=1 offset=4) + (i32.const 44) + (set_local 11) + (br 99) + (end) + (get_local 5) + (i32.load align=4) + (i32.const 0) + (i32.store8 align=1) + (get_local 3) + (get_local 3) + (i32.load align=4) + (tee_local 4) + (i32.const 2) + (get_local 4) + (select) + (i32.store align=4) + (get_local 4) + (br_if 54) + (br 53) + (end) + (get_local 4) + (i32.const 2) + (i32.eq) + (br_if 56) + (br 57) + (end) + (get_local 4) + (i32.const 2) + (i32.ne) + (br_if 65) + (i32.const 35) + (set_local 11) + (br 96) + (end) + (get_local 10) + (i32.load8_u align=1 offset=24) + (br_if 65) + (i32.const 37) + (set_local 11) + (br 95) + (end) + (call 86) + (tee_local 4) + (i32.eqz) + (br_if 67) + (i32.const 38) + (set_local 11) + (br 94) + (end) + (get_local 4) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 67) + (i32.const 40) + (set_local 11) + (br 93) + (end) + (get_local 4) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 63) + (i32.const 41) + (set_local 11) + (br 92) + (end) + (get_local 7) + (i32.const 1) + (i32.store8 align=1) + (br 63) + (end) + (get_local 4) + (i64.const 1) + (i64.store align=4) + (get_local 4) + (i32.const 0) + (i32.store align=1 offset=4) + (i32.const 36) + (set_local 11) + (br 90) + (end) + (get_local 5) + (i32.load align=4) + (i32.const 0) + (i32.store8 align=1) + (i32.const 20) + (set_local 11) + (br 89) + (end) + (get_local 8) + (get_local 8) + (i32.load align=4) + (tee_local 4) + (i32.const -1) + (i32.add) + (i32.store align=4) + (get_local 4) + (i32.const 1) + (i32.ne) + (br_if 49) + (i32.const 23) + (set_local 11) + (br 88) + (end) + (get_local 8) + (call 60) + (i32.const 21) + (set_local 11) + (br 87) + (end) + (get_local 0) + (set_local 4) + (get_local 0) + (br_if 39) + (i32.const 22) + (set_local 11) + (br 86) + (end) + (i32.const 0) + (get_local 10) + (i32.const 64) + (i32.add) + (i32.store align=4 offset=4) + (return) + (end) + (i32.const 1472) + (i32.const 94) + (call 143) + (unreachable) + (end) + (i32.const 3568) + (i32.const 42) + (i32.const 3612) + (call 75) + (unreachable) + (end) + (i32.const 2208) + (i32.const 32) + (i32.const 2240) + (call 75) + (unreachable) + (end) + (call 40) + (unreachable) + (end) + (get_local 8) + (i32.const 28) + (i32.add) + (get_local 6) + (i32.const 0) + (i32.ne) + (call 35) + (unreachable) + (end) + (get_local 8) + (get_local 8) + (i32.load align=4 offset=40) + (tee_local 4) + (get_local 8) + (i32.const 28) + (i32.add) + (i32.load align=4) + (tee_local 0) + (get_local 4) + (select) + (i32.store align=4 offset=40) + (get_local 4) + (i32.eqz) + (br_if 77) + (i32.const 84) + (set_local 11) + (br 79) + (end) + (get_local 4) + (get_local 0) + (i32.eq) + (br_if 77) + (i32.const 85) + (set_local 11) + (br 78) + (end) + (i32.const 1184) + (i32.const 54) + (i32.const 1240) + (call 75) + (unreachable) + (end) + (i32.const 1616) + (i32.const 23) + (i32.const 1640) + (call 75) + (unreachable) + (end) + (i32.const 2448) + (i32.const 29) + (i32.const 2480) + (call 75) + (unreachable) + (end) + (call 40) + (unreachable) + (end) + (i32.const 3632) + (i32.const 47) + (i32.const 3680) + (call 75) + (unreachable) + (end) + (i32.const 1472) + (i32.const 94) + (call 143) + (unreachable) + (end) + (i32.const 3776) + (call 139) + (unreachable) + (end) + (i32.const 1968) + (i32.const 28) + (i32.const 1996) + (call 75) + (unreachable) + (end) + (i32.const 2208) + (i32.const 32) + (i32.const 2240) + (call 75) + (unreachable) + (end) + (call 40) + (unreachable) + (end) + (get_local 8) + (i32.const 28) + (i32.add) + (get_local 6) + (i32.const 0) + (i32.ne) + (call 35) + (unreachable) + (end) + (i32.const 1968) + (i32.const 28) + (i32.const 2012) + (call 75) + (unreachable) + (end) + (call 40) + (unreachable) + (end) + (call 40) + (unreachable) + (end) + (get_local 10) + (i32.const 48) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 13) + (i32.store align=4) + (get_local 10) + (i32.const 13) + (i32.store align=4 offset=52) + (get_local 10) + (get_local 10) + (i32.const 20) + (i32.add) + (i32.store align=4 offset=56) + (get_local 10) + (i32.const 6944) + (i32.store align=4 offset=32) + (get_local 10) + (i32.const 3) + (i32.store align=4 offset=28) + (get_local 10) + (get_local 10) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=48) + (get_local 10) + (i32.const 3736) + (i32.store align=4 offset=24) + (get_local 10) + (i32.const 24) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 10) + (get_local 10) + (i32.const 48) + (i32.add) + (i32.store align=4 offset=40) + (get_local 10) + (i32.const 44) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 10) + (i32.const 24) + (i32.add) + (i32.const 3760) + (call 76) + (unreachable) + (end) + (i32.const 10) + (set_local 11) + (br 62) + (end) + (i32.const 9) + (set_local 11) + (br 61) + (end) + (i32.const 9) + (set_local 11) + (br 60) + (end) + (i32.const 22) + (set_local 11) + (br 59) + (end) + (i32.const 0) + (set_local 11) + (br 58) + (end) + (i32.const 91) + (set_local 11) + (br 57) + (end) + (i32.const 3) + (set_local 11) + (br 56) + (end) + (i32.const 90) + (set_local 11) + (br 55) + (end) + (i32.const 6) + (set_local 11) + (br 54) + (end) + (i32.const 7) + (set_local 11) + (br 53) + (end) + (i32.const 11) + (set_local 11) + (br 52) + (end) + (i32.const 9) + (set_local 11) + (br 51) + (end) + (i32.const 9) + (set_local 11) + (br 50) + (end) + (i32.const 9) + (set_local 11) + (br 49) + (end) + (i32.const 12) + (set_local 11) + (br 48) + (end) + (i32.const 22) + (set_local 11) + (br 47) + (end) + (i32.const 15) + (set_local 11) + (br 46) + (end) + (i32.const 53) + (set_local 11) + (br 45) + (end) + (i32.const 20) + (set_local 11) + (br 44) + (end) + (i32.const 17) + (set_local 11) + (br 43) + (end) + (i32.const 20) + (set_local 11) + (br 42) + (end) + (i32.const 18) + (set_local 11) + (br 41) + (end) + (i32.const 20) + (set_local 11) + (br 40) + (end) + (i32.const 19) + (set_local 11) + (br 39) + (end) + (i32.const 21) + (set_local 11) + (br 38) + (end) + (i32.const 25) + (set_local 11) + (br 37) + (end) + (i32.const 52) + (set_local 11) + (br 36) + (end) + (i32.const 28) + (set_local 11) + (br 35) + (end) + (i32.const 29) + (set_local 11) + (br 34) + (end) + (i32.const 30) + (set_local 11) + (br 33) + (end) + (i32.const 35) + (set_local 11) + (br 32) + (end) + (i32.const 33) + (set_local 11) + (br 31) + (end) + (i32.const 34) + (set_local 11) + (br 30) + (end) + (i32.const 36) + (set_local 11) + (br 29) + (end) + (i32.const 36) + (set_local 11) + (br 28) + (end) + (i32.const 36) + (set_local 11) + (br 27) + (end) + (i32.const 42) + (set_local 11) + (br 26) + (end) + (i32.const 39) + (set_local 11) + (br 25) + (end) + (i32.const 44) + (set_local 11) + (br 24) + (end) + (i32.const 44) + (set_local 11) + (br 23) + (end) + (i32.const 44) + (set_local 11) + (br 22) + (end) + (i32.const 50) + (set_local 11) + (br 21) + (end) + (i32.const 47) + (set_local 11) + (br 20) + (end) + (i32.const 57) + (set_local 11) + (br 19) + (end) + (i32.const 60) + (set_local 11) + (br 18) + (end) + (i32.const 57) + (set_local 11) + (br 17) + (end) + (i32.const 89) + (set_local 11) + (br 16) + (end) + (i32.const 74) + (set_local 11) + (br 15) + (end) + (i32.const 63) + (set_local 11) + (br 14) + (end) + (i32.const 88) + (set_local 11) + (br 13) + (end) + (i32.const 66) + (set_local 11) + (br 12) + (end) + (i32.const 67) + (set_local 11) + (br 11) + (end) + (i32.const 68) + (set_local 11) + (br 10) + (end) + (i32.const 83) + (set_local 11) + (br 9) + (end) + (i32.const 71) + (set_local 11) + (br 8) + (end) + (i32.const 73) + (set_local 11) + (br 7) + (end) + (i32.const 73) + (set_local 11) + (br 6) + (end) + (i32.const 73) + (set_local 11) + (br 5) + (end) + (i32.const 75) + (set_local 11) + (br 4) + (end) + (i32.const 82) + (set_local 11) + (br 3) + (end) + (i32.const 79) + (set_local 11) + (br 2) + (end) + (i32.const 86) + (set_local 11) + (br 1) + (end) + (i32.const 86) + (set_local 11) + (br 0) + (end) + (unreachable) + ) + (func 104 (type 2) + + ) + (func 105 (type 5) (local i32) + (get_local 0) + (i32.load align=4) + (tee_local 0) + (i32.load8_u align=1) + (set_local 2) + (get_local 0) + (i32.const 0) + (i32.store8 align=1) + (block emptyblock) + (get_local 2) + (i32.eqz) + (br_if 0) + (call 67) + (return) + (end) + (i32.const 3776) + (call 139) + (unreachable) + ) + (func 106 (type 5) (local i32) + (get_local 0) + (i32.load8_u align=1) + (set_local 2) + (get_local 0) + (i32.const 0) + (i32.store8 align=1) + (block emptyblock) + (get_local 2) + (i32.eqz) + (br_if 0) + (call 67) + (return) + (end) + (i32.const 3776) + (call 139) + (unreachable) + ) + (func 107 (type 13) (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i64 i64) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (set_local 9) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.const 244) + (i32.gt_u) + (br_if 0) + (i32.const 0) + (i32.load align=4 offset=3956) + (tee_local 7) + (i32.const 16) + (get_local 0) + (i32.const 11) + (i32.add) + (i32.const -8) + (i32.and) + (get_local 0) + (i32.const 11) + (i32.lt_u) + (select) + (tee_local 8) + (i32.const 3) + (i32.shr_u) + (tee_local 2) + (i32.const 31) + (i32.and) + (tee_local 3) + (i32.shr_u) + (tee_local 0) + (i32.const 3) + (i32.and) + (i32.eqz) + (br_if 1) + (get_local 0) + (i32.const -1) + (i32.xor) + (i32.const 1) + (i32.and) + (get_local 2) + (i32.add) + (tee_local 2) + (i32.const 3) + (i32.shl) + (tee_local 8) + (i32.const 3972) + (i32.add) + (i32.load align=4) + (tee_local 0) + (i32.load align=4 offset=8) + (tee_local 3) + (get_local 8) + (i32.const 3964) + (i32.add) + (tee_local 8) + (i32.eq) + (br_if 2) + (get_local 3) + (get_local 8) + (i32.store align=4 offset=12) + (get_local 8) + (i32.const 8) + (i32.add) + (get_local 3) + (i32.store align=4) + (br 3) + (end) + (i32.const 0) + (set_local 2) + (get_local 0) + (i32.const -64) + (i32.ge_u) + (br_if 26) + (get_local 0) + (i32.const 11) + (i32.add) + (tee_local 0) + (i32.const -8) + (i32.and) + (set_local 8) + (i32.const 0) + (i32.load align=4 offset=3960) + (tee_local 1) + (i32.eqz) + (br_if 9) + (i32.const 0) + (set_local 6) + (block emptyblock) + (get_local 0) + (i32.const 8) + (i32.shr_u) + (tee_local 0) + (i32.eqz) + (br_if 0) + (i32.const 31) + (set_local 6) + (get_local 8) + (i32.const 16777215) + (i32.gt_u) + (br_if 0) + (get_local 8) + (i32.const 38) + (get_local 0) + (i32.clz) + (tee_local 0) + (i32.sub) + (i32.const 31) + (i32.and) + (i32.shr_u) + (i32.const 1) + (i32.and) + (i32.const 31) + (get_local 0) + (i32.sub) + (i32.const 1) + (i32.shl) + (i32.or) + (set_local 6) + (end) + (i32.const 0) + (get_local 8) + (i32.sub) + (set_local 3) + (get_local 6) + (i32.const 2) + (i32.shl) + (i32.const 4228) + (i32.add) + (i32.load align=4) + (tee_local 0) + (i32.eqz) + (br_if 6) + (i32.const 0) + (set_local 2) + (get_local 8) + (i32.const 0) + (i32.const 25) + (get_local 6) + (i32.const 1) + (i32.shr_u) + (i32.sub) + (i32.const 31) + (i32.and) + (get_local 6) + (i32.const 31) + (i32.eq) + (select) + (i32.shl) + (set_local 5) + (i32.const 0) + (set_local 7) + (loop emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=4) + (i32.const -8) + (i32.and) + (tee_local 4) + (get_local 8) + (i32.lt_u) + (br_if 0) + (get_local 4) + (get_local 8) + (i32.sub) + (tee_local 4) + (get_local 3) + (i32.ge_u) + (br_if 0) + (get_local 4) + (set_local 3) + (get_local 0) + (set_local 7) + (get_local 4) + (i32.eqz) + (br_if 6) + (end) + (get_local 0) + (i32.const 20) + (i32.add) + (i32.load align=4) + (tee_local 4) + (get_local 2) + (get_local 4) + (get_local 0) + (get_local 5) + (i32.const 29) + (i32.shr_u) + (i32.const 4) + (i32.and) + (i32.add) + (i32.const 16) + (i32.add) + (i32.load align=4) + (tee_local 0) + (i32.ne) + (select) + (get_local 2) + (get_local 4) + (select) + (set_local 2) + (get_local 5) + (i32.const 1) + (i32.shl) + (set_local 5) + (get_local 0) + (br_if 0) + (end) + (get_local 2) + (i32.eqz) + (br_if 5) + (get_local 2) + (set_local 0) + (br 7) + (end) + (get_local 8) + (i32.const 0) + (i32.load align=4 offset=4356) + (i32.le_u) + (br_if 8) + (get_local 0) + (i32.eqz) + (br_if 2) + (get_local 0) + (get_local 3) + (i32.shl) + (i32.const 2) + (get_local 3) + (i32.shl) + (tee_local 0) + (i32.const 0) + (get_local 0) + (i32.sub) + (i32.or) + (i32.and) + (tee_local 0) + (i32.const 0) + (get_local 0) + (i32.sub) + (i32.and) + (i32.ctz) + (tee_local 2) + (i32.const 3) + (i32.shl) + (tee_local 5) + (i32.const 3972) + (i32.add) + (i32.load align=4) + (tee_local 0) + (i32.load align=4 offset=8) + (tee_local 3) + (get_local 5) + (i32.const 3964) + (i32.add) + (tee_local 5) + (i32.eq) + (br_if 9) + (get_local 3) + (get_local 5) + (i32.store align=4 offset=12) + (get_local 5) + (i32.const 8) + (i32.add) + (get_local 3) + (i32.store align=4) + (br 10) + (end) + (i32.const 0) + (get_local 7) + (i32.const -2) + (get_local 2) + (i32.rotl) + (i32.and) + (i32.store align=4 offset=3956) + (end) + (get_local 0) + (get_local 2) + (i32.const 3) + (i32.shl) + (tee_local 2) + (i32.const 3) + (i32.or) + (i32.store align=4 offset=4) + (get_local 0) + (get_local 2) + (i32.add) + (tee_local 2) + (get_local 2) + (i32.load align=4 offset=4) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 0) + (i32.const 8) + (i32.add) + (return) + (end) + (i32.const 0) + (i32.load align=4 offset=3960) + (tee_local 4) + (i32.eqz) + (br_if 5) + (get_local 4) + (i32.const 0) + (get_local 4) + (i32.sub) + (i32.and) + (i32.ctz) + (i32.const 2) + (i32.shl) + (i32.const 4228) + (i32.add) + (i32.load align=4) + (tee_local 7) + (i32.load align=4 offset=4) + (i32.const -8) + (i32.and) + (get_local 8) + (i32.sub) + (set_local 2) + (get_local 7) + (set_local 3) + (get_local 7) + (i32.load align=4 offset=16) + (tee_local 0) + (i32.eqz) + (br_if 18) + (i32.const 0) + (set_local 10) + (br 19) + (end) + (i32.const 0) + (set_local 3) + (get_local 0) + (set_local 7) + (br 2) + (end) + (get_local 7) + (br_if 2) + (end) + (i32.const 0) + (set_local 7) + (get_local 1) + (i32.const 2) + (get_local 6) + (i32.const 31) + (i32.and) + (i32.shl) + (tee_local 0) + (i32.const 0) + (get_local 0) + (i32.sub) + (i32.or) + (i32.and) + (tee_local 0) + (i32.eqz) + (br_if 2) + (get_local 0) + (i32.const 0) + (get_local 0) + (i32.sub) + (i32.and) + (i32.ctz) + (i32.const 2) + (i32.shl) + (i32.const 4228) + (i32.add) + (i32.load align=4) + (tee_local 0) + (i32.eqz) + (br_if 2) + (end) + (loop emptyblock) + (get_local 0) + (tee_local 2) + (get_local 7) + (get_local 2) + (i32.load align=4 offset=4) + (i32.const -8) + (i32.and) + (tee_local 0) + (get_local 8) + (i32.ge_u) + (get_local 0) + (get_local 8) + (i32.sub) + (tee_local 0) + (get_local 3) + (i32.lt_u) + (i32.and) + (tee_local 5) + (select) + (set_local 7) + (get_local 0) + (get_local 3) + (get_local 5) + (select) + (set_local 3) + (get_local 2) + (i32.load align=4 offset=16) + (tee_local 0) + (br_if 0) + (get_local 2) + (i32.const 20) + (i32.add) + (i32.load align=4) + (tee_local 0) + (br_if 0) + (end) + (get_local 7) + (i32.eqz) + (br_if 1) + (end) + (get_local 3) + (get_local 8) + (i32.add) + (tee_local 6) + (i32.const 0) + (i32.load align=4 offset=4356) + (i32.ge_u) + (br_if 0) + (get_local 7) + (i32.load align=4 offset=24) + (set_local 4) + (get_local 7) + (i32.load align=4 offset=12) + (tee_local 0) + (get_local 7) + (i32.eq) + (br_if 5) + (get_local 7) + (i32.load align=4 offset=8) + (tee_local 2) + (get_local 0) + (i32.store align=4 offset=12) + (get_local 0) + (get_local 2) + (i32.store align=4 offset=8) + (get_local 4) + (br_if 11) + (br 12) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=4356) + (tee_local 0) + (get_local 8) + (i32.ge_u) + (br_if 0) + (i32.const 0) + (i32.load align=4 offset=4360) + (tee_local 0) + (get_local 8) + (i32.le_u) + (br_if 1) + (i32.const 0) + (get_local 0) + (get_local 8) + (i32.sub) + (tee_local 2) + (i32.store align=4 offset=4360) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4368) + (tee_local 0) + (get_local 8) + (i32.add) + (tee_local 3) + (i32.store align=4 offset=4368) + (get_local 3) + (get_local 2) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 0) + (get_local 8) + (i32.const 3) + (i32.or) + (i32.store align=4 offset=4) + (get_local 0) + (i32.const 8) + (i32.add) + (return) + (end) + (i32.const 0) + (i32.load align=4 offset=4364) + (set_local 2) + (get_local 0) + (get_local 8) + (i32.sub) + (tee_local 3) + (i32.const 16) + (i32.ge_u) + (br_if 1) + (i32.const 0) + (i32.const 0) + (i32.store align=4 offset=4364) + (i32.const 0) + (i32.const 0) + (i32.store align=4 offset=4356) + (get_local 2) + (get_local 0) + (i32.const 3) + (i32.or) + (i32.store align=4 offset=4) + (get_local 2) + (get_local 0) + (i32.add) + (tee_local 3) + (i32.const 4) + (i32.add) + (set_local 0) + (get_local 3) + (i32.load align=4 offset=4) + (i32.const 1) + (i32.or) + (set_local 3) + (br 2) + (end) + (memory.size 0) + (set_local 0) + (get_local 8) + (i32.const 65583) + (i32.add) + (i32.const 16) + (i32.shr_u) + (tee_local 2) + (memory.grow 0) + (drop) + (get_local 0) + (i32.const 16) + (i32.shl) + (tee_local 7) + (i32.eqz) + (br_if 2) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4372) + (get_local 2) + (i32.const 16) + (i32.shl) + (tee_local 4) + (i32.add) + (tee_local 0) + (i32.store align=4 offset=4372) + (i32.const 0) + (get_local 0) + (i32.const 0) + (i32.load align=4 offset=4376) + (tee_local 2) + (get_local 0) + (get_local 2) + (i32.ge_u) + (select) + (i32.store align=4 offset=4376) + (i32.const 0) + (i32.load align=4 offset=4368) + (tee_local 2) + (i32.eqz) + (br_if 5) + (i32.const 4380) + (set_local 0) + (loop emptyblock) + (get_local 7) + (get_local 0) + (i32.load align=4) + (tee_local 3) + (get_local 0) + (i32.load align=4 offset=4) + (tee_local 5) + (i32.add) + (i32.eq) + (br_if 7) + (get_local 0) + (i32.load align=4 offset=8) + (tee_local 0) + (br_if 0) + (br 18) + (end) + (unreachable) + (end) + (i32.const 0) + (get_local 3) + (i32.store align=4 offset=4356) + (i32.const 0) + (get_local 2) + (get_local 8) + (i32.add) + (tee_local 0) + (i32.store align=4 offset=4364) + (get_local 0) + (get_local 3) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 0) + (get_local 3) + (i32.add) + (get_local 3) + (i32.store align=4) + (get_local 8) + (i32.const 3) + (i32.or) + (set_local 3) + (get_local 2) + (i32.const 4) + (i32.add) + (set_local 0) + (end) + (get_local 0) + (get_local 3) + (i32.store align=4) + (get_local 2) + (i32.const 8) + (i32.add) + (return) + (end) + (i32.const 0) + (return) + (end) + (i32.const 0) + (get_local 7) + (i32.const -2) + (get_local 2) + (i32.rotl) + (i32.and) + (i32.store align=4 offset=3956) + (end) + (get_local 0) + (get_local 8) + (i32.const 3) + (i32.or) + (i32.store align=4 offset=4) + (get_local 0) + (get_local 8) + (i32.add) + (tee_local 7) + (get_local 2) + (i32.const 3) + (i32.shl) + (get_local 8) + (i32.sub) + (tee_local 2) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 7) + (get_local 2) + (i32.add) + (get_local 2) + (i32.store align=4) + (i32.const 0) + (i32.load align=4 offset=4356) + (tee_local 3) + (i32.eqz) + (br_if 5) + (get_local 3) + (i32.const 3) + (i32.shr_u) + (tee_local 5) + (i32.const 3) + (i32.shl) + (i32.const 3964) + (i32.add) + (set_local 8) + (i32.const 0) + (i32.load align=4 offset=4364) + (set_local 3) + (i32.const 0) + (i32.load align=4 offset=3956) + (tee_local 4) + (i32.const 1) + (get_local 5) + (i32.const 31) + (i32.and) + (i32.shl) + (tee_local 5) + (i32.and) + (i32.eqz) + (br_if 3) + (get_local 8) + (i32.load align=4 offset=8) + (set_local 5) + (br 4) + (end) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=4400) + (tee_local 0) + (i32.eqz) + (br_if 0) + (get_local 7) + (get_local 0) + (i32.ge_u) + (br_if 1) + (end) + (i32.const 0) + (get_local 7) + (i32.store align=4 offset=4400) + (end) + (i32.const 0) + (set_local 0) + (i32.const 0) + (get_local 4) + (i32.store align=4 offset=4384) + (i32.const 0) + (get_local 7) + (i32.store align=4 offset=4380) + (i32.const 0) + (i32.const 4095) + (i32.store align=4 offset=4404) + (i32.const 0) + (i32.const 0) + (i32.store align=4 offset=4392) + (loop emptyblock) + (get_local 0) + (i32.const 3972) + (i32.add) + (get_local 0) + (i32.const 3964) + (i32.add) + (tee_local 2) + (i32.store align=4) + (get_local 0) + (i32.const 3976) + (i32.add) + (get_local 2) + (i32.store align=4) + (get_local 0) + (i32.const 8) + (i32.add) + (tee_local 0) + (i32.const 256) + (i32.ne) + (br_if 0) + (end) + (i32.const 0) + (get_local 7) + (i32.store align=4 offset=4368) + (i32.const 0) + (i32.const 2097152) + (i32.store align=4 offset=4396) + (i32.const 0) + (get_local 4) + (i32.const -40) + (i32.add) + (tee_local 0) + (i32.store align=4 offset=4360) + (get_local 7) + (get_local 0) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 7) + (get_local 0) + (i32.add) + (i32.const 40) + (i32.store align=4 offset=4) + (br 12) + (end) + (get_local 0) + (i32.load align=4 offset=12) + (i32.eqz) + (br_if 4) + (br 10) + (end) + (get_local 7) + (i32.const 20) + (i32.add) + (tee_local 0) + (get_local 7) + (i32.const 16) + (i32.add) + (get_local 0) + (i32.load align=4) + (select) + (tee_local 2) + (i32.load align=4) + (tee_local 0) + (i32.eqz) + (br_if 4) + (loop emptyblock) + (get_local 2) + (set_local 5) + (get_local 0) + (i32.const 20) + (i32.add) + (tee_local 2) + (get_local 0) + (i32.const 16) + (i32.add) + (get_local 2) + (i32.load align=4) + (select) + (tee_local 2) + (i32.load align=4) + (tee_local 0) + (br_if 0) + (end) + (get_local 5) + (i32.load align=4) + (set_local 0) + (get_local 5) + (i32.const 0) + (i32.store align=4) + (get_local 4) + (br_if 5) + (br 6) + (end) + (i32.const 0) + (get_local 4) + (get_local 5) + (i32.or) + (i32.store align=4 offset=3956) + (get_local 8) + (set_local 5) + (end) + (get_local 8) + (i32.const 8) + (i32.add) + (get_local 3) + (i32.store align=4) + (get_local 5) + (get_local 3) + (i32.store align=4 offset=12) + (get_local 3) + (get_local 8) + (i32.store align=4 offset=12) + (get_local 3) + (get_local 5) + (i32.store align=4 offset=8) + (end) + (i32.const 0) + (get_local 7) + (i32.store align=4 offset=4364) + (i32.const 0) + (get_local 2) + (i32.store align=4 offset=4356) + (get_local 0) + (i32.const 8) + (i32.add) + (return) + (end) + (get_local 7) + (get_local 2) + (i32.le_u) + (br_if 5) + (get_local 3) + (get_local 2) + (i32.gt_u) + (br_if 5) + (get_local 0) + (i32.const 4) + (i32.add) + (get_local 5) + (get_local 4) + (i32.add) + (i32.store align=4) + (i32.const 0) + (i32.load align=4 offset=4368) + (tee_local 2) + (i32.const 15) + (i32.add) + (i32.const -8) + (i32.and) + (tee_local 3) + (i32.const -8) + (i32.add) + (tee_local 0) + (i32.const 0) + (i32.load align=4 offset=4360) + (get_local 4) + (i32.add) + (get_local 3) + (get_local 2) + (i32.const 8) + (i32.add) + (i32.sub) + (i32.sub) + (tee_local 2) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (i32.const 0) + (get_local 0) + (i32.store align=4 offset=4368) + (i32.const 0) + (get_local 2) + (i32.store align=4 offset=4360) + (get_local 0) + (get_local 2) + (i32.add) + (i32.const 40) + (i32.store align=4 offset=4) + (i32.const 0) + (i32.const 2097152) + (i32.store align=4 offset=4396) + (br 6) + (end) + (i32.const 0) + (set_local 0) + (get_local 4) + (i32.eqz) + (br_if 1) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 7) + (i32.load align=4 offset=28) + (tee_local 5) + (i32.const 2) + (i32.shl) + (i32.const 4228) + (i32.add) + (tee_local 2) + (i32.load align=4) + (get_local 7) + (i32.eq) + (br_if 0) + (get_local 4) + (i32.const 16) + (i32.add) + (get_local 4) + (i32.load align=4 offset=16) + (get_local 7) + (i32.ne) + (i32.const 2) + (i32.shl) + (i32.add) + (get_local 0) + (i32.store align=4) + (get_local 0) + (br_if 1) + (br 3) + (end) + (get_local 2) + (get_local 0) + (i32.store align=4) + (get_local 0) + (i32.eqz) + (br_if 1) + (end) + (get_local 0) + (get_local 4) + (i32.store align=4 offset=24) + (block emptyblock) + (get_local 7) + (i32.load align=4 offset=16) + (tee_local 2) + (i32.eqz) + (br_if 0) + (get_local 0) + (get_local 2) + (i32.store align=4 offset=16) + (get_local 2) + (get_local 0) + (i32.store align=4 offset=24) + (end) + (get_local 7) + (i32.const 20) + (i32.add) + (i32.load align=4) + (tee_local 2) + (i32.eqz) + (br_if 1) + (get_local 0) + (i32.const 20) + (i32.add) + (get_local 2) + (i32.store align=4) + (get_local 2) + (get_local 0) + (i32.store align=4 offset=24) + (br 1) + (end) + (i32.const 0) + (get_local 1) + (i32.const -2) + (get_local 5) + (i32.rotl) + (i32.and) + (i32.store align=4 offset=3960) + (end) + (block emptyblock) + (block emptyblock) + (get_local 3) + (i32.const 15) + (i32.gt_u) + (br_if 0) + (get_local 7) + (i32.const 4) + (i32.add) + (get_local 6) + (i32.const 3) + (i32.or) + (i32.store align=4) + (get_local 7) + (get_local 6) + (i32.add) + (tee_local 0) + (get_local 0) + (i32.load align=4 offset=4) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (br 1) + (end) + (get_local 7) + (i32.const 4) + (i32.add) + (get_local 8) + (i32.const 3) + (i32.or) + (i32.store align=4) + (get_local 7) + (get_local 8) + (i32.add) + (tee_local 2) + (get_local 3) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 2) + (get_local 3) + (i32.add) + (get_local 3) + (i32.store align=4) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 3) + (i32.const 255) + (i32.gt_u) + (br_if 0) + (get_local 3) + (i32.const 3) + (i32.shr_u) + (tee_local 3) + (i32.const 3) + (i32.shl) + (i32.const 3964) + (i32.add) + (set_local 0) + (i32.const 0) + (i32.load align=4 offset=3956) + (tee_local 8) + (i32.const 1) + (get_local 3) + (i32.const 31) + (i32.and) + (i32.shl) + (tee_local 3) + (i32.and) + (i32.eqz) + (br_if 1) + (get_local 0) + (i32.const 8) + (i32.add) + (set_local 8) + (get_local 0) + (i32.load align=4 offset=8) + (set_local 3) + (br 2) + (end) + (i32.const 0) + (set_local 0) + (block emptyblock) + (get_local 3) + (i32.const 8) + (i32.shr_u) + (tee_local 8) + (i32.eqz) + (br_if 0) + (i32.const 31) + (set_local 0) + (get_local 3) + (i32.const 16777215) + (i32.gt_u) + (br_if 0) + (get_local 3) + (i32.const 38) + (get_local 8) + (i32.clz) + (tee_local 0) + (i32.sub) + (i32.const 31) + (i32.and) + (i32.shr_u) + (i32.const 1) + (i32.and) + (i32.const 31) + (get_local 0) + (i32.sub) + (i32.const 1) + (i32.shl) + (i32.or) + (set_local 0) + (end) + (get_local 2) + (get_local 0) + (i32.store align=4 offset=28) + (get_local 2) + (i64.const 0) + (i64.store align=4 offset=16) + (get_local 0) + (i32.const 2) + (i32.shl) + (i32.const 4228) + (i32.add) + (set_local 8) + (i32.const 0) + (i32.load align=4 offset=3960) + (tee_local 5) + (i32.const 1) + (get_local 0) + (i32.const 31) + (i32.and) + (i32.shl) + (tee_local 4) + (i32.and) + (i32.eqz) + (br_if 2) + (get_local 8) + (i32.load align=4) + (tee_local 5) + (i32.load align=4 offset=4) + (i32.const -8) + (i32.and) + (get_local 3) + (i32.ne) + (br_if 3) + (get_local 5) + (set_local 0) + (br 4) + (end) + (i32.const 0) + (get_local 8) + (get_local 3) + (i32.or) + (i32.store align=4 offset=3956) + (get_local 0) + (i32.const 8) + (i32.add) + (set_local 8) + (get_local 0) + (set_local 3) + (end) + (get_local 8) + (get_local 2) + (i32.store align=4) + (get_local 3) + (get_local 2) + (i32.store align=4 offset=12) + (get_local 2) + (get_local 0) + (i32.store align=4 offset=12) + (get_local 2) + (get_local 3) + (i32.store align=4 offset=8) + (br 5) + (end) + (get_local 8) + (get_local 2) + (i32.store align=4) + (i32.const 0) + (get_local 5) + (get_local 4) + (i32.or) + (i32.store align=4 offset=3960) + (get_local 2) + (get_local 8) + (i32.store align=4 offset=24) + (br 3) + (end) + (get_local 3) + (i32.const 0) + (i32.const 25) + (get_local 0) + (i32.const 1) + (i32.shr_u) + (i32.sub) + (i32.const 31) + (i32.and) + (get_local 0) + (i32.const 31) + (i32.eq) + (select) + (i32.shl) + (set_local 8) + (loop emptyblock) + (get_local 5) + (get_local 8) + (i32.const 29) + (i32.shr_u) + (i32.const 4) + (i32.and) + (i32.add) + (i32.const 16) + (i32.add) + (tee_local 4) + (i32.load align=4) + (tee_local 0) + (i32.eqz) + (br_if 2) + (get_local 8) + (i32.const 1) + (i32.shl) + (set_local 8) + (get_local 0) + (set_local 5) + (get_local 0) + (i32.load align=4 offset=4) + (i32.const -8) + (i32.and) + (get_local 3) + (i32.ne) + (br_if 0) + (end) + (end) + (get_local 0) + (i32.load align=4 offset=8) + (tee_local 3) + (get_local 2) + (i32.store align=4 offset=12) + (get_local 0) + (get_local 2) + (i32.store align=4 offset=8) + (get_local 2) + (get_local 0) + (i32.store align=4 offset=12) + (get_local 2) + (get_local 3) + (i32.store align=4 offset=8) + (get_local 2) + (i32.const 0) + (i32.store align=4 offset=24) + (br 2) + (end) + (get_local 4) + (get_local 2) + (i32.store align=4) + (get_local 2) + (get_local 5) + (i32.store align=4 offset=24) + (end) + (get_local 2) + (get_local 2) + (i32.store align=4 offset=12) + (get_local 2) + (get_local 2) + (i32.store align=4 offset=8) + (end) + (get_local 7) + (i32.const 8) + (i32.add) + (return) + (end) + (i32.const 1) + (set_local 10) + (end) + (loop emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 10) + (br_table [Ref(space=label,index=0,name=None), Ref(space=label,index=1,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=3,name=None), Ref(space=label,index=8,name=None), Ref(space=label,index=9,name=None), Ref(space=label,index=11,name=None), Ref(space=label,index=12,name=None), Ref(space=label,index=13,name=None), Ref(space=label,index=14,name=None), Ref(space=label,index=16,name=None), Ref(space=label,index=18,name=None), Ref(space=label,index=19,name=None), Ref(space=label,index=20,name=None), Ref(space=label,index=22,name=None), Ref(space=label,index=23,name=None), Ref(space=label,index=24,name=None), Ref(space=label,index=21,name=None), Ref(space=label,index=17,name=None), Ref(space=label,index=10,name=None), Ref(space=label,index=15,name=None), Ref(space=label,index=4,name=None), Ref(space=label,index=5,name=None), Ref(space=label,index=6,name=None), Ref(space=label,index=7,name=None), Ref(space=label,index=7,name=None)]) + (end) + (get_local 0) + (i32.load align=4 offset=4) + (i32.const -8) + (i32.and) + (get_local 8) + (i32.sub) + (tee_local 7) + (get_local 2) + (get_local 7) + (get_local 2) + (i32.lt_u) + (tee_local 7) + (select) + (set_local 2) + (get_local 0) + (get_local 3) + (get_local 7) + (select) + (set_local 3) + (get_local 0) + (tee_local 7) + (i32.load align=4 offset=16) + (tee_local 0) + (br_if 24) + (i32.const 1) + (set_local 10) + (br 46) + (end) + (get_local 7) + (i32.const 20) + (i32.add) + (i32.load align=4) + (tee_local 0) + (br_if 24) + (i32.const 2) + (set_local 10) + (br 45) + (end) + (get_local 3) + (i32.load align=4 offset=24) + (set_local 9) + (get_local 3) + (i32.load align=4 offset=12) + (tee_local 0) + (get_local 3) + (i32.eq) + (br_if 24) + (i32.const 3) + (set_local 10) + (br 44) + (end) + (get_local 3) + (i32.load align=4 offset=8) + (tee_local 7) + (get_local 0) + (i32.store align=4 offset=12) + (get_local 0) + (get_local 7) + (i32.store align=4 offset=8) + (get_local 9) + (br_if 25) + (br 24) + (end) + (get_local 3) + (i32.const 20) + (i32.add) + (tee_local 0) + (get_local 3) + (i32.const 16) + (i32.add) + (get_local 0) + (i32.load align=4) + (select) + (tee_local 7) + (i32.load align=4) + (tee_local 0) + (i32.eqz) + (br_if 41) + (i32.const 22) + (set_local 10) + (br 42) + (end) + (get_local 7) + (set_local 5) + (get_local 0) + (i32.const 20) + (i32.add) + (tee_local 7) + (get_local 0) + (i32.const 16) + (i32.add) + (get_local 7) + (i32.load align=4) + (select) + (tee_local 7) + (i32.load align=4) + (tee_local 0) + (br_if 39) + (i32.const 23) + (set_local 10) + (br 41) + (end) + (get_local 5) + (i32.load align=4) + (set_local 0) + (get_local 5) + (i32.const 0) + (i32.store align=4) + (get_local 9) + (br_if 24) + (br 23) + (end) + (i32.const 0) + (set_local 0) + (get_local 9) + (i32.eqz) + (br_if 24) + (i32.const 4) + (set_local 10) + (br 39) + (end) + (get_local 3) + (i32.load align=4 offset=28) + (tee_local 5) + (i32.const 2) + (i32.shl) + (i32.const 4228) + (i32.add) + (tee_local 7) + (i32.load align=4) + (get_local 3) + (i32.eq) + (br_if 24) + (i32.const 5) + (set_local 10) + (br 38) + (end) + (get_local 9) + (i32.const 16) + (i32.add) + (get_local 9) + (i32.load align=4 offset=16) + (get_local 3) + (i32.ne) + (i32.const 2) + (i32.shl) + (i32.add) + (get_local 0) + (i32.store align=4) + (get_local 0) + (br_if 25) + (br 24) + (end) + (get_local 7) + (get_local 0) + (i32.store align=4) + (get_local 0) + (i32.eqz) + (br_if 25) + (i32.const 6) + (set_local 10) + (br 36) + (end) + (get_local 0) + (get_local 9) + (i32.store align=4 offset=24) + (get_local 3) + (i32.load align=4 offset=16) + (tee_local 7) + (i32.eqz) + (br_if 25) + (i32.const 7) + (set_local 10) + (br 35) + (end) + (get_local 0) + (get_local 7) + (i32.store align=4 offset=16) + (get_local 7) + (get_local 0) + (i32.store align=4 offset=24) + (i32.const 8) + (set_local 10) + (br 34) + (end) + (get_local 3) + (i32.const 20) + (i32.add) + (i32.load align=4) + (tee_local 7) + (i32.eqz) + (br_if 24) + (i32.const 9) + (set_local 10) + (br 33) + (end) + (get_local 0) + (i32.const 20) + (i32.add) + (get_local 7) + (i32.store align=4) + (get_local 7) + (get_local 0) + (i32.store align=4 offset=24) + (br 24) + (end) + (i32.const 0) + (get_local 4) + (i32.const -2) + (get_local 5) + (i32.rotl) + (i32.and) + (i32.store align=4 offset=3960) + (i32.const 10) + (set_local 10) + (br 31) + (end) + (get_local 2) + (i32.const 16) + (i32.ge_u) + (br_if 23) + (i32.const 18) + (set_local 10) + (br 30) + (end) + (get_local 3) + (get_local 2) + (get_local 8) + (i32.add) + (tee_local 0) + (i32.const 3) + (i32.or) + (i32.store align=4 offset=4) + (get_local 3) + (get_local 0) + (i32.add) + (tee_local 0) + (get_local 0) + (i32.load align=4 offset=4) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (br 26) + (end) + (get_local 3) + (get_local 8) + (i32.const 3) + (i32.or) + (i32.store align=4 offset=4) + (get_local 3) + (get_local 8) + (i32.add) + (tee_local 8) + (get_local 2) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 8) + (get_local 2) + (i32.add) + (get_local 2) + (i32.store align=4) + (i32.const 0) + (i32.load align=4 offset=4356) + (tee_local 0) + (i32.eqz) + (br_if 22) + (i32.const 12) + (set_local 10) + (br 28) + (end) + (get_local 0) + (i32.const 3) + (i32.shr_u) + (tee_local 5) + (i32.const 3) + (i32.shl) + (i32.const 3964) + (i32.add) + (set_local 7) + (i32.const 0) + (i32.load align=4 offset=4364) + (set_local 0) + (i32.const 0) + (i32.load align=4 offset=3956) + (tee_local 4) + (i32.const 1) + (get_local 5) + (i32.const 31) + (i32.and) + (i32.shl) + (tee_local 5) + (i32.and) + (i32.eqz) + (br_if 22) + (i32.const 13) + (set_local 10) + (br 27) + (end) + (get_local 7) + (i32.load align=4 offset=8) + (set_local 5) + (br 22) + (end) + (i32.const 0) + (get_local 4) + (get_local 5) + (i32.or) + (i32.store align=4 offset=3956) + (get_local 7) + (set_local 5) + (i32.const 14) + (set_local 10) + (br 25) + (end) + (get_local 7) + (i32.const 8) + (i32.add) + (get_local 0) + (i32.store align=4) + (get_local 5) + (get_local 0) + (i32.store align=4 offset=12) + (get_local 0) + (get_local 7) + (i32.store align=4 offset=12) + (get_local 0) + (get_local 5) + (i32.store align=4 offset=8) + (i32.const 15) + (set_local 10) + (br 24) + (end) + (i32.const 0) + (get_local 8) + (i32.store align=4 offset=4364) + (i32.const 0) + (get_local 2) + (i32.store align=4 offset=4356) + (i32.const 16) + (set_local 10) + (br 23) + (end) + (get_local 3) + (i32.const 8) + (i32.add) + (return) + (end) + (i32.const 0) + (set_local 10) + (br 21) + (end) + (i32.const 0) + (set_local 10) + (br 20) + (end) + (i32.const 21) + (set_local 10) + (br 19) + (end) + (i32.const 10) + (set_local 10) + (br 18) + (end) + (i32.const 4) + (set_local 10) + (br 17) + (end) + (i32.const 10) + (set_local 10) + (br 16) + (end) + (i32.const 4) + (set_local 10) + (br 15) + (end) + (i32.const 10) + (set_local 10) + (br 14) + (end) + (i32.const 19) + (set_local 10) + (br 13) + (end) + (i32.const 10) + (set_local 10) + (br 12) + (end) + (i32.const 6) + (set_local 10) + (br 11) + (end) + (i32.const 20) + (set_local 10) + (br 10) + (end) + (i32.const 8) + (set_local 10) + (br 9) + (end) + (i32.const 10) + (set_local 10) + (br 8) + (end) + (i32.const 10) + (set_local 10) + (br 7) + (end) + (i32.const 11) + (set_local 10) + (br 6) + (end) + (i32.const 15) + (set_local 10) + (br 5) + (end) + (i32.const 17) + (set_local 10) + (br 4) + (end) + (i32.const 14) + (set_local 10) + (br 3) + (end) + (i32.const 16) + (set_local 10) + (br 2) + (end) + (i32.const 22) + (set_local 10) + (br 1) + (end) + (i32.const 24) + (set_local 10) + (br 0) + (end) + (unreachable) + (end) + (i32.const 0) + (get_local 7) + (i32.const 0) + (i32.load align=4 offset=4400) + (tee_local 0) + (get_local 7) + (get_local 0) + (i32.le_u) + (select) + (i32.store align=4 offset=4400) + (get_local 7) + (get_local 4) + (i32.add) + (set_local 3) + (i32.const 4380) + (set_local 0) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (loop emptyblock) + (get_local 0) + (i32.load align=4) + (get_local 3) + (i32.eq) + (br_if 1) + (get_local 0) + (i32.load align=4 offset=8) + (tee_local 0) + (br_if 0) + (br 2) + (end) + (unreachable) + (end) + (get_local 0) + (i32.load align=4 offset=12) + (i32.eqz) + (br_if 1) + (end) + (i32.const 4380) + (set_local 0) + (block emptyblock) + (loop emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4) + (tee_local 3) + (get_local 2) + (i32.gt_u) + (br_if 0) + (get_local 3) + (get_local 0) + (i32.load align=4 offset=4) + (i32.add) + (tee_local 3) + (get_local 2) + (i32.gt_u) + (br_if 2) + (end) + (get_local 0) + (i32.load align=4 offset=8) + (set_local 0) + (br 0) + (end) + (unreachable) + (end) + (get_local 7) + (get_local 4) + (i32.const -40) + (i32.add) + (tee_local 0) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 7) + (get_local 0) + (i32.add) + (i32.const 40) + (i32.store align=4 offset=4) + (i32.const 0) + (get_local 7) + (i32.store align=4 offset=4368) + (i32.const 0) + (i32.const 2097152) + (i32.store align=4 offset=4396) + (i32.const 0) + (get_local 0) + (i32.store align=4 offset=4360) + (get_local 2) + (get_local 3) + (i32.const -32) + (i32.add) + (i32.const -8) + (i32.and) + (i32.const -8) + (i32.add) + (tee_local 0) + (get_local 0) + (get_local 2) + (i32.const 16) + (i32.add) + (i32.lt_u) + (select) + (tee_local 5) + (i32.const 27) + (i32.store align=4 offset=4) + (i32.const 0) + (i64.load align=4 offset=4380) + (set_local 11) + (get_local 5) + (i32.const 16) + (i32.add) + (i32.const 0) + (i64.load align=4 offset=4388) + (tee_local 12) + (i64.store align=4) + (get_local 9) + (i32.const 8) + (i32.add) + (get_local 12) + (i64.store align=8) + (get_local 5) + (get_local 11) + (i64.store align=4 offset=8) + (get_local 9) + (get_local 11) + (i64.store align=8) + (i32.const 0) + (get_local 4) + (i32.store align=4 offset=4384) + (i32.const 0) + (get_local 7) + (i32.store align=4 offset=4380) + (i32.const 0) + (get_local 5) + (i32.const 8) + (i32.add) + (i32.store align=4 offset=4388) + (i32.const 0) + (i32.const 0) + (i32.store align=4 offset=4392) + (get_local 5) + (i32.const 28) + (i32.add) + (set_local 0) + (loop emptyblock) + (get_local 0) + (i32.const 7) + (i32.store align=4) + (get_local 0) + (i32.const 4) + (i32.add) + (tee_local 0) + (get_local 3) + (i32.lt_u) + (br_if 0) + (end) + (get_local 5) + (get_local 2) + (i32.eq) + (br_if 9) + (get_local 5) + (get_local 5) + (i32.load align=4 offset=4) + (i32.const -2) + (i32.and) + (i32.store align=4 offset=4) + (get_local 2) + (get_local 5) + (get_local 2) + (i32.sub) + (tee_local 7) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 5) + (get_local 7) + (i32.store align=4) + (block emptyblock) + (get_local 7) + (i32.const 255) + (i32.gt_u) + (br_if 0) + (get_local 7) + (i32.const 3) + (i32.shr_u) + (tee_local 3) + (i32.const 3) + (i32.shl) + (i32.const 3964) + (i32.add) + (set_local 0) + (i32.const 0) + (i32.load align=4 offset=3956) + (tee_local 7) + (i32.const 1) + (get_local 3) + (i32.const 31) + (i32.and) + (i32.shl) + (tee_local 3) + (i32.and) + (i32.eqz) + (br_if 2) + (get_local 0) + (i32.load align=4 offset=8) + (set_local 3) + (br 3) + (end) + (i32.const 0) + (set_local 0) + (block emptyblock) + (get_local 7) + (i32.const 8) + (i32.shr_u) + (tee_local 3) + (i32.eqz) + (br_if 0) + (i32.const 31) + (set_local 0) + (get_local 7) + (i32.const 16777215) + (i32.gt_u) + (br_if 0) + (get_local 7) + (i32.const 38) + (get_local 3) + (i32.clz) + (tee_local 0) + (i32.sub) + (i32.const 31) + (i32.and) + (i32.shr_u) + (i32.const 1) + (i32.and) + (i32.const 31) + (get_local 0) + (i32.sub) + (i32.const 1) + (i32.shl) + (i32.or) + (set_local 0) + (end) + (get_local 2) + (i64.const 0) + (i64.store align=4 offset=16) + (get_local 2) + (i32.const 28) + (i32.add) + (get_local 0) + (i32.store align=4) + (get_local 0) + (i32.const 2) + (i32.shl) + (i32.const 4228) + (i32.add) + (set_local 3) + (i32.const 0) + (i32.load align=4 offset=3960) + (tee_local 5) + (i32.const 1) + (get_local 0) + (i32.const 31) + (i32.and) + (i32.shl) + (tee_local 4) + (i32.and) + (i32.eqz) + (br_if 3) + (get_local 3) + (i32.load align=4) + (tee_local 5) + (i32.load align=4 offset=4) + (i32.const -8) + (i32.and) + (get_local 7) + (i32.ne) + (br_if 4) + (get_local 5) + (set_local 0) + (br 5) + (end) + (get_local 0) + (get_local 7) + (i32.store align=4) + (get_local 0) + (get_local 0) + (i32.load align=4 offset=4) + (get_local 4) + (i32.add) + (i32.store align=4 offset=4) + (get_local 7) + (get_local 8) + (i32.const 3) + (i32.or) + (i32.store align=4 offset=4) + (get_local 7) + (get_local 8) + (i32.add) + (set_local 0) + (get_local 3) + (get_local 7) + (i32.sub) + (get_local 8) + (i32.sub) + (set_local 2) + (get_local 3) + (i32.const 0) + (i32.load align=4 offset=4368) + (i32.eq) + (br_if 5) + (get_local 3) + (i32.const 0) + (i32.load align=4 offset=4364) + (i32.eq) + (br_if 6) + (get_local 3) + (i32.load align=4 offset=4) + (tee_local 8) + (i32.const 3) + (i32.and) + (i32.const 1) + (i32.ne) + (br_if 15) + (get_local 8) + (i32.const -8) + (i32.and) + (tee_local 9) + (i32.const 255) + (i32.gt_u) + (br_if 10) + (get_local 3) + (i32.load align=4 offset=12) + (tee_local 5) + (get_local 3) + (i32.load align=4 offset=8) + (tee_local 4) + (i32.eq) + (br_if 11) + (get_local 4) + (get_local 5) + (i32.store align=4 offset=12) + (get_local 5) + (get_local 4) + (i32.store align=4 offset=8) + (br 14) + (end) + (i32.const 0) + (get_local 7) + (get_local 3) + (i32.or) + (i32.store align=4 offset=3956) + (get_local 0) + (set_local 3) + (end) + (get_local 0) + (i32.const 8) + (i32.add) + (get_local 2) + (i32.store align=4) + (get_local 3) + (get_local 2) + (i32.store align=4 offset=12) + (get_local 2) + (get_local 0) + (i32.store align=4 offset=12) + (get_local 2) + (get_local 3) + (i32.store align=4 offset=8) + (br 6) + (end) + (get_local 3) + (get_local 2) + (i32.store align=4) + (i32.const 0) + (get_local 5) + (get_local 4) + (i32.or) + (i32.store align=4 offset=3960) + (get_local 2) + (i32.const 24) + (i32.add) + (get_local 3) + (i32.store align=4) + (get_local 2) + (get_local 2) + (i32.store align=4 offset=8) + (get_local 2) + (get_local 2) + (i32.store align=4 offset=12) + (br 5) + (end) + (get_local 7) + (i32.const 0) + (i32.const 25) + (get_local 0) + (i32.const 1) + (i32.shr_u) + (i32.sub) + (i32.const 31) + (i32.and) + (get_local 0) + (i32.const 31) + (i32.eq) + (select) + (i32.shl) + (set_local 3) + (loop emptyblock) + (get_local 5) + (get_local 3) + (i32.const 29) + (i32.shr_u) + (i32.const 4) + (i32.and) + (i32.add) + (i32.const 16) + (i32.add) + (tee_local 4) + (i32.load align=4) + (tee_local 0) + (i32.eqz) + (br_if 4) + (get_local 3) + (i32.const 1) + (i32.shl) + (set_local 3) + (get_local 0) + (set_local 5) + (get_local 0) + (i32.load align=4 offset=4) + (i32.const -8) + (i32.and) + (get_local 7) + (i32.ne) + (br_if 0) + (end) + (end) + (get_local 0) + (i32.load align=4 offset=8) + (tee_local 3) + (get_local 2) + (i32.store align=4 offset=12) + (get_local 0) + (get_local 2) + (i32.store align=4 offset=8) + (get_local 2) + (get_local 0) + (i32.store align=4 offset=12) + (get_local 2) + (get_local 3) + (i32.store align=4 offset=8) + (get_local 2) + (i32.const 24) + (i32.add) + (i32.const 0) + (i32.store align=4) + (br 3) + (end) + (i32.const 0) + (get_local 0) + (i32.store align=4 offset=4368) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4360) + (get_local 2) + (i32.add) + (tee_local 2) + (i32.store align=4 offset=4360) + (get_local 0) + (get_local 2) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (br 10) + (end) + (get_local 0) + (i32.const 0) + (i32.load align=4 offset=4356) + (get_local 2) + (i32.add) + (tee_local 2) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (i32.const 0) + (get_local 0) + (i32.store align=4 offset=4364) + (i32.const 0) + (get_local 2) + (i32.store align=4 offset=4356) + (get_local 0) + (get_local 2) + (i32.add) + (get_local 2) + (i32.store align=4) + (br 9) + (end) + (get_local 4) + (get_local 2) + (i32.store align=4) + (get_local 2) + (i32.const 24) + (i32.add) + (get_local 5) + (i32.store align=4) + (get_local 2) + (get_local 2) + (i32.store align=4 offset=12) + (get_local 2) + (get_local 2) + (i32.store align=4 offset=8) + (end) + (i32.const 0) + (set_local 2) + (i32.const 0) + (i32.load align=4 offset=4360) + (tee_local 0) + (get_local 8) + (i32.le_u) + (br_if 0) + (i32.const 0) + (get_local 0) + (get_local 8) + (i32.sub) + (tee_local 2) + (i32.store align=4 offset=4360) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4368) + (tee_local 0) + (get_local 8) + (i32.add) + (tee_local 3) + (i32.store align=4 offset=4368) + (get_local 3) + (get_local 2) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 0) + (get_local 8) + (i32.const 3) + (i32.or) + (i32.store align=4 offset=4) + (get_local 0) + (i32.const 8) + (i32.add) + (return) + (end) + (get_local 2) + (return) + (end) + (get_local 3) + (i32.load align=4 offset=24) + (set_local 6) + (get_local 3) + (i32.load align=4 offset=12) + (tee_local 8) + (get_local 3) + (i32.eq) + (br_if 1) + (get_local 3) + (i32.load align=4 offset=8) + (tee_local 5) + (get_local 8) + (i32.store align=4 offset=12) + (get_local 8) + (get_local 5) + (i32.store align=4 offset=8) + (get_local 6) + (br_if 2) + (br 3) + (end) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=3956) + (i32.const -2) + (get_local 8) + (i32.const 3) + (i32.shr_u) + (i32.rotl) + (i32.and) + (i32.store align=4 offset=3956) + (br 2) + (end) + (block emptyblock) + (get_local 3) + (i32.const 20) + (i32.add) + (get_local 3) + (i32.const 16) + (i32.add) + (get_local 3) + (i32.load align=4 offset=20) + (select) + (tee_local 5) + (i32.load align=4) + (tee_local 8) + (i32.eqz) + (br_if 0) + (loop emptyblock) + (get_local 5) + (set_local 4) + (get_local 8) + (i32.const 20) + (i32.add) + (tee_local 5) + (get_local 8) + (i32.const 16) + (i32.add) + (get_local 5) + (i32.load align=4) + (select) + (tee_local 5) + (i32.load align=4) + (tee_local 8) + (br_if 0) + (end) + (get_local 4) + (i32.load align=4) + (set_local 8) + (get_local 4) + (i32.const 0) + (i32.store align=4) + (get_local 6) + (br_if 1) + (br 2) + (end) + (i32.const 0) + (set_local 8) + (get_local 6) + (i32.eqz) + (br_if 1) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 3) + (i32.load align=4 offset=28) + (tee_local 4) + (i32.const 2) + (i32.shl) + (i32.const 4228) + (i32.add) + (tee_local 5) + (i32.load align=4) + (get_local 3) + (i32.eq) + (br_if 0) + (get_local 6) + (i32.const 16) + (i32.add) + (get_local 6) + (i32.load align=4 offset=16) + (get_local 3) + (i32.ne) + (i32.const 2) + (i32.shl) + (i32.add) + (get_local 8) + (i32.store align=4) + (get_local 8) + (br_if 1) + (br 3) + (end) + (get_local 5) + (get_local 8) + (i32.store align=4) + (get_local 8) + (i32.eqz) + (br_if 1) + (end) + (get_local 8) + (get_local 6) + (i32.store align=4 offset=24) + (block emptyblock) + (get_local 3) + (i32.load align=4 offset=16) + (tee_local 5) + (i32.eqz) + (br_if 0) + (get_local 8) + (get_local 5) + (i32.store align=4 offset=16) + (get_local 5) + (get_local 8) + (i32.store align=4 offset=24) + (end) + (get_local 3) + (i32.load align=4 offset=20) + (tee_local 5) + (i32.eqz) + (br_if 1) + (get_local 8) + (i32.const 20) + (i32.add) + (get_local 5) + (i32.store align=4) + (get_local 5) + (get_local 8) + (i32.store align=4 offset=24) + (br 1) + (end) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=3960) + (i32.const -2) + (get_local 4) + (i32.rotl) + (i32.and) + (i32.store align=4 offset=3960) + (end) + (get_local 9) + (get_local 2) + (i32.add) + (set_local 2) + (get_local 3) + (get_local 9) + (i32.add) + (set_local 3) + (end) + (get_local 3) + (get_local 3) + (i32.load align=4 offset=4) + (i32.const -2) + (i32.and) + (i32.store align=4 offset=4) + (get_local 0) + (get_local 2) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 0) + (get_local 2) + (i32.add) + (get_local 2) + (i32.store align=4) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.const 255) + (i32.gt_u) + (br_if 0) + (get_local 2) + (i32.const 3) + (i32.shr_u) + (tee_local 3) + (i32.const 3) + (i32.shl) + (i32.const 3964) + (i32.add) + (set_local 2) + (i32.const 0) + (i32.load align=4 offset=3956) + (tee_local 8) + (i32.const 1) + (get_local 3) + (i32.const 31) + (i32.and) + (i32.shl) + (tee_local 3) + (i32.and) + (i32.eqz) + (br_if 1) + (get_local 2) + (i32.const 8) + (i32.add) + (set_local 8) + (get_local 2) + (i32.load align=4 offset=8) + (set_local 3) + (br 2) + (end) + (i32.const 0) + (set_local 3) + (block emptyblock) + (get_local 2) + (i32.const 8) + (i32.shr_u) + (tee_local 8) + (i32.eqz) + (br_if 0) + (i32.const 31) + (set_local 3) + (get_local 2) + (i32.const 16777215) + (i32.gt_u) + (br_if 0) + (get_local 2) + (i32.const 38) + (get_local 8) + (i32.clz) + (tee_local 3) + (i32.sub) + (i32.const 31) + (i32.and) + (i32.shr_u) + (i32.const 1) + (i32.and) + (i32.const 31) + (get_local 3) + (i32.sub) + (i32.const 1) + (i32.shl) + (i32.or) + (set_local 3) + (end) + (get_local 0) + (get_local 3) + (i32.store align=4 offset=28) + (get_local 0) + (i64.const 0) + (i64.store align=4 offset=16) + (get_local 3) + (i32.const 2) + (i32.shl) + (i32.const 4228) + (i32.add) + (set_local 8) + (i32.const 0) + (i32.load align=4 offset=3960) + (tee_local 5) + (i32.const 1) + (get_local 3) + (i32.const 31) + (i32.and) + (i32.shl) + (tee_local 4) + (i32.and) + (i32.eqz) + (br_if 2) + (get_local 8) + (i32.load align=4) + (tee_local 5) + (i32.load align=4 offset=4) + (i32.const -8) + (i32.and) + (get_local 2) + (i32.ne) + (br_if 3) + (get_local 5) + (set_local 3) + (br 4) + (end) + (i32.const 0) + (get_local 8) + (get_local 3) + (i32.or) + (i32.store align=4 offset=3956) + (get_local 2) + (i32.const 8) + (i32.add) + (set_local 8) + (get_local 2) + (set_local 3) + (end) + (get_local 8) + (get_local 0) + (i32.store align=4) + (get_local 3) + (get_local 0) + (i32.store align=4 offset=12) + (get_local 0) + (get_local 2) + (i32.store align=4 offset=12) + (get_local 0) + (get_local 3) + (i32.store align=4 offset=8) + (br 5) + (end) + (get_local 8) + (get_local 0) + (i32.store align=4) + (i32.const 0) + (get_local 5) + (get_local 4) + (i32.or) + (i32.store align=4 offset=3960) + (get_local 0) + (get_local 8) + (i32.store align=4 offset=24) + (br 3) + (end) + (get_local 2) + (i32.const 0) + (i32.const 25) + (get_local 3) + (i32.const 1) + (i32.shr_u) + (i32.sub) + (i32.const 31) + (i32.and) + (get_local 3) + (i32.const 31) + (i32.eq) + (select) + (i32.shl) + (set_local 8) + (loop emptyblock) + (get_local 5) + (get_local 8) + (i32.const 29) + (i32.shr_u) + (i32.const 4) + (i32.and) + (i32.add) + (i32.const 16) + (i32.add) + (tee_local 4) + (i32.load align=4) + (tee_local 3) + (i32.eqz) + (br_if 2) + (get_local 8) + (i32.const 1) + (i32.shl) + (set_local 8) + (get_local 3) + (set_local 5) + (get_local 3) + (i32.load align=4 offset=4) + (i32.const -8) + (i32.and) + (get_local 2) + (i32.ne) + (br_if 0) + (end) + (end) + (get_local 3) + (i32.load align=4 offset=8) + (tee_local 2) + (get_local 0) + (i32.store align=4 offset=12) + (get_local 3) + (get_local 0) + (i32.store align=4 offset=8) + (get_local 0) + (get_local 3) + (i32.store align=4 offset=12) + (get_local 0) + (get_local 2) + (i32.store align=4 offset=8) + (get_local 0) + (i32.const 0) + (i32.store align=4 offset=24) + (br 2) + (end) + (get_local 4) + (get_local 0) + (i32.store align=4) + (get_local 0) + (get_local 5) + (i32.store align=4 offset=24) + (end) + (get_local 0) + (get_local 0) + (i32.store align=4 offset=12) + (get_local 0) + (get_local 0) + (i32.store align=4 offset=8) + (end) + (get_local 7) + (i32.const 8) + (i32.add) + ) + (func 108 (type 5) (local i32 i32 i32 i32 i32) + (get_local 0) + (get_local 1) + (i32.add) + (set_local 6) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=4) + (tee_local 5) + (i32.const 1) + (i32.and) + (br_if 0) + (get_local 5) + (i32.const 3) + (i32.and) + (i32.eqz) + (br_if 1) + (get_local 0) + (i32.load align=4) + (tee_local 5) + (get_local 1) + (i32.add) + (set_local 1) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 0) + (get_local 5) + (i32.sub) + (tee_local 0) + (i32.const 0) + (i32.load align=4 offset=4364) + (i32.eq) + (br_if 0) + (get_local 5) + (i32.const 255) + (i32.gt_u) + (br_if 1) + (get_local 0) + (i32.load align=4 offset=12) + (tee_local 4) + (get_local 0) + (i32.load align=4 offset=8) + (tee_local 3) + (i32.eq) + (br_if 2) + (get_local 3) + (get_local 4) + (i32.store align=4 offset=12) + (get_local 4) + (get_local 3) + (i32.store align=4 offset=8) + (br 5) + (end) + (get_local 6) + (i32.load align=4 offset=4) + (tee_local 5) + (i32.const 3) + (i32.and) + (i32.const 3) + (i32.ne) + (br_if 4) + (i32.const 0) + (get_local 1) + (i32.store align=4 offset=4356) + (get_local 6) + (i32.const 4) + (i32.add) + (get_local 5) + (i32.const -2) + (i32.and) + (i32.store align=4) + (get_local 0) + (get_local 1) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 0) + (get_local 1) + (i32.add) + (get_local 1) + (i32.store align=4) + (return) + (end) + (get_local 0) + (i32.load align=4 offset=24) + (set_local 2) + (get_local 0) + (i32.load align=4 offset=12) + (tee_local 5) + (get_local 0) + (i32.eq) + (br_if 1) + (get_local 0) + (i32.load align=4 offset=8) + (tee_local 4) + (get_local 5) + (i32.store align=4 offset=12) + (get_local 5) + (get_local 4) + (i32.store align=4 offset=8) + (get_local 2) + (br_if 2) + (br 3) + (end) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=3956) + (i32.const -2) + (get_local 5) + (i32.const 3) + (i32.shr_u) + (i32.rotl) + (i32.and) + (i32.store align=4 offset=3956) + (br 2) + (end) + (block emptyblock) + (get_local 0) + (i32.const 20) + (i32.add) + (get_local 0) + (i32.const 16) + (i32.add) + (get_local 0) + (i32.load align=4 offset=20) + (select) + (tee_local 4) + (i32.load align=4) + (tee_local 5) + (i32.eqz) + (br_if 0) + (loop emptyblock) + (get_local 4) + (set_local 3) + (get_local 5) + (i32.const 20) + (i32.add) + (tee_local 4) + (get_local 5) + (i32.const 16) + (i32.add) + (get_local 4) + (i32.load align=4) + (select) + (tee_local 4) + (i32.load align=4) + (tee_local 5) + (br_if 0) + (end) + (get_local 3) + (i32.load align=4) + (set_local 5) + (get_local 3) + (i32.const 0) + (i32.store align=4) + (get_local 2) + (br_if 1) + (br 2) + (end) + (i32.const 0) + (set_local 5) + (get_local 2) + (i32.eqz) + (br_if 1) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=28) + (tee_local 3) + (i32.const 2) + (i32.shl) + (i32.const 4228) + (i32.add) + (tee_local 4) + (i32.load align=4) + (get_local 0) + (i32.eq) + (br_if 0) + (get_local 2) + (i32.const 16) + (i32.add) + (get_local 2) + (i32.load align=4 offset=16) + (get_local 0) + (i32.ne) + (i32.const 2) + (i32.shl) + (i32.add) + (get_local 5) + (i32.store align=4) + (get_local 5) + (br_if 1) + (br 3) + (end) + (get_local 4) + (get_local 5) + (i32.store align=4) + (get_local 5) + (i32.eqz) + (br_if 1) + (end) + (get_local 5) + (get_local 2) + (i32.store align=4 offset=24) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=16) + (tee_local 4) + (i32.eqz) + (br_if 0) + (get_local 5) + (get_local 4) + (i32.store align=4 offset=16) + (get_local 4) + (get_local 5) + (i32.store align=4 offset=24) + (end) + (get_local 0) + (i32.load align=4 offset=20) + (tee_local 4) + (i32.eqz) + (br_if 1) + (get_local 5) + (i32.const 20) + (i32.add) + (get_local 4) + (i32.store align=4) + (get_local 4) + (get_local 5) + (i32.store align=4 offset=24) + (br 1) + (end) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=3960) + (i32.const -2) + (get_local 3) + (i32.rotl) + (i32.and) + (i32.store align=4 offset=3960) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 6) + (i32.load align=4 offset=4) + (tee_local 5) + (i32.const 2) + (i32.and) + (br_if 0) + (get_local 6) + (i32.const 0) + (i32.load align=4 offset=4368) + (i32.eq) + (br_if 1) + (get_local 6) + (i32.const 0) + (i32.load align=4 offset=4364) + (i32.eq) + (br_if 2) + (get_local 5) + (i32.const -8) + (i32.and) + (tee_local 4) + (get_local 1) + (i32.add) + (set_local 1) + (get_local 4) + (i32.const 255) + (i32.gt_u) + (br_if 3) + (get_local 6) + (i32.load align=4 offset=12) + (tee_local 4) + (get_local 6) + (i32.load align=4 offset=8) + (tee_local 6) + (i32.eq) + (br_if 4) + (get_local 6) + (get_local 4) + (i32.store align=4 offset=12) + (get_local 4) + (get_local 6) + (i32.store align=4 offset=8) + (br 7) + (end) + (get_local 6) + (i32.const 4) + (i32.add) + (get_local 5) + (i32.const -2) + (i32.and) + (i32.store align=4) + (get_local 0) + (get_local 1) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 0) + (get_local 1) + (i32.add) + (get_local 1) + (i32.store align=4) + (br 7) + (end) + (i32.const 0) + (get_local 0) + (i32.store align=4 offset=4368) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4360) + (get_local 1) + (i32.add) + (tee_local 1) + (i32.store align=4 offset=4360) + (get_local 0) + (get_local 1) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 0) + (i32.const 0) + (i32.load align=4 offset=4364) + (i32.ne) + (br_if 7) + (i32.const 0) + (i32.const 0) + (i32.store align=4 offset=4356) + (i32.const 0) + (i32.const 0) + (i32.store align=4 offset=4364) + (return) + (end) + (i32.const 0) + (get_local 0) + (i32.store align=4 offset=4364) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4356) + (get_local 1) + (i32.add) + (tee_local 1) + (i32.store align=4 offset=4356) + (get_local 0) + (get_local 1) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 0) + (get_local 1) + (i32.add) + (get_local 1) + (i32.store align=4) + (return) + (end) + (get_local 6) + (i32.load align=4 offset=24) + (set_local 2) + (get_local 6) + (i32.load align=4 offset=12) + (tee_local 5) + (get_local 6) + (i32.eq) + (br_if 1) + (get_local 6) + (i32.load align=4 offset=8) + (tee_local 4) + (get_local 5) + (i32.store align=4 offset=12) + (get_local 5) + (get_local 4) + (i32.store align=4 offset=8) + (get_local 2) + (br_if 2) + (br 3) + (end) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=3956) + (i32.const -2) + (get_local 5) + (i32.const 3) + (i32.shr_u) + (i32.rotl) + (i32.and) + (i32.store align=4 offset=3956) + (br 2) + (end) + (block emptyblock) + (get_local 6) + (i32.const 20) + (i32.add) + (get_local 6) + (i32.const 16) + (i32.add) + (get_local 6) + (i32.load align=4 offset=20) + (select) + (tee_local 4) + (i32.load align=4) + (tee_local 5) + (i32.eqz) + (br_if 0) + (loop emptyblock) + (get_local 4) + (set_local 3) + (get_local 5) + (i32.const 20) + (i32.add) + (tee_local 4) + (get_local 5) + (i32.const 16) + (i32.add) + (get_local 4) + (i32.load align=4) + (select) + (tee_local 4) + (i32.load align=4) + (tee_local 5) + (br_if 0) + (end) + (get_local 3) + (i32.load align=4) + (set_local 5) + (get_local 3) + (i32.const 0) + (i32.store align=4) + (get_local 2) + (br_if 1) + (br 2) + (end) + (i32.const 0) + (set_local 5) + (get_local 2) + (i32.eqz) + (br_if 1) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 6) + (i32.load align=4 offset=28) + (tee_local 3) + (i32.const 2) + (i32.shl) + (i32.const 4228) + (i32.add) + (tee_local 4) + (i32.load align=4) + (get_local 6) + (i32.eq) + (br_if 0) + (get_local 2) + (i32.const 16) + (i32.add) + (get_local 2) + (i32.load align=4 offset=16) + (get_local 6) + (i32.ne) + (i32.const 2) + (i32.shl) + (i32.add) + (get_local 5) + (i32.store align=4) + (get_local 5) + (br_if 1) + (br 3) + (end) + (get_local 4) + (get_local 5) + (i32.store align=4) + (get_local 5) + (i32.eqz) + (br_if 1) + (end) + (get_local 5) + (get_local 2) + (i32.store align=4 offset=24) + (block emptyblock) + (get_local 6) + (i32.load align=4 offset=16) + (tee_local 4) + (i32.eqz) + (br_if 0) + (get_local 5) + (get_local 4) + (i32.store align=4 offset=16) + (get_local 4) + (get_local 5) + (i32.store align=4 offset=24) + (end) + (get_local 6) + (i32.load align=4 offset=20) + (tee_local 6) + (i32.eqz) + (br_if 1) + (get_local 5) + (i32.const 20) + (i32.add) + (get_local 6) + (i32.store align=4) + (get_local 6) + (get_local 5) + (i32.store align=4 offset=24) + (br 1) + (end) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=3960) + (i32.const -2) + (get_local 3) + (i32.rotl) + (i32.and) + (i32.store align=4 offset=3960) + (end) + (get_local 0) + (get_local 1) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 0) + (get_local 1) + (i32.add) + (get_local 1) + (i32.store align=4) + (get_local 0) + (i32.const 0) + (i32.load align=4 offset=4364) + (i32.ne) + (br_if 0) + (i32.const 0) + (get_local 1) + (i32.store align=4 offset=4356) + (return) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 1) + (i32.const 255) + (i32.gt_u) + (br_if 0) + (get_local 1) + (i32.const 3) + (i32.shr_u) + (tee_local 6) + (i32.const 3) + (i32.shl) + (i32.const 3964) + (i32.add) + (set_local 1) + (i32.const 0) + (i32.load align=4 offset=3956) + (tee_local 5) + (i32.const 1) + (get_local 6) + (i32.const 31) + (i32.and) + (i32.shl) + (tee_local 6) + (i32.and) + (i32.eqz) + (br_if 1) + (get_local 1) + (i32.load align=4 offset=8) + (set_local 6) + (br 2) + (end) + (i32.const 0) + (set_local 6) + (block emptyblock) + (get_local 1) + (i32.const 8) + (i32.shr_u) + (tee_local 5) + (i32.eqz) + (br_if 0) + (i32.const 31) + (set_local 6) + (get_local 1) + (i32.const 16777215) + (i32.gt_u) + (br_if 0) + (get_local 1) + (i32.const 38) + (get_local 5) + (i32.clz) + (tee_local 6) + (i32.sub) + (i32.const 31) + (i32.and) + (i32.shr_u) + (i32.const 1) + (i32.and) + (i32.const 31) + (get_local 6) + (i32.sub) + (i32.const 1) + (i32.shl) + (i32.or) + (set_local 6) + (end) + (get_local 0) + (i64.const 0) + (i64.store align=4 offset=16) + (get_local 0) + (i32.const 28) + (i32.add) + (get_local 6) + (i32.store align=4) + (get_local 6) + (i32.const 2) + (i32.shl) + (i32.const 4228) + (i32.add) + (set_local 5) + (i32.const 0) + (i32.load align=4 offset=3960) + (tee_local 4) + (i32.const 1) + (get_local 6) + (i32.const 31) + (i32.and) + (i32.shl) + (tee_local 3) + (i32.and) + (i32.eqz) + (br_if 2) + (get_local 5) + (i32.load align=4) + (tee_local 4) + (i32.load align=4 offset=4) + (i32.const -8) + (i32.and) + (get_local 1) + (i32.ne) + (br_if 3) + (get_local 4) + (set_local 6) + (br 4) + (end) + (i32.const 0) + (get_local 5) + (get_local 6) + (i32.or) + (i32.store align=4 offset=3956) + (get_local 1) + (set_local 6) + (end) + (get_local 1) + (i32.const 8) + (i32.add) + (get_local 0) + (i32.store align=4) + (get_local 6) + (get_local 0) + (i32.store align=4 offset=12) + (get_local 0) + (get_local 1) + (i32.store align=4 offset=12) + (get_local 0) + (get_local 6) + (i32.store align=4 offset=8) + (return) + (end) + (get_local 5) + (get_local 0) + (i32.store align=4) + (i32.const 0) + (get_local 4) + (get_local 3) + (i32.or) + (i32.store align=4 offset=3960) + (get_local 0) + (i32.const 24) + (i32.add) + (get_local 5) + (i32.store align=4) + (get_local 0) + (get_local 0) + (i32.store align=4 offset=8) + (get_local 0) + (get_local 0) + (i32.store align=4 offset=12) + (return) + (end) + (get_local 1) + (i32.const 0) + (i32.const 25) + (get_local 6) + (i32.const 1) + (i32.shr_u) + (i32.sub) + (i32.const 31) + (i32.and) + (get_local 6) + (i32.const 31) + (i32.eq) + (select) + (i32.shl) + (set_local 5) + (loop emptyblock) + (get_local 4) + (get_local 5) + (i32.const 29) + (i32.shr_u) + (i32.const 4) + (i32.and) + (i32.add) + (i32.const 16) + (i32.add) + (tee_local 3) + (i32.load align=4) + (tee_local 6) + (i32.eqz) + (br_if 2) + (get_local 5) + (i32.const 1) + (i32.shl) + (set_local 5) + (get_local 6) + (set_local 4) + (get_local 6) + (i32.load align=4 offset=4) + (i32.const -8) + (i32.and) + (get_local 1) + (i32.ne) + (br_if 0) + (end) + (end) + (get_local 6) + (i32.load align=4 offset=8) + (tee_local 1) + (get_local 0) + (i32.store align=4 offset=12) + (get_local 6) + (get_local 0) + (i32.store align=4 offset=8) + (get_local 0) + (get_local 6) + (i32.store align=4 offset=12) + (get_local 0) + (get_local 1) + (i32.store align=4 offset=8) + (get_local 0) + (i32.const 24) + (i32.add) + (i32.const 0) + (i32.store align=4) + (return) + (end) + (get_local 3) + (get_local 0) + (i32.store align=4) + (get_local 0) + (i32.const 24) + (i32.add) + (get_local 4) + (i32.store align=4) + (get_local 0) + (get_local 0) + (i32.store align=4 offset=12) + (get_local 0) + (get_local 0) + (i32.store align=4 offset=8) + (end) + ) + (func 109 (type 2) (local i32 i32 i32 i32 i32 i32) + (get_local 0) + (i32.const -8) + (i32.add) + (tee_local 3) + (get_local 0) + (i32.const -4) + (i32.add) + (i32.load align=4) + (tee_local 5) + (i32.const -8) + (i32.and) + (tee_local 0) + (i32.add) + (set_local 6) + (block emptyblock) + (block emptyblock) + (get_local 5) + (i32.const 1) + (i32.and) + (br_if 0) + (get_local 5) + (i32.const 3) + (i32.and) + (i32.eqz) + (br_if 1) + (get_local 3) + (i32.load align=4) + (tee_local 5) + (get_local 0) + (i32.add) + (set_local 0) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 3) + (get_local 5) + (i32.sub) + (tee_local 3) + (i32.const 0) + (i32.load align=4 offset=4364) + (i32.eq) + (br_if 0) + (get_local 5) + (i32.const 255) + (i32.gt_u) + (br_if 1) + (get_local 3) + (i32.load align=4 offset=12) + (tee_local 4) + (get_local 3) + (i32.load align=4 offset=8) + (tee_local 2) + (i32.eq) + (br_if 2) + (get_local 2) + (get_local 4) + (i32.store align=4 offset=12) + (get_local 4) + (get_local 2) + (i32.store align=4 offset=8) + (br 5) + (end) + (get_local 6) + (i32.load align=4 offset=4) + (tee_local 5) + (i32.const 3) + (i32.and) + (i32.const 3) + (i32.ne) + (br_if 4) + (i32.const 0) + (get_local 0) + (i32.store align=4 offset=4356) + (get_local 6) + (i32.const 4) + (i32.add) + (get_local 5) + (i32.const -2) + (i32.and) + (i32.store align=4) + (get_local 3) + (get_local 0) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 3) + (get_local 0) + (i32.add) + (get_local 0) + (i32.store align=4) + (return) + (end) + (get_local 3) + (i32.load align=4 offset=24) + (set_local 1) + (get_local 3) + (i32.load align=4 offset=12) + (tee_local 5) + (get_local 3) + (i32.eq) + (br_if 1) + (get_local 3) + (i32.load align=4 offset=8) + (tee_local 4) + (get_local 5) + (i32.store align=4 offset=12) + (get_local 5) + (get_local 4) + (i32.store align=4 offset=8) + (get_local 1) + (br_if 2) + (br 3) + (end) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=3956) + (i32.const -2) + (get_local 5) + (i32.const 3) + (i32.shr_u) + (i32.rotl) + (i32.and) + (i32.store align=4 offset=3956) + (br 2) + (end) + (block emptyblock) + (get_local 3) + (i32.const 20) + (i32.add) + (get_local 3) + (i32.const 16) + (i32.add) + (get_local 3) + (i32.load align=4 offset=20) + (select) + (tee_local 4) + (i32.load align=4) + (tee_local 5) + (i32.eqz) + (br_if 0) + (loop emptyblock) + (get_local 4) + (set_local 2) + (get_local 5) + (i32.const 20) + (i32.add) + (tee_local 4) + (get_local 5) + (i32.const 16) + (i32.add) + (get_local 4) + (i32.load align=4) + (select) + (tee_local 4) + (i32.load align=4) + (tee_local 5) + (br_if 0) + (end) + (get_local 2) + (i32.load align=4) + (set_local 5) + (get_local 2) + (i32.const 0) + (i32.store align=4) + (get_local 1) + (br_if 1) + (br 2) + (end) + (i32.const 0) + (set_local 5) + (get_local 1) + (i32.eqz) + (br_if 1) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 3) + (i32.load align=4 offset=28) + (tee_local 2) + (i32.const 2) + (i32.shl) + (i32.const 4228) + (i32.add) + (tee_local 4) + (i32.load align=4) + (get_local 3) + (i32.eq) + (br_if 0) + (get_local 1) + (i32.const 16) + (i32.add) + (get_local 1) + (i32.load align=4 offset=16) + (get_local 3) + (i32.ne) + (i32.const 2) + (i32.shl) + (i32.add) + (get_local 5) + (i32.store align=4) + (get_local 5) + (br_if 1) + (br 3) + (end) + (get_local 4) + (get_local 5) + (i32.store align=4) + (get_local 5) + (i32.eqz) + (br_if 1) + (end) + (get_local 5) + (get_local 1) + (i32.store align=4 offset=24) + (block emptyblock) + (get_local 3) + (i32.load align=4 offset=16) + (tee_local 4) + (i32.eqz) + (br_if 0) + (get_local 5) + (get_local 4) + (i32.store align=4 offset=16) + (get_local 4) + (get_local 5) + (i32.store align=4 offset=24) + (end) + (get_local 3) + (i32.load align=4 offset=20) + (tee_local 4) + (i32.eqz) + (br_if 1) + (get_local 5) + (i32.const 20) + (i32.add) + (get_local 4) + (i32.store align=4) + (get_local 4) + (get_local 5) + (i32.store align=4 offset=24) + (br 1) + (end) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=3960) + (i32.const -2) + (get_local 2) + (i32.rotl) + (i32.and) + (i32.store align=4 offset=3960) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 6) + (i32.load align=4 offset=4) + (tee_local 5) + (i32.const 2) + (i32.and) + (br_if 0) + (get_local 6) + (i32.const 0) + (i32.load align=4 offset=4368) + (i32.eq) + (br_if 1) + (get_local 6) + (i32.const 0) + (i32.load align=4 offset=4364) + (i32.eq) + (br_if 2) + (get_local 5) + (i32.const -8) + (i32.and) + (tee_local 4) + (get_local 0) + (i32.add) + (set_local 0) + (get_local 4) + (i32.const 255) + (i32.gt_u) + (br_if 3) + (get_local 6) + (i32.load align=4 offset=12) + (tee_local 4) + (get_local 6) + (i32.load align=4 offset=8) + (tee_local 6) + (i32.eq) + (br_if 4) + (get_local 6) + (get_local 4) + (i32.store align=4 offset=12) + (get_local 4) + (get_local 6) + (i32.store align=4 offset=8) + (br 7) + (end) + (get_local 6) + (i32.const 4) + (i32.add) + (get_local 5) + (i32.const -2) + (i32.and) + (i32.store align=4) + (get_local 3) + (get_local 0) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 3) + (get_local 0) + (i32.add) + (get_local 0) + (i32.store align=4) + (br 7) + (end) + (i32.const 0) + (get_local 3) + (i32.store align=4 offset=4368) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4360) + (get_local 0) + (i32.add) + (tee_local 0) + (i32.store align=4 offset=4360) + (get_local 3) + (get_local 0) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (block emptyblock) + (get_local 3) + (i32.const 0) + (i32.load align=4 offset=4364) + (i32.ne) + (br_if 0) + (i32.const 0) + (i32.const 0) + (i32.store align=4 offset=4356) + (i32.const 0) + (i32.const 0) + (i32.store align=4 offset=4364) + (end) + (i32.const 0) + (i32.load align=4 offset=4396) + (tee_local 5) + (get_local 0) + (i32.ge_u) + (br_if 7) + (block emptyblock) + (get_local 0) + (i32.const 41) + (i32.lt_u) + (br_if 0) + (i32.const 4380) + (set_local 0) + (loop emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4) + (tee_local 6) + (get_local 3) + (i32.gt_u) + (br_if 0) + (get_local 6) + (get_local 0) + (i32.load align=4 offset=4) + (i32.add) + (get_local 3) + (i32.gt_u) + (br_if 2) + (end) + (get_local 0) + (i32.load align=4 offset=8) + (tee_local 0) + (br_if 0) + (end) + (end) + (i32.const 0) + (set_local 3) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=4388) + (tee_local 0) + (i32.eqz) + (br_if 0) + (i32.const 0) + (set_local 3) + (loop emptyblock) + (get_local 3) + (i32.const 1) + (i32.add) + (set_local 3) + (get_local 0) + (i32.load align=4 offset=8) + (tee_local 0) + (br_if 0) + (end) + (end) + (i32.const 0) + (get_local 3) + (i32.const 4095) + (get_local 3) + (i32.const 4095) + (i32.gt_u) + (select) + (i32.store align=4 offset=4404) + (i32.const 0) + (i32.load align=4 offset=4360) + (get_local 5) + (i32.le_u) + (br_if 7) + (i32.const 0) + (i32.const -1) + (i32.store align=4 offset=4396) + (return) + (end) + (i32.const 0) + (get_local 3) + (i32.store align=4 offset=4364) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4356) + (get_local 0) + (i32.add) + (tee_local 0) + (i32.store align=4 offset=4356) + (get_local 3) + (get_local 0) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 3) + (get_local 0) + (i32.add) + (get_local 0) + (i32.store align=4) + (return) + (end) + (get_local 6) + (i32.load align=4 offset=24) + (set_local 1) + (get_local 6) + (i32.load align=4 offset=12) + (tee_local 5) + (get_local 6) + (i32.eq) + (br_if 1) + (get_local 6) + (i32.load align=4 offset=8) + (tee_local 4) + (get_local 5) + (i32.store align=4 offset=12) + (get_local 5) + (get_local 4) + (i32.store align=4 offset=8) + (get_local 1) + (br_if 2) + (br 3) + (end) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=3956) + (i32.const -2) + (get_local 5) + (i32.const 3) + (i32.shr_u) + (i32.rotl) + (i32.and) + (i32.store align=4 offset=3956) + (br 2) + (end) + (block emptyblock) + (get_local 6) + (i32.const 20) + (i32.add) + (get_local 6) + (i32.const 16) + (i32.add) + (get_local 6) + (i32.load align=4 offset=20) + (select) + (tee_local 4) + (i32.load align=4) + (tee_local 5) + (i32.eqz) + (br_if 0) + (loop emptyblock) + (get_local 4) + (set_local 2) + (get_local 5) + (i32.const 20) + (i32.add) + (tee_local 4) + (get_local 5) + (i32.const 16) + (i32.add) + (get_local 4) + (i32.load align=4) + (select) + (tee_local 4) + (i32.load align=4) + (tee_local 5) + (br_if 0) + (end) + (get_local 2) + (i32.load align=4) + (set_local 5) + (get_local 2) + (i32.const 0) + (i32.store align=4) + (get_local 1) + (br_if 1) + (br 2) + (end) + (i32.const 0) + (set_local 5) + (get_local 1) + (i32.eqz) + (br_if 1) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 6) + (i32.load align=4 offset=28) + (tee_local 2) + (i32.const 2) + (i32.shl) + (i32.const 4228) + (i32.add) + (tee_local 4) + (i32.load align=4) + (get_local 6) + (i32.eq) + (br_if 0) + (get_local 1) + (i32.const 16) + (i32.add) + (get_local 1) + (i32.load align=4 offset=16) + (get_local 6) + (i32.ne) + (i32.const 2) + (i32.shl) + (i32.add) + (get_local 5) + (i32.store align=4) + (get_local 5) + (br_if 1) + (br 3) + (end) + (get_local 4) + (get_local 5) + (i32.store align=4) + (get_local 5) + (i32.eqz) + (br_if 1) + (end) + (get_local 5) + (get_local 1) + (i32.store align=4 offset=24) + (block emptyblock) + (get_local 6) + (i32.load align=4 offset=16) + (tee_local 4) + (i32.eqz) + (br_if 0) + (get_local 5) + (get_local 4) + (i32.store align=4 offset=16) + (get_local 4) + (get_local 5) + (i32.store align=4 offset=24) + (end) + (get_local 6) + (i32.load align=4 offset=20) + (tee_local 6) + (i32.eqz) + (br_if 1) + (get_local 5) + (i32.const 20) + (i32.add) + (get_local 6) + (i32.store align=4) + (get_local 6) + (get_local 5) + (i32.store align=4 offset=24) + (br 1) + (end) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=3960) + (i32.const -2) + (get_local 2) + (i32.rotl) + (i32.and) + (i32.store align=4 offset=3960) + (end) + (get_local 3) + (get_local 0) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 3) + (get_local 0) + (i32.add) + (get_local 0) + (i32.store align=4) + (get_local 3) + (i32.const 0) + (i32.load align=4 offset=4364) + (i32.ne) + (br_if 0) + (i32.const 0) + (get_local 0) + (i32.store align=4 offset=4356) + (return) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.const 255) + (i32.gt_u) + (br_if 0) + (get_local 0) + (i32.const 3) + (i32.shr_u) + (tee_local 6) + (i32.const 3) + (i32.shl) + (i32.const 3964) + (i32.add) + (set_local 0) + (i32.const 0) + (i32.load align=4 offset=3956) + (tee_local 5) + (i32.const 1) + (get_local 6) + (i32.const 31) + (i32.and) + (i32.shl) + (tee_local 6) + (i32.and) + (i32.eqz) + (br_if 1) + (get_local 0) + (i32.load align=4 offset=8) + (set_local 6) + (br 2) + (end) + (i32.const 0) + (set_local 6) + (block emptyblock) + (get_local 0) + (i32.const 8) + (i32.shr_u) + (tee_local 5) + (i32.eqz) + (br_if 0) + (i32.const 31) + (set_local 6) + (get_local 0) + (i32.const 16777215) + (i32.gt_u) + (br_if 0) + (get_local 0) + (i32.const 38) + (get_local 5) + (i32.clz) + (tee_local 6) + (i32.sub) + (i32.const 31) + (i32.and) + (i32.shr_u) + (i32.const 1) + (i32.and) + (i32.const 31) + (get_local 6) + (i32.sub) + (i32.const 1) + (i32.shl) + (i32.or) + (set_local 6) + (end) + (get_local 3) + (i64.const 0) + (i64.store align=4 offset=16) + (get_local 3) + (i32.const 28) + (i32.add) + (get_local 6) + (i32.store align=4) + (get_local 6) + (i32.const 2) + (i32.shl) + (i32.const 4228) + (i32.add) + (set_local 5) + (i32.const 0) + (i32.load align=4 offset=3960) + (tee_local 4) + (i32.const 1) + (get_local 6) + (i32.const 31) + (i32.and) + (i32.shl) + (tee_local 2) + (i32.and) + (i32.eqz) + (br_if 2) + (get_local 5) + (i32.load align=4) + (tee_local 4) + (i32.load align=4 offset=4) + (i32.const -8) + (i32.and) + (get_local 0) + (i32.ne) + (br_if 3) + (get_local 4) + (set_local 6) + (br 4) + (end) + (i32.const 0) + (get_local 5) + (get_local 6) + (i32.or) + (i32.store align=4 offset=3956) + (get_local 0) + (set_local 6) + (end) + (get_local 0) + (i32.const 8) + (i32.add) + (get_local 3) + (i32.store align=4) + (get_local 6) + (get_local 3) + (i32.store align=4 offset=12) + (get_local 3) + (get_local 0) + (i32.store align=4 offset=12) + (get_local 3) + (get_local 6) + (i32.store align=4 offset=8) + (return) + (end) + (get_local 5) + (get_local 3) + (i32.store align=4) + (i32.const 0) + (get_local 4) + (get_local 2) + (i32.or) + (i32.store align=4 offset=3960) + (get_local 3) + (i32.const 24) + (i32.add) + (get_local 5) + (i32.store align=4) + (get_local 3) + (get_local 3) + (i32.store align=4 offset=8) + (get_local 3) + (get_local 3) + (i32.store align=4 offset=12) + (br 3) + (end) + (get_local 0) + (i32.const 0) + (i32.const 25) + (get_local 6) + (i32.const 1) + (i32.shr_u) + (i32.sub) + (i32.const 31) + (i32.and) + (get_local 6) + (i32.const 31) + (i32.eq) + (select) + (i32.shl) + (set_local 5) + (loop emptyblock) + (get_local 4) + (get_local 5) + (i32.const 29) + (i32.shr_u) + (i32.const 4) + (i32.and) + (i32.add) + (i32.const 16) + (i32.add) + (tee_local 2) + (i32.load align=4) + (tee_local 6) + (i32.eqz) + (br_if 2) + (get_local 5) + (i32.const 1) + (i32.shl) + (set_local 5) + (get_local 6) + (set_local 4) + (get_local 6) + (i32.load align=4 offset=4) + (i32.const -8) + (i32.and) + (get_local 0) + (i32.ne) + (br_if 0) + (end) + (end) + (get_local 6) + (i32.load align=4 offset=8) + (tee_local 0) + (get_local 3) + (i32.store align=4 offset=12) + (get_local 6) + (get_local 3) + (i32.store align=4 offset=8) + (get_local 3) + (get_local 6) + (i32.store align=4 offset=12) + (get_local 3) + (get_local 0) + (i32.store align=4 offset=8) + (get_local 3) + (i32.const 24) + (i32.add) + (i32.const 0) + (i32.store align=4) + (br 1) + (end) + (get_local 2) + (get_local 3) + (i32.store align=4) + (get_local 3) + (i32.const 24) + (i32.add) + (get_local 4) + (i32.store align=4) + (get_local 3) + (get_local 3) + (i32.store align=4 offset=12) + (get_local 3) + (get_local 3) + (i32.store align=4 offset=8) + (end) + (i32.const 0) + (set_local 3) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4404) + (i32.const -1) + (i32.add) + (tee_local 0) + (i32.store align=4 offset=4404) + (get_local 0) + (br_if 0) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=4388) + (tee_local 0) + (i32.eqz) + (br_if 0) + (i32.const 0) + (set_local 3) + (loop emptyblock) + (get_local 3) + (i32.const 1) + (i32.add) + (set_local 3) + (get_local 0) + (i32.load align=4 offset=8) + (tee_local 0) + (br_if 0) + (end) + (end) + (i32.const 0) + (get_local 3) + (i32.const 4095) + (get_local 3) + (i32.const 4095) + (i32.gt_u) + (select) + (i32.store align=4 offset=4404) + (end) + ) + (func 110 (type 6) (local i32 i32 i32 i32 i32) + (i32.const 0) + (set_local 6) + (block emptyblock) + (i32.const -64) + (get_local 0) + (i32.const 16) + (get_local 0) + (i32.const 16) + (i32.gt_u) + (select) + (tee_local 0) + (i32.sub) + (get_local 1) + (i32.le_u) + (br_if 0) + (get_local 0) + (i32.const 16) + (get_local 1) + (i32.const 11) + (i32.add) + (i32.const -8) + (i32.and) + (get_local 1) + (i32.const 11) + (i32.lt_u) + (select) + (tee_local 2) + (i32.add) + (i32.const 12) + (i32.add) + (call 107) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.const -8) + (i32.add) + (set_local 6) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 1) + (get_local 0) + (i32.const -1) + (i32.add) + (tee_local 3) + (i32.and) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.const -4) + (i32.add) + (tee_local 4) + (i32.load align=4) + (tee_local 5) + (i32.const -8) + (i32.and) + (get_local 3) + (get_local 1) + (i32.add) + (i32.const 0) + (get_local 0) + (i32.sub) + (i32.and) + (i32.const -8) + (i32.add) + (tee_local 1) + (get_local 1) + (get_local 0) + (i32.add) + (get_local 1) + (get_local 6) + (i32.sub) + (i32.const 16) + (i32.gt_u) + (select) + (tee_local 0) + (get_local 6) + (i32.sub) + (tee_local 1) + (i32.sub) + (set_local 3) + (get_local 5) + (i32.const 3) + (i32.and) + (i32.eqz) + (br_if 1) + (get_local 0) + (get_local 3) + (get_local 0) + (i32.load align=4 offset=4) + (i32.const 1) + (i32.and) + (i32.or) + (i32.const 2) + (i32.or) + (i32.store align=4 offset=4) + (get_local 0) + (get_local 3) + (i32.add) + (tee_local 3) + (get_local 3) + (i32.load align=4 offset=4) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 4) + (get_local 1) + (get_local 4) + (i32.load align=4) + (i32.const 1) + (i32.and) + (i32.or) + (i32.const 2) + (i32.or) + (i32.store align=4) + (get_local 6) + (get_local 1) + (i32.add) + (tee_local 3) + (get_local 3) + (i32.load align=4 offset=4) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 6) + (get_local 1) + (call 108) + (br 2) + (end) + (get_local 6) + (set_local 0) + (br 1) + (end) + (get_local 6) + (i32.load align=4) + (set_local 6) + (get_local 0) + (get_local 3) + (i32.store align=4 offset=4) + (get_local 0) + (get_local 6) + (get_local 1) + (i32.add) + (i32.store align=4) + (end) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=4) + (tee_local 1) + (i32.const 3) + (i32.and) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.const -8) + (i32.and) + (tee_local 6) + (get_local 2) + (i32.const 16) + (i32.add) + (i32.le_u) + (br_if 0) + (get_local 0) + (i32.const 4) + (i32.add) + (get_local 2) + (get_local 1) + (i32.const 1) + (i32.and) + (i32.or) + (i32.const 2) + (i32.or) + (i32.store align=4) + (get_local 0) + (get_local 2) + (i32.add) + (tee_local 1) + (get_local 6) + (get_local 2) + (i32.sub) + (tee_local 6) + (i32.const 3) + (i32.or) + (i32.store align=4 offset=4) + (get_local 1) + (get_local 6) + (i32.add) + (tee_local 2) + (get_local 2) + (i32.load align=4 offset=4) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 1) + (get_local 6) + (call 108) + (end) + (get_local 0) + (i32.const 8) + (i32.add) + (set_local 6) + (end) + (get_local 6) + ) + (func 111 (type 4) (local i32 i32 i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 8) + (i32.store align=4 offset=4) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=4) + (tee_local 7) + (get_local 0) + (i32.load align=4 offset=8) + (tee_local 3) + (i32.sub) + (get_local 2) + (i32.ge_u) + (br_if 0) + (get_local 3) + (get_local 2) + (i32.add) + (tee_local 6) + (get_local 3) + (i32.lt_u) + (br_if 4) + (get_local 6) + (get_local 7) + (i32.const 1) + (i32.shl) + (tee_local 4) + (get_local 6) + (get_local 4) + (i32.ge_u) + (select) + (tee_local 4) + (i32.const -1) + (i32.le_s) + (br_if 5) + (get_local 7) + (i32.eqz) + (br_if 1) + (get_local 0) + (i32.load align=4) + (get_local 7) + (i32.const 1) + (get_local 4) + (i32.const 1) + (get_local 8) + (call 145) + (tee_local 5) + (get_local 8) + (i32.load align=4) + (get_local 5) + (select) + (set_local 7) + (get_local 5) + (i32.eqz) + (i32.eqz) + (br_if 2) + (br 6) + (end) + (get_local 3) + (get_local 2) + (i32.add) + (set_local 6) + (get_local 0) + (i32.load align=4) + (set_local 7) + (br 2) + (end) + (block emptyblock) + (block emptyblock) + (get_local 4) + (call 107) + (tee_local 7) + (i32.eqz) + (br_if 0) + (get_local 7) + (set_local 5) + (br 1) + (end) + (get_local 8) + (get_local 4) + (i32.store align=4 offset=4) + (get_local 8) + (get_local 7) + (i32.store align=4) + (get_local 8) + (i32.const 1) + (i32.store align=4 offset=8) + (i32.const 0) + (set_local 5) + (end) + (get_local 5) + (get_local 7) + (get_local 5) + (select) + (set_local 7) + (get_local 5) + (i32.eqz) + (br_if 4) + (end) + (get_local 0) + (get_local 7) + (i32.store align=4) + (get_local 0) + (i32.const 4) + (i32.add) + (get_local 4) + (i32.store align=4) + (end) + (get_local 0) + (i32.const 8) + (i32.add) + (get_local 6) + (i32.store align=4) + (get_local 7) + (get_local 3) + (i32.add) + (get_local 1) + (get_local 2) + (call 112) + (drop) + (i32.const 0) + (get_local 8) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (return) + (end) + (i32.const 4480) + (i32.const 17) + (call 143) + (unreachable) + (end) + (i32.const 4452) + (call 139) + (unreachable) + (end) + (unreachable) + (unreachable) + ) + (func 112 (type 0) (local i32) + (block emptyblock) + (get_local 2) + (i32.eqz) + (br_if 0) + (get_local 0) + (set_local 3) + (loop emptyblock) + (get_local 3) + (get_local 1) + (i32.load8_u align=1) + (i32.store8 align=1) + (get_local 1) + (i32.const 1) + (i32.add) + (set_local 1) + (get_local 3) + (i32.const 1) + (i32.add) + (set_local 3) + (get_local 2) + (i32.const -1) + (i32.add) + (tee_local 2) + (br_if 0) + (end) + (end) + (get_local 0) + ) + (func 113 (type 0) (local i32) + (block emptyblock) + (block emptyblock) + (get_local 1) + (get_local 0) + (i32.ge_u) + (br_if 0) + (get_local 2) + (i32.eqz) + (br_if 1) + (loop emptyblock) + (get_local 0) + (get_local 2) + (i32.add) + (i32.const -1) + (i32.add) + (get_local 1) + (get_local 2) + (i32.add) + (i32.const -1) + (i32.add) + (i32.load8_u align=1) + (i32.store8 align=1) + (get_local 2) + (i32.const -1) + (i32.add) + (tee_local 2) + (br_if 0) + (br 2) + (end) + (unreachable) + (end) + (get_local 2) + (i32.eqz) + (br_if 0) + (get_local 0) + (set_local 3) + (loop emptyblock) + (get_local 3) + (get_local 1) + (i32.load8_u align=1) + (i32.store8 align=1) + (get_local 1) + (i32.const 1) + (i32.add) + (set_local 1) + (get_local 3) + (i32.const 1) + (i32.add) + (set_local 3) + (get_local 2) + (i32.const -1) + (i32.add) + (tee_local 2) + (br_if 0) + (end) + (end) + (get_local 0) + ) + (func 114 (type 6) (local i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 48) + (i32.sub) + (tee_local 5) + (i32.store align=4 offset=4) + (i32.const 39) + (set_local 4) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4) + (tee_local 0) + (i32.const 10000) + (i32.lt_u) + (br_if 0) + (i32.const 39) + (set_local 4) + (loop emptyblock) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.add) + (tee_local 2) + (i32.const -2) + (i32.add) + (get_local 0) + (i32.const 10000) + (i32.rem_u) + (tee_local 3) + (i32.const 100) + (i32.rem_u) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (get_local 2) + (i32.const -4) + (i32.add) + (get_local 3) + (i32.const 100) + (i32.div_u) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (get_local 4) + (i32.const -4) + (i32.add) + (set_local 4) + (get_local 0) + (i32.const 99999999) + (i32.gt_u) + (set_local 2) + (get_local 0) + (i32.const 10000) + (i32.div_u) + (tee_local 3) + (set_local 0) + (get_local 2) + (br_if 0) + (br 2) + (end) + (unreachable) + (end) + (get_local 0) + (set_local 3) + (end) + (block emptyblock) + (get_local 3) + (i32.const 100) + (i32.lt_s) + (br_if 0) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.const -2) + (i32.add) + (tee_local 4) + (i32.add) + (get_local 3) + (i32.const 100) + (i32.rem_u) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (get_local 3) + (i32.const 100) + (i32.div_u) + (set_local 3) + (end) + (block emptyblock) + (block emptyblock) + (get_local 3) + (i32.const 9) + (i32.gt_s) + (br_if 0) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.const -1) + (i32.add) + (tee_local 0) + (i32.add) + (get_local 3) + (i32.const 48) + (i32.add) + (i32.store8 align=1) + (br 1) + (end) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.const -2) + (i32.add) + (tee_local 0) + (i32.add) + (get_local 3) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (end) + (get_local 1) + (i32.const 1) + (i32.const 4752) + (i32.const 0) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 0) + (i32.add) + (i32.const 39) + (get_local 0) + (i32.sub) + (call 122) + (set_local 0) + (i32.const 0) + (get_local 5) + (i32.const 48) + (i32.add) + (i32.store align=4 offset=4) + (get_local 0) + ) + (func 115 (type 6) (local i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 48) + (i32.sub) + (tee_local 5) + (i32.store align=4 offset=4) + (i32.const 39) + (set_local 4) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4) + (tee_local 0) + (i32.const 10000) + (i32.lt_u) + (br_if 0) + (i32.const 39) + (set_local 4) + (loop emptyblock) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.add) + (tee_local 2) + (i32.const -2) + (i32.add) + (get_local 0) + (i32.const 10000) + (i32.rem_u) + (tee_local 3) + (i32.const 100) + (i32.rem_u) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (get_local 2) + (i32.const -4) + (i32.add) + (get_local 3) + (i32.const 100) + (i32.div_u) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (get_local 4) + (i32.const -4) + (i32.add) + (set_local 4) + (get_local 0) + (i32.const 99999999) + (i32.gt_u) + (set_local 2) + (get_local 0) + (i32.const 10000) + (i32.div_u) + (tee_local 3) + (set_local 0) + (get_local 2) + (br_if 0) + (br 2) + (end) + (unreachable) + (end) + (get_local 0) + (set_local 3) + (end) + (block emptyblock) + (get_local 3) + (i32.const 100) + (i32.lt_s) + (br_if 0) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.const -2) + (i32.add) + (tee_local 4) + (i32.add) + (get_local 3) + (i32.const 100) + (i32.rem_u) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (get_local 3) + (i32.const 100) + (i32.div_u) + (set_local 3) + (end) + (block emptyblock) + (block emptyblock) + (get_local 3) + (i32.const 9) + (i32.gt_s) + (br_if 0) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.const -1) + (i32.add) + (tee_local 0) + (i32.add) + (get_local 3) + (i32.const 48) + (i32.add) + (i32.store8 align=1) + (br 1) + (end) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.const -2) + (i32.add) + (tee_local 0) + (i32.add) + (get_local 3) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (end) + (get_local 1) + (i32.const 1) + (i32.const 4752) + (i32.const 0) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 0) + (i32.add) + (i32.const 39) + (get_local 0) + (i32.sub) + (call 122) + (set_local 0) + (i32.const 0) + (get_local 5) + (i32.const 48) + (i32.add) + (i32.store align=4 offset=4) + (get_local 0) + ) + (func 116 (type 6) (local i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 48) + (i32.sub) + (tee_local 5) + (i32.store align=4 offset=4) + (i32.const 39) + (set_local 4) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4) + (tee_local 0) + (i32.const 10000) + (i32.lt_u) + (br_if 0) + (i32.const 39) + (set_local 4) + (loop emptyblock) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.add) + (tee_local 2) + (i32.const -2) + (i32.add) + (get_local 0) + (i32.const 10000) + (i32.rem_u) + (tee_local 3) + (i32.const 100) + (i32.rem_u) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (get_local 2) + (i32.const -4) + (i32.add) + (get_local 3) + (i32.const 100) + (i32.div_u) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (get_local 4) + (i32.const -4) + (i32.add) + (set_local 4) + (get_local 0) + (i32.const 99999999) + (i32.gt_u) + (set_local 2) + (get_local 0) + (i32.const 10000) + (i32.div_u) + (tee_local 3) + (set_local 0) + (get_local 2) + (br_if 0) + (br 2) + (end) + (unreachable) + (end) + (get_local 0) + (set_local 3) + (end) + (block emptyblock) + (get_local 3) + (i32.const 100) + (i32.lt_s) + (br_if 0) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.const -2) + (i32.add) + (tee_local 4) + (i32.add) + (get_local 3) + (i32.const 100) + (i32.rem_u) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (get_local 3) + (i32.const 100) + (i32.div_u) + (set_local 3) + (end) + (block emptyblock) + (block emptyblock) + (get_local 3) + (i32.const 9) + (i32.gt_s) + (br_if 0) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.const -1) + (i32.add) + (tee_local 0) + (i32.add) + (get_local 3) + (i32.const 48) + (i32.add) + (i32.store8 align=1) + (br 1) + (end) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.const -2) + (i32.add) + (tee_local 0) + (i32.add) + (get_local 3) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (end) + (get_local 1) + (i32.const 1) + (i32.const 4752) + (i32.const 0) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 0) + (i32.add) + (i32.const 39) + (get_local 0) + (i32.sub) + (call 122) + (set_local 0) + (i32.const 0) + (get_local 5) + (i32.const 48) + (i32.add) + (i32.store align=4 offset=4) + (get_local 0) + ) + (func 117 (type 0) + (get_local 0) + (i32.load align=4) + (get_local 1) + (get_local 2) + (call 132) + ) + (func 118 (type 6) (local i32 i32 i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 7) + (i32.store align=4 offset=4) + (get_local 0) + (i32.load align=4) + (set_local 0) + (i32.const 0) + (set_local 3) + (get_local 7) + (i32.const 0) + (i32.store align=4 offset=12) + (block emptyblock) + (block emptyblock) + (get_local 1) + (i32.const 127) + (i32.gt_u) + (br_if 0) + (get_local 7) + (get_local 1) + (i32.store8 align=1 offset=12) + (i32.const 1) + (set_local 6) + (br 1) + (end) + (block emptyblock) + (block emptyblock) + (get_local 1) + (i32.const 2048) + (i32.ge_u) + (br_if 0) + (i32.const 2) + (set_local 6) + (i32.const 1) + (set_local 5) + (i32.const 192) + (set_local 4) + (i32.const 31) + (set_local 2) + (br 1) + (end) + (block emptyblock) + (get_local 1) + (i32.const 65535) + (i32.gt_u) + (br_if 0) + (get_local 7) + (get_local 1) + (i32.const 12) + (i32.shr_u) + (i32.const 15) + (i32.and) + (i32.const 224) + (i32.or) + (i32.store8 align=1 offset=12) + (i32.const 3) + (set_local 6) + (i32.const 2) + (set_local 5) + (i32.const 128) + (set_local 4) + (i32.const 1) + (set_local 3) + (i32.const 63) + (set_local 2) + (br 1) + (end) + (get_local 7) + (get_local 1) + (i32.const 18) + (i32.shr_u) + (i32.const 240) + (i32.or) + (i32.store8 align=1 offset=12) + (i32.const 63) + (set_local 2) + (i32.const 128) + (set_local 4) + (get_local 7) + (get_local 1) + (i32.const 12) + (i32.shr_u) + (i32.const 63) + (i32.and) + (i32.const 128) + (i32.or) + (i32.store8 align=1 offset=13) + (i32.const 4) + (set_local 6) + (i32.const 3) + (set_local 5) + (i32.const 2) + (set_local 3) + (end) + (get_local 7) + (i32.const 12) + (i32.add) + (get_local 3) + (i32.add) + (get_local 2) + (get_local 1) + (i32.const 6) + (i32.shr_u) + (i32.and) + (get_local 4) + (i32.or) + (i32.store8 align=1) + (get_local 7) + (i32.const 12) + (i32.add) + (get_local 5) + (i32.add) + (get_local 1) + (i32.const 63) + (i32.and) + (i32.const 128) + (i32.or) + (i32.store8 align=1) + (end) + (get_local 0) + (get_local 7) + (i32.const 12) + (i32.add) + (get_local 6) + (call 132) + (set_local 1) + (i32.const 0) + (get_local 7) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (get_local 1) + ) + (func 119 (type 6) (local i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 64) + (i32.sub) + (tee_local 4) + (i32.store align=4 offset=4) + (get_local 0) + (i32.load align=4) + (set_local 0) + (get_local 4) + (i32.const 8) + (i32.add) + (i32.const 16) + (i32.add) + (tee_local 2) + (get_local 1) + (i32.const 16) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 4) + (i32.const 8) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 3) + (get_local 1) + (i32.const 8) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 4) + (get_local 1) + (i64.load align=4) + (i64.store align=8 offset=8) + (get_local 4) + (get_local 0) + (i32.store align=4 offset=36) + (get_local 4) + (i32.const 40) + (i32.add) + (i32.const 16) + (i32.add) + (get_local 2) + (i64.load align=8) + (i64.store align=8) + (get_local 4) + (i32.const 40) + (i32.add) + (i32.const 8) + (i32.add) + (get_local 3) + (i64.load align=8) + (i64.store align=8) + (get_local 4) + (get_local 4) + (i64.load align=8 offset=8) + (i64.store align=8 offset=40) + (get_local 4) + (i32.const 36) + (i32.add) + (i32.const 5236) + (get_local 4) + (i32.const 40) + (i32.add) + (call 121) + (set_local 1) + (i32.const 0) + (get_local 4) + (i32.const 64) + (i32.add) + (i32.store align=4 offset=4) + (get_local 1) + ) + (func 120 (type 6) (local i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 48) + (i32.sub) + (tee_local 5) + (i32.store align=4 offset=4) + (i32.const 39) + (set_local 4) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4) + (tee_local 0) + (i32.const 10000) + (i32.lt_u) + (br_if 0) + (i32.const 39) + (set_local 4) + (loop emptyblock) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.add) + (tee_local 2) + (i32.const -2) + (i32.add) + (get_local 0) + (i32.const 10000) + (i32.rem_u) + (tee_local 3) + (i32.const 100) + (i32.rem_u) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (get_local 2) + (i32.const -4) + (i32.add) + (get_local 3) + (i32.const 100) + (i32.div_u) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (get_local 4) + (i32.const -4) + (i32.add) + (set_local 4) + (get_local 0) + (i32.const 99999999) + (i32.gt_u) + (set_local 2) + (get_local 0) + (i32.const 10000) + (i32.div_u) + (tee_local 3) + (set_local 0) + (get_local 2) + (br_if 0) + (br 2) + (end) + (unreachable) + (end) + (get_local 0) + (set_local 3) + (end) + (block emptyblock) + (get_local 3) + (i32.const 100) + (i32.lt_s) + (br_if 0) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.const -2) + (i32.add) + (tee_local 4) + (i32.add) + (get_local 3) + (i32.const 100) + (i32.rem_u) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (get_local 3) + (i32.const 100) + (i32.div_u) + (set_local 3) + (end) + (block emptyblock) + (block emptyblock) + (get_local 3) + (i32.const 9) + (i32.gt_s) + (br_if 0) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.const -1) + (i32.add) + (tee_local 0) + (i32.add) + (get_local 3) + (i32.const 48) + (i32.add) + (i32.store8 align=1) + (br 1) + (end) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.const -2) + (i32.add) + (tee_local 0) + (i32.add) + (get_local 3) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (end) + (get_local 1) + (i32.const 1) + (i32.const 4752) + (i32.const 0) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 0) + (i32.add) + (i32.const 39) + (get_local 0) + (i32.sub) + (call 122) + (set_local 0) + (i32.const 0) + (get_local 5) + (i32.const 48) + (i32.add) + (i32.store align=4 offset=4) + (get_local 0) + ) + (func 121 (type 0) (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i64) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 64) + (i32.sub) + (tee_local 13) + (i32.store align=4 offset=4) + (get_local 13) + (i64.const 137438953472) + (i64.store align=8) + (get_local 13) + (i32.const 0) + (i32.store align=4 offset=8) + (get_local 13) + (i32.const 0) + (i32.store align=4 offset=16) + (get_local 2) + (i32.const 20) + (i32.add) + (i32.load align=4) + (set_local 5) + (get_local 13) + (i32.const 3) + (i32.store8 align=1 offset=48) + (get_local 2) + (i32.load align=4 offset=16) + (set_local 6) + (get_local 13) + (get_local 0) + (i32.store align=4 offset=24) + (get_local 13) + (i32.const 28) + (i32.add) + (tee_local 7) + (get_local 1) + (i32.store align=4) + (get_local 13) + (get_local 6) + (i32.store align=4 offset=32) + (get_local 13) + (i32.const 36) + (i32.add) + (tee_local 8) + (get_local 6) + (get_local 5) + (i32.const 3) + (i32.shl) + (tee_local 0) + (i32.add) + (i32.store align=4) + (get_local 13) + (get_local 6) + (i32.store align=4 offset=40) + (get_local 13) + (i32.const 44) + (i32.add) + (tee_local 9) + (get_local 5) + (i32.store align=4) + (get_local 13) + (get_local 2) + (i32.load align=4) + (tee_local 1) + (i32.store align=4 offset=56) + (get_local 13) + (get_local 1) + (get_local 2) + (i32.load align=4 offset=4) + (i32.const 3) + (i32.shl) + (tee_local 4) + (i32.add) + (tee_local 3) + (i32.store align=4 offset=60) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.load align=4 offset=8) + (tee_local 5) + (i32.eqz) + (br_if 0) + (get_local 5) + (i32.const 28) + (i32.add) + (set_local 0) + (get_local 5) + (get_local 2) + (i32.const 12) + (i32.add) + (i32.load align=4) + (i32.const 36) + (i32.mul) + (i32.add) + (set_local 4) + (get_local 13) + (i32.const 24) + (i32.add) + (set_local 2) + (get_local 13) + (i32.const 48) + (i32.add) + (set_local 10) + (get_local 13) + (i32.const 40) + (i32.add) + (set_local 11) + (loop emptyblock) + (get_local 5) + (get_local 4) + (i32.eq) + (br_if 2) + (get_local 13) + (i32.load align=4 offset=56) + (tee_local 6) + (get_local 3) + (i32.eq) + (br_if 4) + (get_local 13) + (get_local 6) + (i32.const 8) + (i32.add) + (tee_local 1) + (i32.store align=4 offset=56) + (get_local 2) + (i32.load align=4) + (get_local 6) + (i32.load align=4) + (get_local 6) + (i32.load align=4 offset=4) + (get_local 7) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (br_if 3) + (get_local 10) + (get_local 5) + (i32.const 32) + (i32.add) + (i32.load8_u align=1) + (i32.store8 align=1) + (get_local 13) + (get_local 5) + (i32.load align=4 offset=8) + (i32.store align=4 offset=4) + (get_local 13) + (get_local 5) + (i32.const 12) + (i32.add) + (i32.load align=4) + (i32.store align=4) + (i64.const 0) + (set_local 14) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 5) + (i32.const 24) + (i32.add) + (i32.load align=4) + (tee_local 6) + (i32.const 1) + (i32.eq) + (br_if 0) + (get_local 6) + (i32.const 3) + (i32.eq) + (br_if 1) + (get_local 6) + (i32.const 2) + (i32.ne) + (br_if 2) + (get_local 13) + (i32.const 32) + (i32.add) + (tee_local 6) + (i32.load align=4) + (tee_local 12) + (get_local 8) + (i32.load align=4) + (i32.eq) + (br_if 4) + (get_local 6) + (get_local 12) + (i32.const 8) + (i32.add) + (i32.store align=4) + (get_local 12) + (i32.load align=4 offset=4) + (i32.const 14) + (i32.ne) + (br_if 5) + (get_local 12) + (i32.load align=4) + (i32.load align=4) + (set_local 6) + (br 3) + (end) + (get_local 0) + (i32.load align=4) + (tee_local 12) + (get_local 9) + (i32.load align=4) + (tee_local 6) + (i32.ge_u) + (br_if 13) + (get_local 11) + (i32.load align=4) + (get_local 12) + (i32.const 3) + (i32.shl) + (i32.add) + (tee_local 12) + (i32.load align=4 offset=4) + (i32.const 14) + (i32.ne) + (br_if 4) + (get_local 12) + (i32.load align=4) + (i32.load align=4) + (set_local 6) + (br 2) + (end) + (br 3) + (end) + (get_local 0) + (i32.load align=4) + (set_local 6) + (end) + (i64.const 1) + (set_local 14) + (br 1) + (end) + (end) + (get_local 13) + (i32.const 8) + (i32.add) + (get_local 6) + (i64.extend_u/i32) + (i64.const 32) + (i64.shl) + (get_local 14) + (i64.or) + (i64.store align=8) + (i64.const 0) + (set_local 14) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 5) + (i32.const 16) + (i32.add) + (i32.load align=4) + (tee_local 6) + (i32.const 1) + (i32.eq) + (br_if 0) + (get_local 6) + (i32.const 3) + (i32.eq) + (br_if 1) + (get_local 6) + (i32.const 2) + (i32.ne) + (br_if 2) + (get_local 13) + (i32.const 32) + (i32.add) + (tee_local 6) + (i32.load align=4) + (tee_local 12) + (get_local 8) + (i32.load align=4) + (i32.eq) + (br_if 4) + (get_local 6) + (get_local 12) + (i32.const 8) + (i32.add) + (i32.store align=4) + (get_local 12) + (i32.load align=4 offset=4) + (i32.const 14) + (i32.ne) + (br_if 5) + (get_local 12) + (i32.load align=4) + (i32.load align=4) + (set_local 6) + (br 3) + (end) + (get_local 0) + (i32.const -8) + (i32.add) + (i32.load align=4) + (tee_local 12) + (get_local 9) + (i32.load align=4) + (tee_local 6) + (i32.ge_u) + (br_if 14) + (get_local 11) + (i32.load align=4) + (get_local 12) + (i32.const 3) + (i32.shl) + (i32.add) + (tee_local 12) + (i32.load align=4 offset=4) + (i32.const 14) + (i32.ne) + (br_if 4) + (get_local 12) + (i32.load align=4) + (i32.load align=4) + (set_local 6) + (br 2) + (end) + (br 3) + (end) + (get_local 0) + (i32.const -8) + (i32.add) + (i32.load align=4) + (set_local 6) + (end) + (i64.const 1) + (set_local 14) + (br 1) + (end) + (end) + (get_local 13) + (i32.const 16) + (i32.add) + (get_local 6) + (i64.extend_u/i32) + (i64.const 32) + (i64.shl) + (get_local 14) + (i64.or) + (i64.store align=8) + (block emptyblock) + (block emptyblock) + (get_local 5) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 0) + (i32.const -24) + (i32.add) + (i32.load align=4) + (tee_local 6) + (get_local 9) + (i32.load align=4) + (tee_local 12) + (i32.ge_u) + (br_if 8) + (get_local 11) + (i32.load align=4) + (get_local 6) + (i32.const 3) + (i32.shl) + (i32.add) + (set_local 6) + (br 1) + (end) + (get_local 13) + (i32.const 32) + (i32.add) + (tee_local 12) + (i32.load align=4) + (tee_local 6) + (get_local 8) + (i32.load align=4) + (i32.eq) + (br_if 8) + (get_local 12) + (get_local 6) + (i32.const 8) + (i32.add) + (i32.store align=4) + (end) + (get_local 5) + (i32.const 36) + (i32.add) + (set_local 5) + (get_local 0) + (i32.const 36) + (i32.add) + (set_local 0) + (get_local 6) + (i32.load align=4) + (get_local 13) + (get_local 6) + (i32.load align=4 offset=4) + (call_indirect (type 6)) + (i32.eqz) + (br_if 0) + (br 3) + (end) + (unreachable) + (end) + (get_local 13) + (i32.const 24) + (i32.add) + (set_local 9) + (loop emptyblock) + (get_local 0) + (i32.eqz) + (br_if 1) + (get_local 4) + (i32.eqz) + (br_if 1) + (get_local 13) + (get_local 1) + (i32.const 8) + (i32.add) + (tee_local 5) + (i32.store align=4 offset=56) + (get_local 9) + (i32.load align=4) + (get_local 1) + (i32.load align=4) + (get_local 1) + (i32.const 4) + (i32.add) + (i32.load align=4) + (get_local 7) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (br_if 2) + (get_local 0) + (i32.const -8) + (i32.add) + (set_local 0) + (get_local 4) + (i32.const -8) + (i32.add) + (set_local 4) + (get_local 6) + (i32.load align=4) + (set_local 2) + (get_local 6) + (i32.load align=4 offset=4) + (set_local 8) + (get_local 5) + (set_local 1) + (get_local 6) + (i32.const 8) + (i32.add) + (set_local 6) + (get_local 2) + (get_local 13) + (get_local 8) + (call_indirect (type 6)) + (i32.eqz) + (br_if 0) + (br 2) + (end) + (unreachable) + (end) + (get_local 1) + (get_local 3) + (i32.eq) + (br_if 1) + (get_local 13) + (get_local 1) + (i32.const 8) + (i32.add) + (i32.store align=4 offset=56) + (get_local 13) + (i32.const 24) + (i32.add) + (i32.load align=4) + (get_local 1) + (i32.load align=4) + (get_local 1) + (i32.load align=4 offset=4) + (get_local 13) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (i32.eqz) + (br_if 1) + (end) + (i32.const 1) + (set_local 5) + (br 1) + (end) + (i32.const 0) + (set_local 5) + (end) + (i32.const 0) + (get_local 13) + (i32.const 64) + (i32.add) + (i32.store align=4 offset=4) + (get_local 5) + (return) + (end) + (i32.const 4792) + (get_local 6) + (get_local 12) + (call 140) + (unreachable) + (end) + (i32.const 4768) + (call 139) + (unreachable) + (end) + (i32.const 4752) + (get_local 12) + (get_local 6) + (call 140) + (unreachable) + (end) + (i32.const 4752) + (get_local 12) + (get_local 6) + (call 140) + (unreachable) + ) + (func 122 (type 15) (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 17) + (i32.store align=4 offset=4) + (block emptyblock) + (block emptyblock) + (get_local 1) + (i32.eqz) + (br_if 0) + (i32.const 43) + (i32.const 1114112) + (get_local 0) + (i32.load align=4) + (tee_local 7) + (i32.const 1) + (i32.and) + (tee_local 1) + (select) + (set_local 6) + (get_local 1) + (get_local 5) + (i32.add) + (set_local 8) + (br 1) + (end) + (get_local 5) + (i32.const 1) + (i32.add) + (set_local 8) + (get_local 0) + (i32.load align=4) + (set_local 7) + (i32.const 45) + (set_local 6) + (end) + (i32.const 0) + (set_local 12) + (block emptyblock) + (get_local 7) + (i32.const 4) + (i32.and) + (i32.eqz) + (br_if 0) + (block emptyblock) + (block emptyblock) + (get_local 3) + (i32.eqz) + (br_if 0) + (i32.const 0) + (set_local 13) + (get_local 3) + (set_local 12) + (get_local 2) + (set_local 1) + (loop emptyblock) + (get_local 1) + (i32.load8_u align=1) + (i32.const 192) + (i32.and) + (i32.const 128) + (i32.eq) + (get_local 13) + (i32.add) + (set_local 13) + (get_local 1) + (i32.const 1) + (i32.add) + (set_local 1) + (get_local 12) + (i32.const -1) + (i32.add) + (tee_local 12) + (br_if 0) + (br 2) + (end) + (unreachable) + (end) + (i32.const 0) + (set_local 13) + (end) + (get_local 8) + (get_local 3) + (i32.add) + (get_local 13) + (i32.sub) + (set_local 8) + (i32.const 1) + (set_local 12) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=8) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 0) + (i32.const 12) + (i32.add) + (i32.load align=4) + (tee_local 13) + (get_local 8) + (i32.le_u) + (br_if 1) + (get_local 7) + (i32.const 8) + (i32.and) + (br_if 2) + (get_local 13) + (get_local 8) + (i32.sub) + (set_local 9) + (i32.const 1) + (get_local 0) + (i32.load8_u align=1 offset=48) + (tee_local 1) + (get_local 1) + (i32.const 3) + (i32.eq) + (select) + (i32.const 3) + (i32.and) + (tee_local 1) + (i32.const 2) + (i32.eq) + (br_if 6) + (get_local 1) + (i32.eqz) + (br_if 7) + (get_local 9) + (set_local 14) + (i32.const 0) + (set_local 9) + (br 8) + (end) + (get_local 6) + (i32.const 1114112) + (i32.eq) + (br_if 13) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (set_local 13) + (get_local 0) + (i32.load align=4 offset=24) + (set_local 8) + (i32.const 0) + (set_local 1) + (get_local 17) + (i32.const 0) + (i32.store align=4 offset=12) + (get_local 6) + (i32.const 127) + (i32.gt_u) + (br_if 2) + (get_local 17) + (get_local 6) + (i32.store8 align=1 offset=12) + (i32.const 1) + (set_local 7) + (br 12) + (end) + (get_local 6) + (i32.const 1114112) + (i32.eq) + (br_if 18) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (set_local 13) + (get_local 0) + (i32.load align=4 offset=24) + (set_local 8) + (i32.const 0) + (set_local 1) + (get_local 17) + (i32.const 0) + (i32.store align=4 offset=12) + (get_local 6) + (i32.const 127) + (i32.gt_u) + (br_if 2) + (get_local 17) + (get_local 6) + (i32.store8 align=1 offset=12) + (i32.const 1) + (set_local 7) + (br 17) + (end) + (get_local 0) + (i32.const 1) + (i32.store8 align=1 offset=48) + (get_local 0) + (i32.const 48) + (i32.store align=4 offset=4) + (get_local 6) + (i32.const 1114112) + (i32.eq) + (br_if 24) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (set_local 7) + (get_local 0) + (i32.load align=4 offset=24) + (set_local 14) + (i32.const 0) + (set_local 1) + (get_local 17) + (i32.const 0) + (i32.store align=4 offset=12) + (get_local 6) + (i32.const 127) + (i32.gt_u) + (br_if 6) + (get_local 17) + (get_local 6) + (i32.store8 align=1 offset=12) + (i32.const 1) + (set_local 11) + (br 23) + (end) + (get_local 6) + (i32.const 2048) + (i32.ge_u) + (br_if 1) + (i32.const 2) + (set_local 7) + (i32.const 1) + (set_local 14) + (i32.const 192) + (set_local 11) + (br 8) + (end) + (get_local 6) + (i32.const 2048) + (i32.ge_u) + (br_if 5) + (i32.const 2) + (set_local 7) + (i32.const 1) + (set_local 14) + (i32.const 192) + (set_local 11) + (br 13) + (end) + (get_local 6) + (i32.const 65535) + (i32.gt_u) + (br_if 5) + (get_local 17) + (i32.const 224) + (i32.store8 align=1 offset=12) + (i32.const 3) + (set_local 7) + (i32.const 2) + (set_local 14) + (i32.const 128) + (set_local 11) + (i32.const 1) + (set_local 1) + (br 6) + (end) + (get_local 9) + (i32.const 1) + (i32.shr_u) + (set_local 14) + (get_local 9) + (i32.const 1) + (i32.add) + (i32.const 1) + (i32.shr_u) + (set_local 9) + (br 1) + (end) + (i32.const 0) + (set_local 14) + (end) + (i32.const 0) + (set_local 13) + (get_local 17) + (i32.const 0) + (i32.store align=4 offset=8) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=4) + (tee_local 1) + (i32.const 127) + (i32.gt_u) + (br_if 0) + (get_local 17) + (get_local 1) + (i32.store8 align=1 offset=8) + (i32.const 1) + (set_local 7) + (br 15) + (end) + (get_local 1) + (i32.const 2048) + (i32.ge_u) + (br_if 6) + (i32.const 2) + (set_local 7) + (i32.const 1) + (set_local 8) + (i32.const 192) + (set_local 11) + (i32.const 31) + (set_local 10) + (br 13) + (end) + (get_local 6) + (i32.const 2048) + (i32.ge_u) + (br_if 6) + (i32.const 2) + (set_local 11) + (i32.const 1) + (set_local 9) + (i32.const 192) + (set_local 10) + (br 15) + (end) + (get_local 6) + (i32.const 65535) + (i32.gt_u) + (br_if 6) + (get_local 17) + (i32.const 224) + (i32.store8 align=1 offset=12) + (i32.const 3) + (set_local 7) + (i32.const 2) + (set_local 14) + (i32.const 128) + (set_local 11) + (i32.const 1) + (set_local 1) + (br 7) + (end) + (i32.const 128) + (set_local 11) + (get_local 17) + (get_local 6) + (i32.const 12) + (i32.shr_u) + (i32.const 128) + (i32.or) + (i32.store8 align=1 offset=13) + (get_local 17) + (get_local 6) + (i32.const 18) + (i32.shr_u) + (i32.const 240) + (i32.or) + (i32.store8 align=1 offset=12) + (i32.const 4) + (set_local 7) + (i32.const 3) + (set_local 14) + (i32.const 2) + (set_local 1) + (end) + (get_local 17) + (i32.const 12) + (i32.add) + (get_local 1) + (i32.add) + (get_local 11) + (i32.store8 align=1) + (get_local 17) + (i32.const 12) + (i32.add) + (get_local 14) + (i32.add) + (get_local 6) + (i32.const 128) + (i32.or) + (i32.store8 align=1) + (end) + (i32.const 1) + (set_local 1) + (get_local 8) + (get_local 17) + (i32.const 12) + (i32.add) + (get_local 7) + (get_local 13) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (br_if 20) + (end) + (block emptyblock) + (get_local 12) + (i32.eqz) + (br_if 0) + (i32.const 1) + (set_local 1) + (get_local 0) + (i32.const 24) + (i32.add) + (i32.load align=4) + (get_local 2) + (get_local 3) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (br_if 20) + (end) + (get_local 0) + (i32.const 24) + (i32.add) + (i32.load align=4) + (get_local 4) + (get_local 5) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (set_local 1) + (br 19) + (end) + (get_local 1) + (i32.const 65535) + (i32.gt_u) + (br_if 5) + (get_local 17) + (get_local 1) + (i32.const 12) + (i32.shr_u) + (i32.const 15) + (i32.and) + (i32.const 224) + (i32.or) + (i32.store8 align=1 offset=8) + (i32.const 3) + (set_local 7) + (i32.const 2) + (set_local 8) + (i32.const 128) + (set_local 11) + (i32.const 1) + (set_local 13) + (i32.const 63) + (set_local 10) + (br 6) + (end) + (get_local 6) + (i32.const 65535) + (i32.gt_u) + (br_if 7) + (get_local 17) + (i32.const 224) + (i32.store8 align=1 offset=12) + (i32.const 3) + (set_local 11) + (i32.const 2) + (set_local 9) + (i32.const 128) + (set_local 10) + (i32.const 1) + (set_local 1) + (br 8) + (end) + (i32.const 128) + (set_local 11) + (get_local 17) + (get_local 6) + (i32.const 12) + (i32.shr_u) + (i32.const 128) + (i32.or) + (i32.store8 align=1 offset=13) + (get_local 17) + (get_local 6) + (i32.const 18) + (i32.shr_u) + (i32.const 240) + (i32.or) + (i32.store8 align=1 offset=12) + (i32.const 4) + (set_local 7) + (i32.const 3) + (set_local 14) + (i32.const 2) + (set_local 1) + (end) + (get_local 17) + (i32.const 12) + (i32.add) + (get_local 1) + (i32.add) + (get_local 11) + (i32.store8 align=1) + (get_local 17) + (i32.const 12) + (i32.add) + (get_local 14) + (i32.add) + (get_local 6) + (i32.const 128) + (i32.or) + (i32.store8 align=1) + (end) + (i32.const 1) + (set_local 1) + (get_local 8) + (get_local 17) + (i32.const 12) + (i32.add) + (get_local 7) + (get_local 13) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (br_if 14) + (end) + (block emptyblock) + (get_local 12) + (i32.eqz) + (br_if 0) + (i32.const 1) + (set_local 1) + (get_local 0) + (i32.const 24) + (i32.add) + (i32.load align=4) + (get_local 2) + (get_local 3) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (br_if 14) + (end) + (get_local 0) + (i32.const 24) + (i32.add) + (i32.load align=4) + (get_local 4) + (get_local 5) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (set_local 1) + (br 13) + (end) + (get_local 17) + (get_local 1) + (i32.const 18) + (i32.shr_u) + (i32.const 240) + (i32.or) + (i32.store8 align=1 offset=8) + (i32.const 63) + (set_local 10) + (i32.const 128) + (set_local 11) + (get_local 17) + (get_local 1) + (i32.const 12) + (i32.shr_u) + (i32.const 63) + (i32.and) + (i32.const 128) + (i32.or) + (i32.store8 align=1 offset=9) + (i32.const 4) + (set_local 7) + (i32.const 3) + (set_local 8) + (i32.const 2) + (set_local 13) + (end) + (get_local 17) + (i32.const 8) + (i32.add) + (get_local 13) + (i32.add) + (get_local 10) + (get_local 1) + (i32.const 6) + (i32.shr_u) + (i32.and) + (get_local 11) + (i32.or) + (i32.store8 align=1) + (get_local 17) + (i32.const 8) + (i32.add) + (get_local 8) + (i32.add) + (get_local 1) + (i32.const 63) + (i32.and) + (i32.const 128) + (i32.or) + (i32.store8 align=1) + (end) + (get_local 0) + (i32.load align=4 offset=24) + (set_local 8) + (i32.const 0) + (set_local 1) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (tee_local 10) + (i32.const 12) + (i32.add) + (set_local 11) + (block emptyblock) + (loop emptyblock) + (get_local 1) + (get_local 14) + (i32.ge_u) + (br_if 1) + (get_local 1) + (i32.const 1) + (i32.add) + (tee_local 13) + (get_local 1) + (i32.lt_u) + (br_if 1) + (get_local 13) + (set_local 1) + (get_local 8) + (get_local 17) + (i32.const 8) + (i32.add) + (get_local 7) + (get_local 11) + (i32.load align=4) + (call_indirect (type 0)) + (i32.eqz) + (br_if 0) + (br 10) + (end) + (unreachable) + (end) + (get_local 6) + (i32.const 1114112) + (i32.eq) + (br_if 7) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (set_local 1) + (get_local 0) + (i32.const 24) + (i32.add) + (i32.load align=4) + (set_local 13) + (i32.const 0) + (set_local 11) + (get_local 17) + (i32.const 0) + (i32.store align=4 offset=12) + (block emptyblock) + (get_local 6) + (i32.const 127) + (i32.gt_u) + (br_if 0) + (get_local 17) + (get_local 6) + (i32.store8 align=1 offset=12) + (i32.const 1) + (set_local 14) + (br 7) + (end) + (block emptyblock) + (get_local 6) + (i32.const 2048) + (i32.ge_u) + (br_if 0) + (i32.const 2) + (set_local 14) + (i32.const 1) + (set_local 16) + (i32.const 192) + (set_local 15) + (br 6) + (end) + (get_local 6) + (i32.const 65535) + (i32.gt_u) + (br_if 4) + (get_local 17) + (i32.const 224) + (i32.store8 align=1 offset=12) + (i32.const 3) + (set_local 14) + (i32.const 2) + (set_local 16) + (i32.const 128) + (set_local 15) + (i32.const 1) + (set_local 11) + (br 5) + (end) + (i32.const 128) + (set_local 10) + (get_local 17) + (get_local 6) + (i32.const 12) + (i32.shr_u) + (i32.const 128) + (i32.or) + (i32.store8 align=1 offset=13) + (get_local 17) + (get_local 6) + (i32.const 18) + (i32.shr_u) + (i32.const 240) + (i32.or) + (i32.store8 align=1 offset=12) + (i32.const 4) + (set_local 11) + (i32.const 3) + (set_local 9) + (i32.const 2) + (set_local 1) + (end) + (get_local 17) + (i32.const 12) + (i32.add) + (get_local 1) + (i32.add) + (get_local 10) + (i32.store8 align=1) + (get_local 17) + (i32.const 12) + (i32.add) + (get_local 9) + (i32.add) + (get_local 6) + (i32.const 128) + (i32.or) + (i32.store8 align=1) + (end) + (i32.const 1) + (set_local 1) + (get_local 14) + (get_local 17) + (i32.const 12) + (i32.add) + (get_local 11) + (get_local 7) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (br_if 7) + (end) + (block emptyblock) + (get_local 12) + (i32.eqz) + (br_if 0) + (i32.const 1) + (set_local 1) + (get_local 0) + (i32.const 24) + (i32.add) + (i32.load align=4) + (get_local 2) + (get_local 3) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (br_if 7) + (end) + (i32.const 0) + (set_local 1) + (get_local 17) + (i32.const 0) + (i32.store align=4 offset=12) + (get_local 17) + (i32.const 48) + (i32.store8 align=1 offset=12) + (get_local 13) + (get_local 8) + (i32.sub) + (set_local 12) + (get_local 0) + (i32.const 24) + (i32.add) + (i32.load align=4) + (set_local 6) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (tee_local 3) + (i32.const 12) + (i32.add) + (set_local 0) + (block emptyblock) + (loop emptyblock) + (get_local 1) + (get_local 12) + (i32.ge_u) + (br_if 1) + (get_local 1) + (i32.const 1) + (i32.add) + (tee_local 13) + (get_local 1) + (i32.lt_u) + (br_if 1) + (get_local 13) + (set_local 1) + (get_local 6) + (get_local 17) + (i32.const 12) + (i32.add) + (i32.const 1) + (get_local 0) + (i32.load align=4) + (call_indirect (type 0)) + (i32.eqz) + (br_if 0) + (br 6) + (end) + (unreachable) + (end) + (get_local 6) + (get_local 4) + (get_local 5) + (get_local 3) + (i32.const 12) + (i32.add) + (i32.load align=4) + (call_indirect (type 0)) + (br_if 4) + (i32.const 0) + (set_local 1) + (br 6) + (end) + (i32.const 128) + (set_local 15) + (get_local 17) + (get_local 6) + (i32.const 12) + (i32.shr_u) + (i32.const 128) + (i32.or) + (i32.store8 align=1 offset=13) + (get_local 17) + (get_local 6) + (i32.const 18) + (i32.shr_u) + (i32.const 240) + (i32.or) + (i32.store8 align=1 offset=12) + (i32.const 4) + (set_local 14) + (i32.const 3) + (set_local 16) + (i32.const 2) + (set_local 11) + (end) + (get_local 17) + (i32.const 12) + (i32.add) + (get_local 11) + (i32.add) + (get_local 15) + (i32.store8 align=1) + (get_local 17) + (i32.const 12) + (i32.add) + (get_local 16) + (i32.add) + (get_local 6) + (i32.const 128) + (i32.or) + (i32.store8 align=1) + (end) + (get_local 13) + (get_local 17) + (i32.const 12) + (i32.add) + (get_local 14) + (get_local 1) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (br_if 1) + (end) + (block emptyblock) + (get_local 12) + (i32.eqz) + (br_if 0) + (get_local 0) + (i32.const 24) + (i32.add) + (i32.load align=4) + (get_local 2) + (get_local 3) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (br_if 1) + (end) + (get_local 8) + (get_local 4) + (get_local 5) + (get_local 10) + (i32.const 12) + (i32.add) + (i32.load align=4) + (tee_local 12) + (call_indirect (type 0)) + (br_if 0) + (i32.const 0) + (set_local 1) + (loop emptyblock) + (get_local 1) + (get_local 9) + (i32.ge_u) + (br_if 2) + (get_local 1) + (i32.const 1) + (i32.add) + (tee_local 13) + (get_local 1) + (i32.lt_u) + (br_if 2) + (get_local 13) + (set_local 1) + (get_local 8) + (get_local 17) + (i32.const 8) + (i32.add) + (get_local 7) + (get_local 12) + (call_indirect (type 0)) + (i32.eqz) + (br_if 0) + (end) + (end) + (i32.const 1) + (set_local 1) + (br 1) + (end) + (i32.const 0) + (set_local 1) + (end) + (i32.const 0) + (get_local 17) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (get_local 1) + ) + (func 123 (type 0) (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 14) + (i32.store align=4 offset=4) + (get_local 0) + (i32.load align=4 offset=16) + (set_local 12) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=8) + (tee_local 3) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 12) + (br_if 1) + (br 16) + (end) + (get_local 12) + (i32.eqz) + (br_if 1) + (end) + (get_local 1) + (get_local 2) + (i32.add) + (set_local 4) + (get_local 0) + (i32.const 20) + (i32.add) + (i32.load align=4) + (tee_local 8) + (i32.eqz) + (br_if 1) + (get_local 2) + (i32.eqz) + (br_if 12) + (get_local 1) + (i32.const 1) + (i32.add) + (set_local 13) + (get_local 1) + (i32.load8_s align=1) + (tee_local 12) + (i32.const -1) + (i32.gt_s) + (br_if 8) + (get_local 2) + (i32.const 1) + (i32.ne) + (br_if 2) + (i32.const 0) + (set_local 7) + (get_local 4) + (set_local 10) + (br 3) + (end) + (get_local 0) + (i32.load align=4 offset=24) + (get_local 1) + (get_local 2) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (set_local 12) + (br 17) + (end) + (get_local 2) + (i32.eqz) + (br_if 9) + (get_local 1) + (i32.load8_s align=1) + (tee_local 12) + (i32.const -1) + (i32.gt_s) + (br_if 9) + (i32.const 0) + (set_local 8) + (get_local 4) + (set_local 13) + (block emptyblock) + (get_local 2) + (i32.const 1) + (i32.eq) + (br_if 0) + (get_local 1) + (i32.const 2) + (i32.add) + (set_local 13) + (get_local 1) + (i32.const 1) + (i32.add) + (i32.load8_u align=1) + (i32.const 63) + (i32.and) + (set_local 8) + (end) + (get_local 12) + (i32.const 255) + (i32.and) + (i32.const 223) + (i32.le_u) + (br_if 9) + (get_local 13) + (get_local 4) + (i32.eq) + (br_if 2) + (get_local 13) + (i32.const 1) + (i32.add) + (set_local 10) + (get_local 13) + (i32.load8_u align=1) + (i32.const 63) + (i32.and) + (set_local 13) + (br 3) + (end) + (get_local 1) + (i32.const 1) + (i32.add) + (i32.load8_u align=1) + (i32.const 63) + (i32.and) + (set_local 7) + (get_local 1) + (i32.const 2) + (i32.add) + (tee_local 13) + (set_local 10) + (end) + (get_local 12) + (i32.const 255) + (i32.and) + (i32.const 223) + (i32.le_u) + (br_if 4) + (block emptyblock) + (block emptyblock) + (get_local 10) + (get_local 4) + (i32.eq) + (br_if 0) + (get_local 10) + (i32.load8_u align=1) + (i32.const 63) + (i32.and) + (set_local 5) + (get_local 10) + (i32.const 1) + (i32.add) + (tee_local 13) + (set_local 10) + (br 1) + (end) + (i32.const 0) + (set_local 5) + (get_local 4) + (set_local 10) + (end) + (get_local 12) + (i32.const 255) + (i32.and) + (i32.const 240) + (i32.lt_u) + (br_if 4) + (get_local 12) + (i32.const 31) + (i32.and) + (set_local 12) + (get_local 5) + (i32.const 255) + (i32.and) + (get_local 7) + (i32.const 255) + (i32.and) + (i32.const 6) + (i32.shl) + (i32.or) + (set_local 7) + (get_local 10) + (get_local 4) + (i32.eq) + (br_if 2) + (get_local 10) + (i32.const 1) + (i32.add) + (set_local 13) + (get_local 10) + (i32.load8_u align=1) + (i32.const 63) + (i32.and) + (set_local 10) + (br 3) + (end) + (i32.const 0) + (set_local 13) + (get_local 4) + (set_local 10) + (end) + (get_local 12) + (i32.const 255) + (i32.and) + (i32.const 240) + (i32.lt_u) + (br_if 5) + (get_local 12) + (i32.const 255) + (i32.and) + (set_local 12) + (get_local 13) + (i32.const 255) + (i32.and) + (get_local 8) + (i32.const 255) + (i32.and) + (i32.const 6) + (i32.shl) + (i32.or) + (set_local 13) + (get_local 10) + (get_local 4) + (i32.eq) + (br_if 3) + (get_local 10) + (i32.load8_u align=1) + (i32.const 63) + (i32.and) + (set_local 8) + (br 4) + (end) + (i32.const 0) + (set_local 10) + (end) + (get_local 7) + (i32.const 6) + (i32.shl) + (get_local 12) + (i32.const 18) + (i32.shl) + (i32.const 1835008) + (i32.and) + (i32.or) + (get_local 10) + (i32.const 255) + (i32.and) + (i32.or) + (i32.const 1114112) + (i32.eq) + (br_if 4) + (end) + (block emptyblock) + (block emptyblock) + (get_local 8) + (i32.eqz) + (br_if 0) + (get_local 13) + (get_local 1) + (i32.sub) + (set_local 12) + (loop emptyblock) + (get_local 12) + (set_local 10) + (get_local 13) + (tee_local 12) + (get_local 4) + (i32.eq) + (br_if 6) + (get_local 12) + (i32.const 1) + (i32.add) + (set_local 13) + (block emptyblock) + (get_local 12) + (i32.load8_s align=1) + (tee_local 7) + (i32.const -1) + (i32.gt_s) + (br_if 0) + (block emptyblock) + (block emptyblock) + (get_local 13) + (get_local 4) + (i32.eq) + (br_if 0) + (get_local 12) + (i32.const 1) + (i32.add) + (i32.load8_u align=1) + (i32.const 63) + (i32.and) + (set_local 6) + (get_local 12) + (i32.const 2) + (i32.add) + (tee_local 13) + (set_local 5) + (br 1) + (end) + (i32.const 0) + (set_local 6) + (get_local 4) + (set_local 5) + (end) + (get_local 7) + (i32.const 255) + (i32.and) + (tee_local 9) + (i32.const 223) + (i32.le_u) + (br_if 0) + (block emptyblock) + (block emptyblock) + (get_local 5) + (get_local 4) + (i32.eq) + (br_if 0) + (get_local 5) + (i32.load8_u align=1) + (i32.const 63) + (i32.and) + (set_local 11) + (get_local 5) + (i32.const 1) + (i32.add) + (tee_local 13) + (set_local 5) + (get_local 9) + (i32.const 240) + (i32.ge_u) + (br_if 1) + (br 2) + (end) + (i32.const 0) + (set_local 11) + (get_local 4) + (set_local 5) + (get_local 9) + (i32.const 240) + (i32.lt_u) + (br_if 1) + (end) + (get_local 7) + (i32.const 31) + (i32.and) + (set_local 7) + (get_local 11) + (i32.const 255) + (i32.and) + (get_local 6) + (i32.const 255) + (i32.and) + (i32.const 6) + (i32.shl) + (i32.or) + (set_local 9) + (block emptyblock) + (block emptyblock) + (get_local 5) + (get_local 4) + (i32.eq) + (br_if 0) + (get_local 5) + (i32.const 1) + (i32.add) + (set_local 13) + (get_local 5) + (i32.load8_u align=1) + (i32.const 63) + (i32.and) + (set_local 5) + (br 1) + (end) + (i32.const 0) + (set_local 5) + (end) + (get_local 9) + (i32.const 6) + (i32.shl) + (get_local 7) + (i32.const 18) + (i32.shl) + (i32.const 1835008) + (i32.and) + (i32.or) + (get_local 5) + (i32.const 255) + (i32.and) + (i32.or) + (i32.const 1114112) + (i32.eq) + (br_if 7) + (end) + (get_local 13) + (get_local 12) + (i32.sub) + (get_local 10) + (i32.add) + (set_local 12) + (get_local 8) + (i32.const -1) + (i32.add) + (tee_local 8) + (br_if 0) + (end) + (get_local 10) + (i32.eqz) + (br_if 1) + (br 6) + (end) + (i32.const 0) + (set_local 10) + (i32.const 0) + (br_if 5) + (end) + (get_local 10) + (set_local 2) + (get_local 3) + (br_if 5) + (br 6) + (end) + (i32.const 0) + (set_local 8) + (end) + (get_local 13) + (i32.const 6) + (i32.shl) + (get_local 12) + (i32.const 18) + (i32.shl) + (i32.const 1835008) + (i32.and) + (i32.or) + (get_local 8) + (i32.const 255) + (i32.and) + (i32.or) + (i32.const 1114112) + (i32.eq) + (br_if 1) + (end) + (i32.const 0) + (set_local 2) + (end) + (get_local 3) + (i32.eqz) + (br_if 2) + (br 1) + (end) + (block emptyblock) + (get_local 10) + (get_local 2) + (i32.eq) + (br_if 0) + (get_local 10) + (get_local 2) + (i32.ge_u) + (br_if 6) + (get_local 1) + (get_local 10) + (i32.add) + (i32.load8_s align=1) + (i32.const -65) + (i32.le_s) + (br_if 6) + (end) + (get_local 10) + (set_local 2) + (get_local 3) + (i32.eqz) + (br_if 1) + (end) + (get_local 0) + (i32.const 12) + (i32.add) + (i32.load align=4) + (set_local 10) + (get_local 2) + (i32.eqz) + (br_if 1) + (get_local 1) + (get_local 2) + (i32.add) + (set_local 8) + (i32.const 0) + (set_local 13) + (get_local 1) + (set_local 12) + (loop emptyblock) + (get_local 12) + (i32.load8_u align=1) + (i32.const 192) + (i32.and) + (i32.const 128) + (i32.eq) + (get_local 13) + (i32.add) + (set_local 13) + (get_local 8) + (get_local 12) + (i32.const 1) + (i32.add) + (tee_local 12) + (i32.ne) + (br_if 0) + (br 3) + (end) + (unreachable) + (end) + (get_local 0) + (i32.load align=4 offset=24) + (get_local 1) + (get_local 2) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (set_local 12) + (br 2) + (end) + (i32.const 0) + (set_local 13) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 2) + (get_local 13) + (i32.sub) + (get_local 10) + (i32.ge_u) + (br_if 0) + (i32.const 0) + (set_local 13) + (block emptyblock) + (get_local 2) + (i32.eqz) + (br_if 0) + (get_local 1) + (get_local 2) + (i32.add) + (set_local 8) + (i32.const 0) + (set_local 13) + (get_local 1) + (set_local 12) + (loop emptyblock) + (get_local 12) + (i32.load8_u align=1) + (i32.const 192) + (i32.and) + (i32.const 128) + (i32.eq) + (get_local 13) + (i32.add) + (set_local 13) + (get_local 8) + (get_local 12) + (i32.const 1) + (i32.add) + (tee_local 12) + (i32.ne) + (br_if 0) + (end) + (end) + (get_local 13) + (get_local 2) + (i32.sub) + (get_local 10) + (i32.add) + (set_local 7) + (i32.const 0) + (get_local 0) + (i32.load8_u align=1 offset=48) + (tee_local 12) + (get_local 12) + (i32.const 3) + (i32.eq) + (select) + (i32.const 3) + (i32.and) + (tee_local 12) + (i32.const 2) + (i32.eq) + (br_if 1) + (get_local 12) + (i32.eqz) + (br_if 2) + (get_local 7) + (set_local 4) + (i32.const 0) + (set_local 7) + (br 3) + (end) + (get_local 0) + (i32.load align=4 offset=24) + (get_local 1) + (get_local 2) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (set_local 12) + (br 3) + (end) + (get_local 7) + (i32.const 1) + (i32.shr_u) + (set_local 4) + (get_local 7) + (i32.const 1) + (i32.add) + (i32.const 1) + (i32.shr_u) + (set_local 7) + (br 1) + (end) + (i32.const 0) + (set_local 4) + (end) + (i32.const 0) + (set_local 13) + (get_local 14) + (i32.const 0) + (i32.store align=4 offset=12) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=4) + (tee_local 12) + (i32.const 127) + (i32.gt_u) + (br_if 0) + (get_local 14) + (get_local 12) + (i32.store8 align=1 offset=12) + (i32.const 1) + (set_local 10) + (br 1) + (end) + (block emptyblock) + (block emptyblock) + (get_local 12) + (i32.const 2048) + (i32.ge_u) + (br_if 0) + (i32.const 2) + (set_local 10) + (i32.const 1) + (set_local 8) + (i32.const 192) + (set_local 5) + (i32.const 31) + (set_local 9) + (br 1) + (end) + (block emptyblock) + (get_local 12) + (i32.const 65535) + (i32.gt_u) + (br_if 0) + (get_local 14) + (get_local 12) + (i32.const 12) + (i32.shr_u) + (i32.const 15) + (i32.and) + (i32.const 224) + (i32.or) + (i32.store8 align=1 offset=12) + (i32.const 3) + (set_local 10) + (i32.const 2) + (set_local 8) + (i32.const 128) + (set_local 5) + (i32.const 1) + (set_local 13) + (i32.const 63) + (set_local 9) + (br 1) + (end) + (get_local 14) + (get_local 12) + (i32.const 18) + (i32.shr_u) + (i32.const 240) + (i32.or) + (i32.store8 align=1 offset=12) + (i32.const 63) + (set_local 9) + (i32.const 128) + (set_local 5) + (get_local 14) + (get_local 12) + (i32.const 12) + (i32.shr_u) + (i32.const 63) + (i32.and) + (i32.const 128) + (i32.or) + (i32.store8 align=1 offset=13) + (i32.const 4) + (set_local 10) + (i32.const 3) + (set_local 8) + (i32.const 2) + (set_local 13) + (end) + (get_local 14) + (i32.const 12) + (i32.add) + (get_local 13) + (i32.add) + (get_local 9) + (get_local 12) + (i32.const 6) + (i32.shr_u) + (i32.and) + (get_local 5) + (i32.or) + (i32.store8 align=1) + (get_local 14) + (i32.const 12) + (i32.add) + (get_local 8) + (i32.add) + (get_local 12) + (i32.const 63) + (i32.and) + (i32.const 128) + (i32.or) + (i32.store8 align=1) + (end) + (get_local 0) + (i32.load align=4 offset=24) + (set_local 8) + (i32.const 0) + (set_local 12) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (tee_local 5) + (i32.const 12) + (i32.add) + (set_local 0) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (loop emptyblock) + (get_local 12) + (get_local 4) + (i32.ge_u) + (br_if 1) + (get_local 12) + (i32.const 1) + (i32.add) + (tee_local 13) + (get_local 12) + (i32.lt_u) + (br_if 1) + (get_local 13) + (set_local 12) + (get_local 8) + (get_local 14) + (i32.const 12) + (i32.add) + (get_local 10) + (get_local 0) + (i32.load align=4) + (call_indirect (type 0)) + (i32.eqz) + (br_if 0) + (br 2) + (end) + (unreachable) + (end) + (get_local 8) + (get_local 1) + (get_local 2) + (get_local 5) + (i32.const 12) + (i32.add) + (i32.load align=4) + (tee_local 0) + (call_indirect (type 0)) + (br_if 0) + (i32.const 0) + (set_local 12) + (loop emptyblock) + (get_local 12) + (get_local 7) + (i32.ge_u) + (br_if 2) + (get_local 12) + (i32.const 1) + (i32.add) + (tee_local 13) + (get_local 12) + (i32.lt_u) + (br_if 2) + (get_local 13) + (set_local 12) + (get_local 8) + (get_local 14) + (i32.const 12) + (i32.add) + (get_local 10) + (get_local 0) + (call_indirect (type 0)) + (i32.eqz) + (br_if 0) + (end) + (end) + (i32.const 1) + (set_local 12) + (br 1) + (end) + (i32.const 0) + (set_local 12) + (end) + (i32.const 0) + (get_local 14) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (get_local 12) + (return) + (end) + (get_local 1) + (get_local 2) + (i32.const 0) + (get_local 10) + (call 144) + (unreachable) + ) + (func 124 (type 0) (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i64) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.load align=4 offset=24) + (tee_local 3) + (i32.const 34) + (get_local 2) + (i32.const 28) + (i32.add) + (i32.load align=4) + (tee_local 2) + (i32.load align=4 offset=16) + (tee_local 4) + (call_indirect (type 6)) + (br_if 0) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 1) + (i32.eqz) + (br_if 0) + (get_local 0) + (get_local 1) + (i32.add) + (set_local 5) + (get_local 2) + (i32.const 12) + (i32.add) + (set_local 6) + (get_local 0) + (set_local 2) + (i32.const 0) + (set_local 16) + (i32.const 0) + (set_local 7) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (loop emptyblock) + (get_local 2) + (set_local 8) + (get_local 2) + (i32.const 1) + (i32.add) + (set_local 14) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.load8_s align=1) + (tee_local 9) + (i32.const -1) + (i32.le_s) + (br_if 0) + (get_local 9) + (i32.const 255) + (i32.and) + (set_local 9) + (br 1) + (end) + (block emptyblock) + (block emptyblock) + (get_local 14) + (get_local 5) + (i32.eq) + (br_if 0) + (get_local 14) + (i32.load8_u align=1) + (i32.const 63) + (i32.and) + (set_local 12) + (get_local 2) + (i32.const 2) + (i32.add) + (tee_local 2) + (set_local 14) + (br 1) + (end) + (i32.const 0) + (set_local 12) + (get_local 5) + (set_local 2) + (end) + (get_local 9) + (i32.const 31) + (i32.and) + (set_local 13) + (get_local 12) + (i32.const 255) + (i32.and) + (set_local 12) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 9) + (i32.const 255) + (i32.and) + (tee_local 9) + (i32.const 223) + (i32.le_u) + (br_if 0) + (get_local 2) + (get_local 5) + (i32.eq) + (br_if 1) + (get_local 2) + (i32.load8_u align=1) + (i32.const 63) + (i32.and) + (set_local 15) + (get_local 2) + (i32.const 1) + (i32.add) + (tee_local 14) + (set_local 10) + (br 2) + (end) + (get_local 12) + (get_local 13) + (i32.const 6) + (i32.shl) + (i32.or) + (set_local 9) + (br 2) + (end) + (i32.const 0) + (set_local 15) + (get_local 5) + (set_local 10) + (end) + (get_local 15) + (i32.const 255) + (i32.and) + (get_local 12) + (i32.const 6) + (i32.shl) + (i32.or) + (set_local 12) + (block emptyblock) + (get_local 9) + (i32.const 240) + (i32.lt_u) + (br_if 0) + (get_local 10) + (get_local 5) + (i32.eq) + (br_if 2) + (get_local 10) + (i32.const 1) + (i32.add) + (set_local 2) + (get_local 10) + (i32.load8_u align=1) + (i32.const 63) + (i32.and) + (set_local 9) + (br 3) + (end) + (get_local 12) + (get_local 13) + (i32.const 12) + (i32.shl) + (i32.or) + (set_local 9) + (end) + (get_local 14) + (set_local 2) + (br 2) + (end) + (i32.const 0) + (set_local 9) + (get_local 14) + (set_local 2) + (end) + (get_local 12) + (i32.const 6) + (i32.shl) + (get_local 13) + (i32.const 18) + (i32.shl) + (i32.const 1835008) + (i32.and) + (i32.or) + (get_local 9) + (i32.const 255) + (i32.and) + (i32.or) + (tee_local 9) + (i32.const 1114112) + (i32.eq) + (br_if 2) + (end) + (i32.const 2) + (set_local 14) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 9) + (i32.const -9) + (i32.add) + (tee_local 10) + (i32.const 30) + (i32.gt_u) + (br_if 0) + (i32.const 116) + (set_local 13) + (i32.const 9) + (set_local 12) + (block emptyblock) + (get_local 10) + (br_table [Ref(space=label,index=9,name=None), Ref(space=label,index=0,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=3,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=6,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=6,name=None), Ref(space=label,index=9,name=None)]) + (end) + (i32.const 110) + (set_local 13) + (br 3) + (end) + (get_local 9) + (i32.const 92) + (i32.eq) + (br_if 4) + (end) + (get_local 9) + (i32.const 65535) + (i32.gt_u) + (br_if 2) + (i32.const 1) + (set_local 14) + (get_local 9) + (i32.const 5488) + (i32.const 41) + (i32.const 5584) + (i32.const 304) + (i32.const 5888) + (i32.const 326) + (call 138) + (i32.eqz) + (br_if 4) + (br 3) + (end) + (i32.const 114) + (set_local 13) + (end) + (get_local 9) + (set_local 12) + (br 4) + (end) + (block emptyblock) + (get_local 9) + (i32.const 131072) + (i32.ge_u) + (br_if 0) + (i32.const 1) + (set_local 14) + (get_local 9) + (i32.const 6224) + (i32.const 33) + (i32.const 6304) + (i32.const 150) + (i32.const 6464) + (i32.const 360) + (call 138) + (br_if 1) + (br 2) + (end) + (get_local 9) + (i32.const -918000) + (i32.add) + (i32.const 196112) + (i32.lt_u) + (br_if 1) + (i32.const 1) + (set_local 14) + (get_local 9) + (i32.const -195102) + (i32.add) + (i32.const 722657) + (i32.gt_u) + (get_local 9) + (i32.const -191457) + (i32.add) + (i32.const 3102) + (i32.gt_u) + (get_local 9) + (i32.const -183970) + (i32.add) + (i32.const 13) + (i32.gt_u) + (get_local 9) + (i32.const 2097150) + (i32.and) + (i32.const 178206) + (i32.ne) + (get_local 9) + (i32.const -173783) + (i32.add) + (i32.const 40) + (i32.gt_u) + (get_local 9) + (i32.const -177973) + (i32.add) + (i32.const 10) + (i32.gt_u) + (i32.and) + (i32.and) + (i32.and) + (i32.and) + (i32.and) + (i32.eqz) + (br_if 1) + (end) + (get_local 9) + (set_local 12) + (br 1) + (end) + (get_local 9) + (i32.const 1) + (i32.or) + (i32.clz) + (i32.const 2) + (i32.shr_u) + (i32.const 7) + (i32.xor) + (i64.extend_u/i32) + (i64.const 21474836480) + (i64.or) + (set_local 17) + (i32.const 3) + (set_local 14) + (get_local 9) + (set_local 12) + (end) + (get_local 9) + (set_local 13) + (end) + (block emptyblock) + (get_local 14) + (i32.const 3) + (i32.and) + (tee_local 9) + (i32.const 1) + (i32.eq) + (br_if 0) + (block emptyblock) + (get_local 9) + (i32.const 3) + (i32.ne) + (br_if 0) + (get_local 17) + (i64.const 32) + (i64.shr_u) + (i32.wrap/i64) + (i32.const 255) + (i32.and) + (i32.const 4) + (i32.xor) + (i32.const 2) + (i32.shl) + (i32.const 7120) + (i32.add) + (i32.load align=4) + (get_local 17) + (i32.wrap/i64) + (i32.add) + (i32.const 1) + (i32.eq) + (br_if 1) + (end) + (get_local 7) + (get_local 16) + (i32.lt_u) + (br_if 5) + (block emptyblock) + (get_local 16) + (i32.eqz) + (br_if 0) + (get_local 16) + (get_local 1) + (i32.eq) + (br_if 0) + (get_local 16) + (get_local 1) + (i32.ge_u) + (br_if 6) + (get_local 0) + (get_local 16) + (i32.add) + (i32.load8_s align=1) + (i32.const -65) + (i32.le_s) + (br_if 6) + (end) + (block emptyblock) + (get_local 7) + (i32.eqz) + (br_if 0) + (get_local 7) + (get_local 1) + (i32.eq) + (br_if 0) + (get_local 7) + (get_local 1) + (i32.ge_u) + (br_if 6) + (get_local 0) + (get_local 7) + (i32.add) + (i32.load8_s align=1) + (i32.const -65) + (i32.le_s) + (br_if 6) + (end) + (get_local 3) + (get_local 0) + (get_local 16) + (i32.add) + (get_local 7) + (get_local 16) + (i32.sub) + (get_local 6) + (i32.load align=4) + (call_indirect (type 0)) + (br_if 4) + (get_local 17) + (i64.const 32) + (i64.shr_u) + (i32.wrap/i64) + (set_local 16) + (get_local 17) + (i32.wrap/i64) + (set_local 15) + (block emptyblock) + (loop emptyblock) + (get_local 16) + (set_local 9) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 14) + (i32.const 3) + (i32.and) + (tee_local 16) + (i32.const 1) + (i32.eq) + (br_if 0) + (get_local 16) + (i32.const 2) + (i32.eq) + (br_if 1) + (get_local 16) + (i32.const 3) + (i32.ne) + (br_if 7) + (i32.const 4) + (set_local 16) + (get_local 9) + (i32.const 7) + (i32.and) + (i32.const -1) + (i32.add) + (tee_local 11) + (i32.const 4) + (i32.gt_u) + (br_if 7) + (i32.const 92) + (set_local 10) + (block emptyblock) + (get_local 11) + (br_table [Ref(space=label,index=0,name=None), Ref(space=label,index=4,name=None), Ref(space=label,index=5,name=None), Ref(space=label,index=6,name=None), Ref(space=label,index=3,name=None), Ref(space=label,index=0,name=None)]) + (end) + (i32.const 0) + (set_local 16) + (get_local 3) + (i32.const 125) + (get_local 4) + (call_indirect (type 6)) + (i32.eqz) + (br_if 6) + (br 11) + (end) + (i32.const 0) + (set_local 14) + (get_local 9) + (set_local 16) + (get_local 3) + (get_local 13) + (get_local 4) + (call_indirect (type 6)) + (i32.eqz) + (br_if 5) + (br 10) + (end) + (i32.const 92) + (set_local 10) + (i32.const 1) + (set_local 14) + (get_local 9) + (set_local 16) + (end) + (get_local 3) + (get_local 10) + (get_local 4) + (call_indirect (type 6)) + (i32.eqz) + (br_if 3) + (br 8) + (end) + (get_local 9) + (i32.const 1) + (get_local 15) + (select) + (set_local 16) + (get_local 15) + (i32.const 2) + (i32.shl) + (set_local 9) + (get_local 15) + (i32.const -1) + (i32.add) + (i32.const 0) + (get_local 15) + (select) + (set_local 15) + (get_local 3) + (i32.const 48) + (i32.const 87) + (get_local 13) + (get_local 9) + (i32.const 28) + (i32.and) + (i32.shr_u) + (i32.const 15) + (i32.and) + (tee_local 9) + (i32.const 10) + (i32.lt_u) + (select) + (get_local 9) + (i32.add) + (get_local 4) + (call_indirect (type 6)) + (i32.eqz) + (br_if 2) + (br 7) + (end) + (i32.const 2) + (set_local 16) + (get_local 3) + (i32.const 123) + (get_local 4) + (call_indirect (type 6)) + (i32.eqz) + (br_if 1) + (br 6) + (end) + (i32.const 3) + (set_local 16) + (get_local 3) + (i32.const 117) + (get_local 4) + (call_indirect (type 6)) + (i32.eqz) + (br_if 0) + (br 5) + (end) + (unreachable) + (end) + (i32.const 1) + (set_local 14) + (block emptyblock) + (get_local 12) + (i32.const 128) + (i32.lt_u) + (br_if 0) + (i32.const 2) + (set_local 14) + (get_local 12) + (i32.const 2048) + (i32.lt_u) + (br_if 0) + (i32.const 3) + (i32.const 4) + (get_local 12) + (i32.const 65536) + (i32.lt_u) + (select) + (set_local 14) + (end) + (get_local 14) + (get_local 7) + (i32.add) + (set_local 16) + (end) + (get_local 7) + (get_local 8) + (i32.sub) + (get_local 2) + (i32.add) + (set_local 7) + (get_local 2) + (get_local 5) + (i32.ne) + (br_if 0) + (end) + (end) + (get_local 16) + (i32.eqz) + (br_if 4) + (get_local 16) + (get_local 1) + (i32.eq) + (br_if 4) + (block emptyblock) + (get_local 16) + (get_local 1) + (i32.ge_u) + (br_if 0) + (get_local 0) + (get_local 16) + (i32.add) + (tee_local 2) + (i32.load8_s align=1) + (i32.const -65) + (i32.gt_s) + (br_if 6) + (end) + (get_local 0) + (get_local 1) + (get_local 16) + (get_local 1) + (call 144) + (unreachable) + (end) + (i32.const 1) + (return) + (end) + (i32.const 1) + (return) + (end) + (get_local 0) + (get_local 1) + (get_local 16) + (get_local 7) + (call 144) + (unreachable) + (end) + (get_local 2) + (i32.const 12) + (i32.add) + (set_local 6) + (i32.const 0) + (set_local 16) + (end) + (get_local 0) + (get_local 16) + (i32.add) + (set_local 2) + (end) + (get_local 3) + (get_local 2) + (get_local 1) + (get_local 16) + (i32.sub) + (get_local 6) + (i32.load align=4) + (call_indirect (type 0)) + (i32.eqz) + (br_if 1) + (end) + (i32.const 1) + (return) + (end) + (get_local 3) + (i32.const 34) + (get_local 4) + (call_indirect (type 6)) + ) + (func 125 (type 6) (local i32 i32 i32 i32 i32 i32 i32 i64) + (i32.const 1) + (set_local 6) + (block emptyblock) + (get_local 1) + (i32.load align=4 offset=24) + (tee_local 2) + (i32.const 39) + (get_local 1) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=16) + (tee_local 3) + (call_indirect (type 6)) + (br_if 0) + (i32.const 2) + (set_local 6) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4) + (tee_local 1) + (i32.const -9) + (i32.add) + (tee_local 0) + (i32.const 30) + (i32.gt_u) + (br_if 0) + (i32.const 116) + (set_local 5) + (block emptyblock) + (get_local 0) + (br_table [Ref(space=label,index=9,name=None), Ref(space=label,index=0,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=3,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=6,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=6,name=None), Ref(space=label,index=9,name=None)]) + (end) + (i32.const 110) + (set_local 5) + (br 8) + (end) + (get_local 1) + (i32.const 92) + (i32.eq) + (br_if 4) + (end) + (get_local 1) + (i32.const 65535) + (i32.gt_u) + (br_if 1) + (get_local 1) + (i32.const 5488) + (i32.const 41) + (i32.const 5584) + (i32.const 304) + (i32.const 5888) + (i32.const 326) + (call 138) + (br_if 2) + (br 4) + (end) + (i32.const 114) + (set_local 5) + (br 5) + (end) + (block emptyblock) + (get_local 1) + (i32.const 131072) + (i32.ge_u) + (br_if 0) + (get_local 1) + (i32.const 6224) + (i32.const 33) + (i32.const 6304) + (i32.const 150) + (i32.const 6464) + (i32.const 360) + (call 138) + (br_if 1) + (br 3) + (end) + (get_local 1) + (i32.const -918000) + (i32.add) + (i32.const 196112) + (i32.lt_u) + (br_if 2) + (get_local 1) + (i32.const -195102) + (i32.add) + (i32.const 722657) + (i32.gt_u) + (get_local 1) + (i32.const -191457) + (i32.add) + (i32.const 3102) + (i32.gt_u) + (get_local 1) + (i32.const -183970) + (i32.add) + (i32.const 13) + (i32.gt_u) + (get_local 1) + (i32.const 2097150) + (i32.and) + (i32.const 178206) + (i32.ne) + (get_local 1) + (i32.const -173783) + (i32.add) + (i32.const 40) + (i32.gt_u) + (get_local 1) + (i32.const -177973) + (i32.add) + (i32.const 10) + (i32.gt_u) + (i32.and) + (i32.and) + (i32.and) + (i32.and) + (i32.and) + (i32.eqz) + (br_if 2) + (end) + (i32.const 1) + (set_local 6) + (end) + (br 1) + (end) + (get_local 1) + (i32.const 1) + (i32.or) + (i32.clz) + (i32.const 2) + (i32.shr_u) + (i32.const 7) + (i32.xor) + (i64.extend_u/i32) + (i64.const 21474836480) + (i64.or) + (set_local 9) + (i32.const 3) + (set_local 6) + (end) + (get_local 1) + (set_local 5) + (end) + (get_local 9) + (i64.const 32) + (i64.shr_u) + (i32.wrap/i64) + (set_local 1) + (get_local 9) + (i32.wrap/i64) + (set_local 7) + (block emptyblock) + (block emptyblock) + (loop emptyblock) + (get_local 1) + (set_local 0) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 6) + (i32.const 3) + (i32.and) + (tee_local 1) + (i32.const 1) + (i32.eq) + (br_if 0) + (get_local 1) + (i32.const 2) + (i32.eq) + (br_if 1) + (get_local 1) + (i32.const 3) + (i32.ne) + (br_if 8) + (i32.const 4) + (set_local 1) + (get_local 0) + (i32.const 7) + (i32.and) + (i32.const -1) + (i32.add) + (tee_local 4) + (i32.const 4) + (i32.gt_u) + (br_if 8) + (i32.const 92) + (set_local 8) + (block emptyblock) + (get_local 4) + (br_table [Ref(space=label,index=0,name=None), Ref(space=label,index=4,name=None), Ref(space=label,index=5,name=None), Ref(space=label,index=6,name=None), Ref(space=label,index=3,name=None), Ref(space=label,index=0,name=None)]) + (end) + (i32.const 0) + (set_local 1) + (get_local 2) + (i32.const 125) + (get_local 3) + (call_indirect (type 6)) + (i32.eqz) + (br_if 6) + (br 7) + (end) + (i32.const 0) + (set_local 6) + (get_local 0) + (set_local 1) + (get_local 2) + (get_local 5) + (get_local 3) + (call_indirect (type 6)) + (i32.eqz) + (br_if 5) + (br 6) + (end) + (i32.const 92) + (set_local 8) + (i32.const 1) + (set_local 6) + (get_local 0) + (set_local 1) + (end) + (get_local 2) + (get_local 8) + (get_local 3) + (call_indirect (type 6)) + (i32.eqz) + (br_if 3) + (br 4) + (end) + (get_local 0) + (i32.const 1) + (get_local 7) + (select) + (set_local 1) + (get_local 7) + (i32.const 2) + (i32.shl) + (set_local 0) + (get_local 7) + (i32.const -1) + (i32.add) + (i32.const 0) + (get_local 7) + (select) + (set_local 7) + (get_local 2) + (i32.const 48) + (i32.const 87) + (get_local 5) + (get_local 0) + (i32.const 28) + (i32.and) + (i32.shr_u) + (i32.const 15) + (i32.and) + (tee_local 0) + (i32.const 10) + (i32.lt_u) + (select) + (get_local 0) + (i32.add) + (get_local 3) + (call_indirect (type 6)) + (i32.eqz) + (br_if 2) + (br 3) + (end) + (i32.const 2) + (set_local 1) + (get_local 2) + (i32.const 123) + (get_local 3) + (call_indirect (type 6)) + (i32.eqz) + (br_if 1) + (br 2) + (end) + (i32.const 3) + (set_local 1) + (get_local 2) + (i32.const 117) + (get_local 3) + (call_indirect (type 6)) + (i32.eqz) + (br_if 0) + (end) + (end) + (i32.const 1) + (return) + (end) + (get_local 2) + (i32.const 39) + (get_local 3) + (call_indirect (type 6)) + (set_local 6) + (end) + (get_local 6) + ) + (func 126 (type 6) + (get_local 0) + (i32.load align=4) + (get_local 1) + (get_local 0) + (i32.load align=4 offset=4) + (i32.load align=4 offset=12) + (call_indirect (type 6)) + ) + (func 127 (type 6) + (get_local 1) + (get_local 0) + (i32.load align=4) + (get_local 0) + (i32.load align=4 offset=4) + (call 123) + ) + (func 128 (type 5) (local i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 48) + (i32.sub) + (tee_local 2) + (i32.store align=4 offset=4) + (get_local 2) + (get_local 0) + (i32.store align=4) + (get_local 2) + (get_local 1) + (i32.store align=4 offset=4) + (get_local 2) + (i32.const 32) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 15) + (i32.store align=4) + (get_local 2) + (i32.const 15) + (i32.store align=4 offset=36) + (get_local 2) + (get_local 2) + (i32.const 4) + (i32.add) + (i32.store align=4 offset=40) + (get_local 2) + (i32.const 6944) + (i32.store align=4 offset=16) + (get_local 2) + (i32.const 2) + (i32.store align=4 offset=12) + (get_local 2) + (get_local 2) + (i32.store align=4 offset=32) + (get_local 2) + (i32.const 4928) + (i32.store align=4 offset=8) + (get_local 2) + (i32.const 8) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 2) + (get_local 2) + (i32.const 32) + (i32.add) + (i32.store align=4 offset=24) + (get_local 2) + (i32.const 28) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 2) + (i32.const 8) + (i32.add) + (i32.const 4944) + (call 141) + (unreachable) + ) + (func 129 (type 5) (local i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 48) + (i32.sub) + (tee_local 2) + (i32.store align=4 offset=4) + (get_local 2) + (get_local 0) + (i32.store align=4) + (get_local 2) + (get_local 1) + (i32.store align=4 offset=4) + (get_local 2) + (i32.const 32) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 15) + (i32.store align=4) + (get_local 2) + (i32.const 15) + (i32.store align=4 offset=36) + (get_local 2) + (get_local 2) + (i32.const 4) + (i32.add) + (i32.store align=4 offset=40) + (get_local 2) + (i32.const 6944) + (i32.store align=4 offset=16) + (get_local 2) + (i32.const 2) + (i32.store align=4 offset=12) + (get_local 2) + (get_local 2) + (i32.store align=4 offset=32) + (get_local 2) + (i32.const 5060) + (i32.store align=4 offset=8) + (get_local 2) + (i32.const 8) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 2) + (get_local 2) + (i32.const 32) + (i32.add) + (i32.store align=4 offset=24) + (get_local 2) + (i32.const 28) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 2) + (i32.const 8) + (i32.add) + (i32.const 5076) + (call 141) + (unreachable) + ) + (func 130 (type 6) + (get_local 1) + (i32.load align=4 offset=24) + (i32.const 5152) + (i32.const 11) + (get_local 1) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + ) + (func 131 (type 6) + (get_local 1) + (i32.load align=4 offset=24) + (i32.const 5168) + (i32.const 14) + (get_local 1) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + ) + (func 132 (type 0) (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32) + (block emptyblock) + (get_local 2) + (i32.eqz) + (br_if 0) + (get_local 0) + (i32.load8_u align=1 offset=4) + (set_local 11) + (get_local 0) + (i32.const 4) + (i32.add) + (set_local 8) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (loop emptyblock) + (block emptyblock) + (get_local 11) + (i32.const 255) + (i32.and) + (i32.eqz) + (br_if 0) + (get_local 0) + (i32.load align=4) + (tee_local 4) + (i32.load align=4 offset=24) + (i32.const 5184) + (i32.const 4) + (get_local 4) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (br_if 2) + (end) + (get_local 1) + (get_local 2) + (i32.add) + (set_local 3) + (i32.const 0) + (set_local 12) + (get_local 1) + (set_local 4) + (block emptyblock) + (block emptyblock) + (loop emptyblock) + (get_local 12) + (set_local 13) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 4) + (get_local 3) + (i32.eq) + (br_if 0) + (get_local 4) + (i32.const 1) + (i32.add) + (set_local 11) + (get_local 4) + (i32.load8_s align=1) + (tee_local 12) + (i32.const -1) + (i32.le_s) + (br_if 1) + (get_local 12) + (i32.const 255) + (i32.and) + (set_local 7) + (br 2) + (end) + (get_local 13) + (set_local 12) + (get_local 4) + (set_local 11) + (br 2) + (end) + (block emptyblock) + (block emptyblock) + (get_local 11) + (get_local 3) + (i32.eq) + (br_if 0) + (get_local 11) + (i32.load8_u align=1) + (i32.const 63) + (i32.and) + (set_local 9) + (get_local 4) + (i32.const 2) + (i32.add) + (tee_local 7) + (set_local 11) + (br 1) + (end) + (i32.const 0) + (set_local 9) + (get_local 3) + (set_local 7) + (end) + (get_local 12) + (i32.const 31) + (i32.and) + (set_local 6) + (get_local 9) + (i32.const 255) + (i32.and) + (set_local 9) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 12) + (i32.const 255) + (i32.and) + (tee_local 12) + (i32.const 223) + (i32.le_u) + (br_if 0) + (get_local 7) + (get_local 3) + (i32.eq) + (br_if 1) + (get_local 7) + (i32.load8_u align=1) + (i32.const 63) + (i32.and) + (set_local 10) + (get_local 7) + (i32.const 1) + (i32.add) + (tee_local 11) + (set_local 7) + (br 2) + (end) + (get_local 9) + (get_local 6) + (i32.const 6) + (i32.shl) + (i32.or) + (set_local 7) + (br 2) + (end) + (i32.const 0) + (set_local 10) + (get_local 3) + (set_local 7) + (end) + (get_local 10) + (i32.const 255) + (i32.and) + (get_local 9) + (i32.const 6) + (i32.shl) + (i32.or) + (set_local 9) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 12) + (i32.const 240) + (i32.lt_u) + (br_if 0) + (get_local 7) + (get_local 3) + (i32.eq) + (br_if 1) + (get_local 7) + (i32.const 1) + (i32.add) + (set_local 11) + (get_local 7) + (i32.load8_u align=1) + (i32.const 63) + (i32.and) + (set_local 12) + (br 2) + (end) + (get_local 9) + (get_local 6) + (i32.const 12) + (i32.shl) + (i32.or) + (set_local 7) + (br 2) + (end) + (i32.const 0) + (set_local 12) + (end) + (get_local 9) + (i32.const 6) + (i32.shl) + (get_local 6) + (i32.const 18) + (i32.shl) + (i32.const 1835008) + (i32.and) + (i32.or) + (get_local 12) + (i32.const 255) + (i32.and) + (i32.or) + (tee_local 7) + (i32.const 1114112) + (i32.ne) + (br_if 0) + (get_local 13) + (set_local 12) + (br 1) + (end) + (get_local 11) + (get_local 4) + (i32.sub) + (get_local 13) + (i32.add) + (set_local 12) + (get_local 7) + (i32.const 10) + (i32.ne) + (i32.const 3) + (i32.and) + (tee_local 7) + (i32.eqz) + (br_if 3) + (br 1) + (end) + (get_local 5) + (set_local 13) + (i32.const 2) + (i32.const 3) + (i32.and) + (tee_local 7) + (i32.eqz) + (br_if 2) + (end) + (get_local 11) + (set_local 4) + (get_local 13) + (set_local 5) + (get_local 7) + (i32.const 2) + (i32.ne) + (br_if 0) + (end) + (i32.const 0) + (set_local 11) + (get_local 8) + (i32.const 0) + (i32.store8 align=1) + (get_local 2) + (set_local 4) + (br 1) + (end) + (i32.const 1) + (set_local 11) + (get_local 8) + (i32.const 1) + (i32.store8 align=1) + (get_local 13) + (i32.const 1) + (i32.add) + (set_local 4) + (end) + (get_local 0) + (i32.load align=4) + (set_local 13) + (block emptyblock) + (get_local 4) + (i32.eqz) + (get_local 2) + (get_local 4) + (i32.eq) + (i32.or) + (tee_local 12) + (br_if 0) + (get_local 2) + (get_local 4) + (i32.le_u) + (br_if 3) + (get_local 1) + (get_local 4) + (i32.add) + (i32.load8_s align=1) + (i32.const -65) + (i32.le_s) + (br_if 3) + (end) + (get_local 13) + (i32.load align=4 offset=24) + (get_local 1) + (get_local 4) + (get_local 13) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (br_if 1) + (block emptyblock) + (block emptyblock) + (get_local 12) + (i32.eqz) + (br_if 0) + (get_local 1) + (get_local 4) + (i32.add) + (set_local 13) + (br 1) + (end) + (get_local 2) + (get_local 4) + (i32.le_u) + (br_if 4) + (get_local 1) + (get_local 4) + (i32.add) + (tee_local 13) + (i32.load8_s align=1) + (i32.const -65) + (i32.le_s) + (br_if 4) + (end) + (get_local 13) + (set_local 1) + (get_local 2) + (get_local 4) + (i32.sub) + (tee_local 2) + (br_if 0) + (end) + (i32.const 0) + (return) + (end) + (i32.const 1) + (return) + (end) + (get_local 1) + (get_local 2) + (i32.const 0) + (get_local 4) + (call 144) + (unreachable) + (end) + (get_local 1) + (get_local 2) + (get_local 4) + (get_local 2) + (call 144) + (unreachable) + (end) + (i32.const 0) + ) + (func 133 (type 2) + + ) + (func 134 (type 6) (local i32 i32 i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 7) + (i32.store align=4 offset=4) + (i32.const 0) + (set_local 3) + (get_local 7) + (i32.const 0) + (i32.store align=4 offset=12) + (block emptyblock) + (block emptyblock) + (get_local 1) + (i32.const 127) + (i32.gt_u) + (br_if 0) + (get_local 7) + (get_local 1) + (i32.store8 align=1 offset=12) + (i32.const 1) + (set_local 6) + (br 1) + (end) + (block emptyblock) + (block emptyblock) + (get_local 1) + (i32.const 2048) + (i32.ge_u) + (br_if 0) + (i32.const 2) + (set_local 6) + (i32.const 1) + (set_local 5) + (i32.const 192) + (set_local 4) + (i32.const 31) + (set_local 2) + (br 1) + (end) + (block emptyblock) + (get_local 1) + (i32.const 65535) + (i32.gt_u) + (br_if 0) + (get_local 7) + (get_local 1) + (i32.const 12) + (i32.shr_u) + (i32.const 15) + (i32.and) + (i32.const 224) + (i32.or) + (i32.store8 align=1 offset=12) + (i32.const 3) + (set_local 6) + (i32.const 2) + (set_local 5) + (i32.const 128) + (set_local 4) + (i32.const 1) + (set_local 3) + (i32.const 63) + (set_local 2) + (br 1) + (end) + (get_local 7) + (get_local 1) + (i32.const 18) + (i32.shr_u) + (i32.const 240) + (i32.or) + (i32.store8 align=1 offset=12) + (i32.const 63) + (set_local 2) + (i32.const 128) + (set_local 4) + (get_local 7) + (get_local 1) + (i32.const 12) + (i32.shr_u) + (i32.const 63) + (i32.and) + (i32.const 128) + (i32.or) + (i32.store8 align=1 offset=13) + (i32.const 4) + (set_local 6) + (i32.const 3) + (set_local 5) + (i32.const 2) + (set_local 3) + (end) + (get_local 7) + (i32.const 12) + (i32.add) + (get_local 3) + (i32.add) + (get_local 2) + (get_local 1) + (i32.const 6) + (i32.shr_u) + (i32.and) + (get_local 4) + (i32.or) + (i32.store8 align=1) + (get_local 7) + (i32.const 12) + (i32.add) + (get_local 5) + (i32.add) + (get_local 1) + (i32.const 63) + (i32.and) + (i32.const 128) + (i32.or) + (i32.store8 align=1) + (end) + (get_local 0) + (get_local 7) + (i32.const 12) + (i32.add) + (get_local 6) + (call 132) + (set_local 1) + (i32.const 0) + (get_local 7) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (get_local 1) + ) + (func 135 (type 6) (local i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 32) + (i32.sub) + (tee_local 2) + (i32.store align=4 offset=4) + (get_local 2) + (get_local 0) + (i32.store align=4 offset=4) + (get_local 2) + (i32.const 8) + (i32.add) + (i32.const 16) + (i32.add) + (get_local 1) + (i32.const 16) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 2) + (i32.const 8) + (i32.add) + (i32.const 8) + (i32.add) + (get_local 1) + (i32.const 8) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 2) + (get_local 1) + (i64.load align=4) + (i64.store align=8 offset=8) + (get_local 2) + (i32.const 4) + (i32.add) + (i32.const 5236) + (get_local 2) + (i32.const 8) + (i32.add) + (call 121) + (set_local 1) + (i32.const 0) + (get_local 2) + (i32.const 32) + (i32.add) + (i32.store align=4 offset=4) + (get_local 1) + ) + (func 136 (type 2) + + ) + (func 137 (type 0) (local i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 80) + (i32.sub) + (tee_local 4) + (i32.store align=4 offset=4) + (get_local 4) + (get_local 2) + (i32.store align=4 offset=4) + (get_local 4) + (get_local 1) + (i32.store align=4) + (get_local 0) + (i32.load align=4 offset=4) + (set_local 1) + (i32.const 1) + (set_local 2) + (block emptyblock) + (get_local 0) + (i32.load8_u align=1 offset=8) + (br_if 0) + (get_local 4) + (i32.const 1) + (i32.store align=4 offset=12) + (get_local 4) + (i32.const 5200) + (i32.const 5280) + (get_local 1) + (select) + (i32.store align=4 offset=8) + (get_local 4) + (get_local 1) + (i32.const 0) + (i32.ne) + (i32.store align=4 offset=20) + (get_local 4) + (i32.const 5232) + (i32.const 5232) + (get_local 1) + (select) + (i32.store align=4 offset=16) + (block emptyblock) + (get_local 0) + (i32.load align=4) + (tee_local 2) + (i32.load8_u align=1) + (i32.const 4) + (i32.and) + (br_if 0) + (get_local 4) + (i32.const 32) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 11) + (i32.store align=4) + (get_local 4) + (i32.const 32) + (i32.add) + (i32.const 20) + (i32.add) + (i32.const 10) + (i32.store align=4) + (get_local 4) + (i32.const 11) + (i32.store align=4 offset=36) + (get_local 2) + (i32.const 28) + (i32.add) + (i32.load align=4) + (set_local 3) + (get_local 4) + (get_local 4) + (i32.const 8) + (i32.add) + (i32.store align=4 offset=32) + (get_local 4) + (get_local 4) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=40) + (get_local 4) + (get_local 4) + (i32.store align=4 offset=48) + (get_local 2) + (i32.load align=4 offset=24) + (set_local 2) + (get_local 4) + (i32.const 56) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 3) + (i32.store align=4) + (get_local 4) + (i32.const 56) + (i32.add) + (i32.const 20) + (i32.add) + (i32.const 3) + (i32.store align=4) + (get_local 4) + (i32.const 3) + (i32.store align=4 offset=60) + (get_local 4) + (i32.const 5372) + (i32.store align=4 offset=56) + (get_local 4) + (i32.const 7288) + (i32.store align=4 offset=64) + (get_local 4) + (get_local 4) + (i32.const 32) + (i32.add) + (i32.store align=4 offset=72) + (get_local 2) + (get_local 3) + (get_local 4) + (i32.const 56) + (i32.add) + (call 121) + (set_local 2) + (br 1) + (end) + (get_local 4) + (i32.const 0) + (i32.store8 align=1 offset=28) + (get_local 4) + (get_local 2) + (i32.store align=4 offset=24) + (get_local 4) + (i32.const 32) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 10) + (i32.store align=4) + (get_local 4) + (i32.const 11) + (i32.store align=4 offset=36) + (get_local 4) + (i32.const 2) + (i32.store align=4 offset=60) + (get_local 4) + (get_local 4) + (i32.store align=4 offset=40) + (get_local 4) + (i32.const 5300) + (i32.store align=4 offset=64) + (get_local 4) + (get_local 4) + (i32.const 8) + (i32.add) + (i32.store align=4 offset=32) + (get_local 4) + (i32.const 5284) + (i32.store align=4 offset=56) + (get_local 4) + (i32.const 56) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 4) + (get_local 4) + (i32.const 32) + (i32.add) + (i32.store align=4 offset=72) + (get_local 4) + (i32.const 76) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 4) + (i32.const 24) + (i32.add) + (i32.const 5204) + (get_local 4) + (i32.const 56) + (i32.add) + (call 121) + (set_local 2) + (end) + (get_local 0) + (i32.const 4) + (i32.add) + (get_local 1) + (i32.const 1) + (i32.add) + (i32.store align=4) + (get_local 0) + (i32.const 8) + (i32.add) + (get_local 2) + (i32.store8 align=1) + (i32.const 0) + (get_local 4) + (i32.const 80) + (i32.add) + (i32.store align=4 offset=4) + (get_local 0) + ) + (func 138 (type 16) (local i32 i32 i32 i32 i32 i32 i32) + (i32.const 1) + (set_local 13) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.eqz) + (br_if 0) + (get_local 1) + (get_local 2) + (i32.const 1) + (i32.shl) + (i32.add) + (set_local 8) + (get_local 0) + (i32.const 65280) + (i32.and) + (i32.const 8) + (i32.shr_u) + (set_local 7) + (i32.const 0) + (set_local 12) + (get_local 0) + (i32.const 255) + (i32.and) + (set_local 11) + (loop emptyblock) + (get_local 1) + (i32.const 2) + (i32.add) + (set_local 9) + (get_local 1) + (i32.load8_u align=1 offset=1) + (tee_local 2) + (get_local 12) + (i32.add) + (set_local 10) + (block emptyblock) + (block emptyblock) + (get_local 7) + (get_local 1) + (i32.load8_u align=1) + (tee_local 1) + (i32.ne) + (br_if 0) + (get_local 10) + (get_local 12) + (i32.lt_u) + (br_if 7) + (get_local 10) + (get_local 4) + (i32.gt_u) + (br_if 8) + (get_local 3) + (get_local 12) + (i32.add) + (set_local 1) + (loop emptyblock) + (get_local 2) + (i32.eqz) + (br_if 2) + (get_local 2) + (i32.const -1) + (i32.add) + (set_local 2) + (get_local 1) + (i32.load8_u align=1) + (set_local 12) + (get_local 1) + (i32.const 1) + (i32.add) + (set_local 1) + (get_local 12) + (get_local 11) + (i32.ne) + (br_if 0) + (br 5) + (end) + (unreachable) + (end) + (get_local 7) + (get_local 1) + (i32.lt_u) + (br_if 2) + (get_local 9) + (set_local 1) + (get_local 10) + (set_local 12) + (get_local 9) + (get_local 8) + (i32.ne) + (br_if 1) + (br 2) + (end) + (get_local 9) + (set_local 1) + (get_local 10) + (set_local 12) + (get_local 9) + (get_local 8) + (i32.ne) + (br_if 0) + (end) + (end) + (get_local 6) + (i32.eqz) + (br_if 1) + (get_local 5) + (get_local 6) + (i32.add) + (set_local 11) + (get_local 0) + (i32.const 65535) + (i32.and) + (set_local 12) + (get_local 5) + (i32.const 1) + (i32.add) + (set_local 2) + (i32.const 1) + (set_local 13) + (loop emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 5) + (i32.load8_u align=1) + (tee_local 1) + (i32.const 24) + (i32.shl) + (i32.const 24) + (i32.shr_s) + (tee_local 10) + (i32.const -1) + (i32.le_s) + (br_if 0) + (get_local 2) + (set_local 5) + (br 1) + (end) + (get_local 2) + (get_local 11) + (i32.eq) + (br_if 4) + (get_local 2) + (i32.const 1) + (i32.add) + (set_local 5) + (get_local 2) + (i32.load8_u align=1) + (get_local 10) + (i32.const 127) + (i32.and) + (i32.const 8) + (i32.shl) + (i32.or) + (set_local 1) + (end) + (get_local 12) + (get_local 1) + (i32.sub) + (tee_local 12) + (i32.const 0) + (i32.lt_s) + (br_if 2) + (get_local 13) + (i32.const 1) + (i32.xor) + (set_local 13) + (get_local 5) + (get_local 11) + (i32.eq) + (br_if 2) + (get_local 5) + (i32.const 1) + (i32.add) + (set_local 2) + (br 0) + (end) + (unreachable) + (end) + (i32.const 0) + (set_local 13) + (end) + (get_local 13) + (i32.const 1) + (i32.and) + (return) + (end) + (i32.const 6824) + (call 139) + (unreachable) + (end) + (get_local 12) + (get_local 10) + (call 129) + (unreachable) + (end) + (get_local 10) + (get_local 4) + (call 128) + (unreachable) + ) + (func 139 (type 2) (local i32 i64 i64 i64) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 48) + (i32.sub) + (tee_local 1) + (i32.store align=4 offset=4) + (get_local 0) + (i64.load align=4 offset=16) + (set_local 2) + (get_local 0) + (i64.load align=4 offset=8) + (set_local 3) + (get_local 0) + (i64.load align=4) + (set_local 4) + (get_local 1) + (i32.const 20) + (i32.add) + (i32.const 0) + (i32.store align=4) + (get_local 1) + (get_local 4) + (i64.store align=8 offset=24) + (get_local 1) + (i32.const 1) + (i32.store align=4 offset=4) + (get_local 1) + (i32.const 0) + (i32.store align=4 offset=8) + (get_local 1) + (i32.const 7076) + (i32.store align=4 offset=16) + (get_local 1) + (get_local 1) + (i32.const 24) + (i32.add) + (i32.store align=4) + (get_local 1) + (get_local 3) + (i64.store align=8 offset=32) + (get_local 1) + (get_local 2) + (i64.store align=8 offset=40) + (get_local 1) + (get_local 1) + (i32.const 32) + (i32.add) + (call 141) + (unreachable) + ) + (func 140 (type 4) (local i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 48) + (i32.sub) + (tee_local 3) + (i32.store align=4 offset=4) + (get_local 3) + (get_local 1) + (i32.store align=4) + (get_local 3) + (get_local 2) + (i32.store align=4 offset=4) + (get_local 3) + (i32.const 32) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 15) + (i32.store align=4) + (get_local 3) + (i32.const 15) + (i32.store align=4 offset=36) + (get_local 3) + (get_local 3) + (i32.store align=4 offset=40) + (get_local 3) + (i32.const 6944) + (i32.store align=4 offset=16) + (get_local 3) + (i32.const 2) + (i32.store align=4 offset=12) + (get_local 3) + (get_local 3) + (i32.const 4) + (i32.add) + (i32.store align=4 offset=32) + (get_local 3) + (i32.const 6928) + (i32.store align=4 offset=8) + (get_local 3) + (i32.const 8) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 3) + (get_local 3) + (i32.const 32) + (i32.add) + (i32.store align=4 offset=24) + (get_local 3) + (i32.const 28) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 3) + (i32.const 8) + (i32.add) + (get_local 0) + (call 141) + (unreachable) + ) + (func 141 (type 5) (local i32 i32 i64 i64) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 64) + (i32.sub) + (tee_local 3) + (i32.store align=4 offset=4) + (get_local 1) + (i64.load align=4 offset=8) + (set_local 4) + (get_local 1) + (i64.load align=4) + (set_local 5) + (get_local 3) + (i32.const 16) + (i32.add) + (tee_local 1) + (get_local 0) + (i32.const 16) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 3) + (i32.const 8) + (i32.add) + (tee_local 2) + (get_local 0) + (i32.const 8) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 3) + (get_local 0) + (i64.load align=4) + (i64.store align=8) + (get_local 3) + (i32.const 24) + (i32.add) + (i32.const 16) + (i32.add) + (get_local 1) + (i64.load align=8) + (i64.store align=8) + (get_local 3) + (i32.const 24) + (i32.add) + (i32.const 8) + (i32.add) + (get_local 2) + (i64.load align=8) + (i64.store align=8) + (get_local 3) + (get_local 3) + (i64.load align=8) + (i64.store align=8 offset=24) + (get_local 3) + (get_local 5) + (i64.store align=8 offset=48) + (get_local 3) + (get_local 4) + (i64.store align=8 offset=56) + (get_local 3) + (i32.const 24) + (i32.add) + (get_local 3) + (i32.const 48) + (i32.add) + (call 76) + (unreachable) + ) + (func 142 (type 6) (local i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 48) + (i32.sub) + (tee_local 2) + (i32.store align=4 offset=4) + (get_local 2) + (i32.const 8) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 16) + (i32.store align=4) + (get_local 2) + (i32.const 16) + (i32.store align=4 offset=12) + (get_local 2) + (get_local 0) + (i32.store align=4 offset=8) + (get_local 2) + (get_local 0) + (i32.const 4) + (i32.add) + (i32.store align=4 offset=16) + (get_local 1) + (i32.const 28) + (i32.add) + (i32.load align=4) + (set_local 0) + (get_local 1) + (i32.load align=4 offset=24) + (set_local 1) + (get_local 2) + (i32.const 24) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 2) + (i32.const 44) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 2) + (i32.const 2) + (i32.store align=4 offset=28) + (get_local 2) + (i32.const 7092) + (i32.store align=4 offset=24) + (get_local 2) + (i32.const 6944) + (i32.store align=4 offset=32) + (get_local 2) + (get_local 2) + (i32.const 8) + (i32.add) + (i32.store align=4 offset=40) + (get_local 1) + (get_local 0) + (get_local 2) + (i32.const 24) + (i32.add) + (call 121) + (set_local 1) + (i32.const 0) + (get_local 2) + (i32.const 48) + (i32.add) + (i32.store align=4 offset=4) + (get_local 1) + ) + (func 143 (type 5) (local i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 48) + (i32.sub) + (tee_local 2) + (i32.store align=4 offset=4) + (get_local 2) + (get_local 1) + (i32.store align=4 offset=12) + (get_local 2) + (get_local 0) + (i32.store align=4 offset=8) + (get_local 2) + (i32.const 28) + (i32.add) + (i32.const 1) + (i32.store align=4) + (get_local 2) + (i32.const 1) + (i32.store align=4 offset=20) + (get_local 2) + (i32.const 11) + (i32.store align=4 offset=44) + (get_local 2) + (i32.const 7160) + (i32.store align=4 offset=24) + (get_local 2) + (get_local 2) + (i32.const 8) + (i32.add) + (i32.store align=4 offset=40) + (get_local 2) + (i32.const 7152) + (i32.store align=4 offset=16) + (get_local 2) + (get_local 2) + (i32.const 40) + (i32.add) + (i32.store align=4 offset=32) + (get_local 2) + (i32.const 36) + (i32.add) + (i32.const 1) + (i32.store align=4) + (get_local 2) + (i32.const 16) + (i32.add) + (i32.const 7196) + (call 141) + (unreachable) + ) + (func 144 (type 11) (local i32 i32 i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 112) + (i32.sub) + (tee_local 9) + (i32.store align=4 offset=4) + (get_local 9) + (get_local 2) + (i32.store align=4 offset=8) + (get_local 9) + (get_local 3) + (i32.store align=4 offset=12) + (i32.const 0) + (set_local 5) + (get_local 1) + (set_local 6) + (block emptyblock) + (get_local 1) + (i32.const 257) + (i32.lt_u) + (br_if 0) + (i32.const 0) + (get_local 1) + (i32.sub) + (set_local 4) + (i32.const 256) + (set_local 7) + (block emptyblock) + (loop emptyblock) + (block emptyblock) + (get_local 7) + (get_local 1) + (i32.ge_u) + (br_if 0) + (get_local 0) + (get_local 7) + (i32.add) + (i32.load8_s align=1) + (i32.const -65) + (i32.gt_s) + (br_if 2) + (end) + (get_local 7) + (i32.const -1) + (i32.add) + (set_local 6) + (i32.const 1) + (set_local 5) + (get_local 7) + (i32.const 1) + (i32.eq) + (br_if 2) + (get_local 4) + (get_local 7) + (i32.add) + (set_local 8) + (get_local 6) + (set_local 7) + (get_local 8) + (i32.const 1) + (i32.ne) + (br_if 0) + (br 2) + (end) + (unreachable) + (end) + (i32.const 1) + (set_local 5) + (get_local 7) + (set_local 6) + (end) + (get_local 9) + (get_local 6) + (i32.store align=4 offset=20) + (get_local 9) + (get_local 0) + (i32.store align=4 offset=16) + (get_local 9) + (i32.const 5) + (i32.const 0) + (get_local 5) + (select) + (i32.store align=4 offset=28) + (get_local 9) + (i32.const 7248) + (i32.const 7264) + (get_local 5) + (select) + (i32.store align=4 offset=24) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 2) + (get_local 1) + (i32.gt_u) + (tee_local 7) + (br_if 0) + (get_local 3) + (get_local 1) + (i32.gt_u) + (br_if 0) + (get_local 2) + (get_local 3) + (i32.gt_u) + (br_if 1) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.eqz) + (br_if 0) + (get_local 2) + (get_local 1) + (i32.eq) + (br_if 0) + (get_local 2) + (get_local 1) + (i32.ge_u) + (br_if 1) + (get_local 0) + (get_local 2) + (i32.add) + (i32.load8_s align=1) + (i32.const -64) + (i32.lt_s) + (br_if 1) + (end) + (get_local 3) + (set_local 2) + (end) + (get_local 9) + (get_local 2) + (i32.store align=4 offset=32) + (get_local 2) + (i32.eqz) + (set_local 8) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.eqz) + (br_if 0) + (get_local 2) + (get_local 1) + (i32.eq) + (br_if 0) + (get_local 1) + (i32.const 1) + (i32.add) + (set_local 5) + (block emptyblock) + (loop emptyblock) + (block emptyblock) + (get_local 2) + (get_local 1) + (i32.ge_u) + (br_if 0) + (get_local 0) + (get_local 2) + (i32.add) + (i32.load8_s align=1) + (i32.const -64) + (i32.ge_s) + (br_if 2) + (end) + (get_local 2) + (i32.const -1) + (i32.add) + (set_local 7) + (get_local 2) + (i32.const 1) + (i32.eq) + (tee_local 8) + (br_if 3) + (get_local 5) + (get_local 2) + (i32.eq) + (set_local 6) + (get_local 7) + (set_local 2) + (get_local 6) + (i32.eqz) + (br_if 0) + (br 3) + (end) + (unreachable) + (end) + (i32.const 0) + (set_local 8) + (end) + (get_local 2) + (set_local 7) + (end) + (block emptyblock) + (block emptyblock) + (get_local 8) + (br_if 0) + (get_local 7) + (get_local 1) + (i32.eq) + (br_if 0) + (block emptyblock) + (get_local 7) + (get_local 1) + (i32.ge_u) + (br_if 0) + (get_local 0) + (get_local 7) + (i32.add) + (tee_local 2) + (i32.load8_s align=1) + (i32.const -65) + (i32.gt_s) + (br_if 2) + (end) + (get_local 0) + (get_local 1) + (get_local 7) + (get_local 1) + (call 144) + (unreachable) + (end) + (get_local 0) + (get_local 7) + (i32.add) + (set_local 2) + (end) + (get_local 2) + (get_local 0) + (get_local 7) + (i32.add) + (tee_local 8) + (get_local 1) + (get_local 7) + (i32.sub) + (i32.add) + (tee_local 6) + (i32.eq) + (br_if 2) + (i32.const 1) + (set_local 1) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.load8_s align=1) + (tee_local 2) + (i32.const -1) + (i32.le_s) + (br_if 0) + (get_local 2) + (i32.const 255) + (i32.and) + (set_local 2) + (br 1) + (end) + (i32.const 0) + (set_local 5) + (get_local 6) + (set_local 0) + (block emptyblock) + (get_local 8) + (i32.const 1) + (i32.add) + (tee_local 4) + (get_local 6) + (i32.eq) + (br_if 0) + (get_local 4) + (i32.load8_u align=1) + (i32.const 63) + (i32.and) + (set_local 5) + (get_local 8) + (i32.const 2) + (i32.add) + (set_local 0) + (end) + (get_local 2) + (i32.const 31) + (i32.and) + (set_local 4) + (get_local 5) + (i32.const 255) + (i32.and) + (set_local 8) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.const 255) + (i32.and) + (i32.const 223) + (i32.le_u) + (br_if 0) + (i32.const 0) + (set_local 5) + (get_local 6) + (set_local 3) + (block emptyblock) + (get_local 0) + (get_local 6) + (i32.eq) + (br_if 0) + (get_local 0) + (i32.const 1) + (i32.add) + (set_local 3) + (get_local 0) + (i32.load8_u align=1) + (i32.const 63) + (i32.and) + (set_local 5) + (end) + (get_local 5) + (i32.const 255) + (i32.and) + (get_local 8) + (i32.const 6) + (i32.shl) + (i32.or) + (set_local 8) + (get_local 2) + (i32.const 255) + (i32.and) + (i32.const 240) + (i32.lt_u) + (br_if 1) + (i32.const 0) + (set_local 2) + (block emptyblock) + (get_local 3) + (get_local 6) + (i32.eq) + (br_if 0) + (get_local 3) + (i32.load8_u align=1) + (i32.const 63) + (i32.and) + (set_local 2) + (end) + (get_local 8) + (i32.const 6) + (i32.shl) + (get_local 4) + (i32.const 18) + (i32.shl) + (i32.const 1835008) + (i32.and) + (i32.or) + (get_local 2) + (i32.const 255) + (i32.and) + (i32.or) + (tee_local 2) + (i32.const 1114112) + (i32.eq) + (br_if 5) + (br 2) + (end) + (get_local 8) + (get_local 4) + (i32.const 6) + (i32.shl) + (i32.or) + (set_local 2) + (br 1) + (end) + (get_local 8) + (get_local 4) + (i32.const 12) + (i32.shl) + (i32.or) + (set_local 2) + (end) + (get_local 9) + (get_local 2) + (i32.store align=4 offset=36) + (block emptyblock) + (get_local 2) + (i32.const 128) + (i32.lt_u) + (br_if 0) + (i32.const 2) + (set_local 1) + (get_local 2) + (i32.const 2048) + (i32.lt_u) + (br_if 0) + (i32.const 3) + (i32.const 4) + (get_local 2) + (i32.const 65536) + (i32.lt_u) + (select) + (set_local 1) + (end) + (get_local 9) + (get_local 7) + (i32.store align=4 offset=40) + (get_local 9) + (get_local 1) + (get_local 7) + (i32.add) + (i32.store align=4 offset=44) + (get_local 9) + (i32.const 72) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 17) + (i32.store align=4) + (get_local 9) + (i32.const 72) + (i32.add) + (i32.const 20) + (i32.add) + (i32.const 18) + (i32.store align=4) + (get_local 9) + (i32.const 15) + (i32.store align=4 offset=76) + (get_local 9) + (get_local 9) + (i32.const 32) + (i32.add) + (i32.store align=4 offset=72) + (get_local 9) + (get_local 9) + (i32.const 36) + (i32.add) + (i32.store align=4 offset=80) + (get_local 9) + (get_local 9) + (i32.const 40) + (i32.add) + (i32.store align=4 offset=88) + (get_local 9) + (get_local 9) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=96) + (get_local 9) + (i32.const 100) + (i32.add) + (i32.const 11) + (i32.store align=4) + (get_local 9) + (get_local 9) + (i32.const 24) + (i32.add) + (i32.store align=4 offset=104) + (get_local 9) + (i32.const 108) + (i32.add) + (i32.const 11) + (i32.store align=4) + (get_local 9) + (i32.const 7628) + (i32.store align=4 offset=48) + (get_local 9) + (i32.const 5) + (i32.store align=4 offset=52) + (get_local 9) + (i32.const 7668) + (i32.store align=4 offset=56) + (get_local 9) + (i32.const 48) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 5) + (i32.store align=4) + (get_local 9) + (get_local 9) + (i32.const 72) + (i32.add) + (i32.store align=4 offset=64) + (get_local 9) + (i32.const 48) + (i32.add) + (i32.const 20) + (i32.add) + (i32.const 5) + (i32.store align=4) + (get_local 9) + (i32.const 48) + (i32.add) + (i32.const 7848) + (call 141) + (unreachable) + (end) + (get_local 9) + (get_local 2) + (get_local 3) + (get_local 7) + (select) + (i32.store align=4 offset=40) + (get_local 9) + (i32.const 72) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 11) + (i32.store align=4) + (get_local 9) + (i32.const 72) + (i32.add) + (i32.const 20) + (i32.add) + (i32.const 11) + (i32.store align=4) + (get_local 9) + (i32.const 15) + (i32.store align=4 offset=76) + (get_local 9) + (i32.const 3) + (i32.store align=4 offset=52) + (get_local 9) + (get_local 9) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=80) + (get_local 9) + (i32.const 7288) + (i32.store align=4 offset=56) + (get_local 9) + (get_local 9) + (i32.const 40) + (i32.add) + (i32.store align=4 offset=72) + (get_local 9) + (i32.const 7264) + (i32.store align=4 offset=48) + (get_local 9) + (get_local 9) + (i32.const 24) + (i32.add) + (i32.store align=4 offset=88) + (get_local 9) + (i32.const 48) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 3) + (i32.store align=4) + (get_local 9) + (get_local 9) + (i32.const 72) + (i32.add) + (i32.store align=4 offset=64) + (get_local 9) + (i32.const 48) + (i32.add) + (i32.const 20) + (i32.add) + (i32.const 3) + (i32.store align=4) + (get_local 9) + (i32.const 48) + (i32.add) + (i32.const 7396) + (call 141) + (unreachable) + (end) + (get_local 9) + (i32.const 72) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 15) + (i32.store align=4) + (get_local 9) + (i32.const 72) + (i32.add) + (i32.const 20) + (i32.add) + (i32.const 11) + (i32.store align=4) + (get_local 9) + (i32.const 15) + (i32.store align=4 offset=76) + (get_local 9) + (get_local 9) + (i32.const 8) + (i32.add) + (i32.store align=4 offset=72) + (get_local 9) + (get_local 9) + (i32.const 12) + (i32.add) + (i32.store align=4 offset=80) + (get_local 9) + (get_local 9) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=88) + (get_local 9) + (get_local 9) + (i32.const 24) + (i32.add) + (i32.store align=4 offset=96) + (get_local 9) + (i32.const 100) + (i32.add) + (i32.const 11) + (i32.store align=4) + (get_local 9) + (i32.const 7412) + (i32.store align=4 offset=48) + (get_local 9) + (i32.const 4) + (i32.store align=4 offset=52) + (get_local 9) + (i32.const 7444) + (i32.store align=4 offset=56) + (get_local 9) + (i32.const 48) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 4) + (i32.store align=4) + (get_local 9) + (get_local 9) + (i32.const 72) + (i32.add) + (i32.store align=4 offset=64) + (get_local 9) + (i32.const 48) + (i32.add) + (i32.const 20) + (i32.add) + (i32.const 4) + (i32.store align=4) + (get_local 9) + (i32.const 48) + (i32.add) + (i32.const 7588) + (call 141) + (unreachable) + (end) + (i32.const 7604) + (call 139) + (unreachable) + ) + (func 145 (type 15) (local i32 i32 i32 i32 i32 i32 i32 i64) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 48) + (i32.sub) + (tee_local 12) + (i32.store align=4 offset=4) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 2) + (get_local 4) + (i32.ne) + (br_if 0) + (get_local 2) + (i32.const 8) + (i32.le_u) + (br_if 1) + (get_local 2) + (get_local 3) + (call 110) + (tee_local 4) + (i32.eqz) + (br_if 2) + (get_local 4) + (get_local 0) + (get_local 1) + (get_local 3) + (get_local 1) + (get_local 3) + (i32.le_u) + (select) + (call 112) + (set_local 2) + (get_local 0) + (call 109) + (get_local 2) + (set_local 0) + (br 15) + (end) + (i32.const 1) + (set_local 4) + (i32.const 4416) + (set_local 3) + (i32.const 36) + (set_local 2) + (br 13) + (end) + (i32.const 0) + (set_local 4) + (get_local 3) + (i32.const -65) + (i32.gt_u) + (br_if 12) + (i32.const 16) + (get_local 3) + (i32.const 11) + (i32.add) + (i32.const -8) + (i32.and) + (get_local 3) + (i32.const 11) + (i32.lt_u) + (select) + (set_local 1) + (get_local 0) + (i32.const -4) + (i32.add) + (tee_local 7) + (i32.load align=4) + (tee_local 8) + (i32.const -8) + (i32.and) + (set_local 9) + (get_local 8) + (i32.const 3) + (i32.and) + (i32.eqz) + (br_if 1) + (get_local 0) + (i32.const -8) + (i32.add) + (set_local 6) + (get_local 9) + (get_local 1) + (i32.ge_u) + (br_if 2) + (get_local 6) + (get_local 9) + (i32.add) + (tee_local 10) + (i32.const 0) + (i32.load align=4 offset=4368) + (i32.eq) + (br_if 3) + (get_local 10) + (i32.const 0) + (i32.load align=4 offset=4364) + (i32.eq) + (br_if 4) + (get_local 10) + (i32.load align=4 offset=4) + (tee_local 8) + (i32.const 2) + (i32.and) + (br_if 5) + (get_local 8) + (i32.const -8) + (i32.and) + (tee_local 11) + (get_local 9) + (i32.add) + (tee_local 9) + (get_local 1) + (i32.lt_u) + (br_if 5) + (get_local 9) + (get_local 1) + (i32.sub) + (set_local 4) + (get_local 11) + (i32.const 255) + (i32.gt_u) + (br_if 7) + (get_local 10) + (i32.load align=4 offset=12) + (tee_local 2) + (get_local 10) + (i32.load align=4 offset=8) + (tee_local 3) + (i32.eq) + (br_if 8) + (get_local 3) + (get_local 2) + (i32.store align=4 offset=12) + (get_local 2) + (get_local 3) + (i32.store align=4 offset=8) + (br 11) + (end) + (i32.const 0) + (set_local 4) + (br 11) + (end) + (get_local 1) + (i32.const 256) + (i32.lt_u) + (br_if 3) + (get_local 9) + (get_local 1) + (i32.const 4) + (i32.or) + (i32.lt_u) + (br_if 3) + (get_local 9) + (get_local 1) + (i32.sub) + (i32.const 131073) + (i32.lt_u) + (br_if 11) + (br 3) + (end) + (get_local 9) + (get_local 1) + (i32.sub) + (tee_local 2) + (i32.const 16) + (i32.lt_u) + (br_if 10) + (get_local 7) + (get_local 1) + (get_local 8) + (i32.const 1) + (i32.and) + (i32.or) + (i32.const 2) + (i32.or) + (i32.store align=4) + (get_local 6) + (get_local 1) + (i32.add) + (tee_local 3) + (get_local 2) + (i32.const 3) + (i32.or) + (i32.store align=4 offset=4) + (get_local 3) + (get_local 2) + (i32.add) + (tee_local 5) + (get_local 5) + (i32.load align=4 offset=4) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 3) + (get_local 2) + (call 108) + (br 10) + (end) + (i32.const 0) + (i32.load align=4 offset=4360) + (get_local 9) + (i32.add) + (tee_local 9) + (get_local 1) + (i32.le_u) + (br_if 1) + (get_local 7) + (get_local 1) + (get_local 8) + (i32.const 1) + (i32.and) + (i32.or) + (i32.const 2) + (i32.or) + (i32.store align=4) + (i32.const 0) + (get_local 6) + (get_local 1) + (i32.add) + (tee_local 2) + (i32.store align=4 offset=4368) + (i32.const 0) + (get_local 9) + (get_local 1) + (i32.sub) + (tee_local 3) + (i32.store align=4 offset=4360) + (get_local 2) + (get_local 3) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (br 9) + (end) + (i32.const 0) + (i32.load align=4 offset=4356) + (get_local 9) + (i32.add) + (tee_local 9) + (get_local 1) + (i32.ge_u) + (br_if 1) + (end) + (get_local 3) + (call 107) + (tee_local 1) + (i32.eqz) + (br_if 6) + (get_local 1) + (get_local 0) + (get_local 7) + (i32.load align=4) + (tee_local 2) + (i32.const -8) + (i32.and) + (i32.const 4) + (i32.const 8) + (get_local 2) + (i32.const 3) + (i32.and) + (select) + (i32.sub) + (tee_local 2) + (get_local 3) + (get_local 2) + (get_local 3) + (i32.le_u) + (select) + (call 112) + (set_local 2) + (get_local 0) + (call 109) + (get_local 2) + (set_local 0) + (br 7) + (end) + (block emptyblock) + (block emptyblock) + (get_local 9) + (get_local 1) + (i32.sub) + (tee_local 2) + (i32.const 16) + (i32.ge_u) + (br_if 0) + (get_local 7) + (get_local 8) + (i32.const 1) + (i32.and) + (get_local 9) + (i32.or) + (i32.const 2) + (i32.or) + (i32.store align=4) + (get_local 6) + (get_local 9) + (i32.add) + (tee_local 2) + (get_local 2) + (i32.load align=4 offset=4) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (i32.const 0) + (set_local 2) + (i32.const 0) + (set_local 3) + (br 1) + (end) + (get_local 7) + (get_local 1) + (get_local 8) + (i32.const 1) + (i32.and) + (i32.or) + (i32.const 2) + (i32.or) + (i32.store align=4) + (get_local 6) + (get_local 1) + (i32.add) + (tee_local 3) + (get_local 2) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 3) + (get_local 2) + (i32.add) + (tee_local 5) + (get_local 2) + (i32.store align=4) + (get_local 5) + (get_local 5) + (i32.load align=4 offset=4) + (i32.const -2) + (i32.and) + (i32.store align=4 offset=4) + (end) + (i32.const 0) + (get_local 3) + (i32.store align=4 offset=4364) + (i32.const 0) + (get_local 2) + (i32.store align=4 offset=4356) + (br 6) + (end) + (get_local 10) + (i32.load align=4 offset=24) + (set_local 8) + (get_local 10) + (i32.load align=4 offset=12) + (tee_local 2) + (get_local 10) + (i32.eq) + (br_if 1) + (get_local 10) + (i32.load align=4 offset=8) + (tee_local 3) + (get_local 2) + (i32.store align=4 offset=12) + (get_local 2) + (get_local 3) + (i32.store align=4 offset=8) + (get_local 8) + (br_if 2) + (br 3) + (end) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=3956) + (i32.const -2) + (get_local 8) + (i32.const 3) + (i32.shr_u) + (i32.rotl) + (i32.and) + (i32.store align=4 offset=3956) + (br 2) + (end) + (block emptyblock) + (get_local 10) + (i32.const 20) + (i32.add) + (get_local 10) + (i32.const 16) + (i32.add) + (get_local 10) + (i32.load align=4 offset=20) + (select) + (tee_local 3) + (i32.load align=4) + (tee_local 2) + (i32.eqz) + (br_if 0) + (loop emptyblock) + (get_local 3) + (set_local 5) + (get_local 2) + (i32.const 20) + (i32.add) + (tee_local 3) + (get_local 2) + (i32.const 16) + (i32.add) + (get_local 3) + (i32.load align=4) + (select) + (tee_local 3) + (i32.load align=4) + (tee_local 2) + (br_if 0) + (end) + (get_local 5) + (i32.load align=4) + (set_local 2) + (get_local 5) + (i32.const 0) + (i32.store align=4) + (get_local 8) + (br_if 1) + (br 2) + (end) + (i32.const 0) + (set_local 2) + (get_local 8) + (i32.eqz) + (br_if 1) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 10) + (i32.load align=4 offset=28) + (tee_local 5) + (i32.const 2) + (i32.shl) + (i32.const 4228) + (i32.add) + (tee_local 3) + (i32.load align=4) + (get_local 10) + (i32.eq) + (br_if 0) + (get_local 8) + (i32.const 16) + (i32.add) + (get_local 8) + (i32.load align=4 offset=16) + (get_local 10) + (i32.ne) + (i32.const 2) + (i32.shl) + (i32.add) + (get_local 2) + (i32.store align=4) + (get_local 2) + (br_if 1) + (br 3) + (end) + (get_local 3) + (get_local 2) + (i32.store align=4) + (get_local 2) + (i32.eqz) + (br_if 1) + (end) + (get_local 2) + (get_local 8) + (i32.store align=4 offset=24) + (block emptyblock) + (get_local 10) + (i32.load align=4 offset=16) + (tee_local 3) + (i32.eqz) + (br_if 0) + (get_local 2) + (get_local 3) + (i32.store align=4 offset=16) + (get_local 3) + (get_local 2) + (i32.store align=4 offset=24) + (end) + (get_local 10) + (i32.load align=4 offset=20) + (tee_local 3) + (i32.eqz) + (br_if 1) + (get_local 2) + (i32.const 20) + (i32.add) + (get_local 3) + (i32.store align=4) + (get_local 3) + (get_local 2) + (i32.store align=4 offset=24) + (br 1) + (end) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=3960) + (i32.const -2) + (get_local 5) + (i32.rotl) + (i32.and) + (i32.store align=4 offset=3960) + (end) + (block emptyblock) + (get_local 4) + (i32.const 15) + (i32.gt_u) + (br_if 0) + (get_local 7) + (get_local 9) + (get_local 7) + (i32.load align=4) + (i32.const 1) + (i32.and) + (i32.or) + (i32.const 2) + (i32.or) + (i32.store align=4) + (get_local 6) + (get_local 9) + (i32.add) + (tee_local 2) + (get_local 2) + (i32.load align=4 offset=4) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (br 2) + (end) + (get_local 7) + (get_local 1) + (get_local 7) + (i32.load align=4) + (i32.const 1) + (i32.and) + (i32.or) + (i32.const 2) + (i32.or) + (i32.store align=4) + (get_local 6) + (get_local 1) + (i32.add) + (tee_local 2) + (get_local 4) + (i32.const 3) + (i32.or) + (i32.store align=4 offset=4) + (get_local 2) + (get_local 4) + (i32.add) + (tee_local 3) + (get_local 3) + (i32.load align=4 offset=4) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 2) + (get_local 4) + (call 108) + (br 1) + (end) + (get_local 12) + (get_local 3) + (i32.store align=4 offset=16) + (get_local 12) + (get_local 4) + (i32.store align=4 offset=12) + (get_local 12) + (get_local 2) + (i32.store align=4 offset=20) + (get_local 12) + (i32.const 24) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 2) + (get_local 12) + (i32.load align=4 offset=20) + (i32.store align=4) + (get_local 12) + (get_local 12) + (i64.load align=4 offset=12) + (i64.store align=4 offset=24) + (get_local 12) + (i32.const 36) + (i32.add) + (i32.const 8) + (i32.add) + (get_local 2) + (i32.load align=4) + (tee_local 2) + (i32.store align=4) + (get_local 5) + (i32.const 8) + (i32.add) + (get_local 2) + (i32.store align=4) + (get_local 5) + (get_local 12) + (i64.load align=4 offset=24) + (tee_local 13) + (i64.store align=4) + (get_local 12) + (get_local 13) + (i64.store align=4 offset=36) + (i32.const 0) + (set_local 0) + (end) + (i32.const 0) + (get_local 12) + (i32.const 48) + (i32.add) + (i32.store align=4 offset=4) + (get_local 0) + ) + (func 146 (type 1) + (unreachable) + ) + (func 147 (type 1) (local i32 i32) + (get_local 0) + (get_local 1) + (call 33) + (drop) + ) + (data (i32.const 4) "\f0\1f\10\00") + (data (i32.const 16) "\61\73\73\65\72\74\69\6f\6e\20\66\61\69\6c\65\64\3a\20\69\6e\64\65\78\20\3c\20\6c\65\6e") + (data (i32.const 48) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\61\6c\6c\6f\63\2f\76\65\63\2e\72\73") + (data (i32.const 80) "\10\00\00\00\1d\00\00\00\30\00\00\00\1d\00\00\00\01\03\00\00\08\00\00\00") + (data (i32.const 112) "\63\61\6c\6c\65\64\20\60\4f\70\74\69\6f\6e\3a\3a\75\6e\77\72\61\70\28\29\60\20\6f\6e\20\61\20\60\4e\6f\6e\65\60\20\76\61\6c\75\65") + (data (i32.const 160) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\63\6f\72\65\2f\6f\70\74\69\6f\6e\2e\72\73") + (data (i32.const 192) "\70\00\00\00\2b\00\00\00\a0\00\00\00\1f\00\00\00\4f\01\00\00\14\00\00\00") + (data (i32.const 224) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\73\74\64\2f\73\79\73\2f\77\61\73\6d\2f\6d\75\74\65\78\2e\72\73") + (data (i32.const 264) "\e0\00\00\00\26\00\00\00\20\00\00\00\08\00\00\00") + (data (i32.const 288) "\63\61\6e\6e\6f\74\20\72\65\63\75\72\73\69\76\65\6c\79\20\61\63\71\75\69\72\65\20\6d\75\74\65\78") + (data (i32.const 320) "\13\00\00\00\04\00\00\00\04\00\00\00\14\00\00\00\15\00\00\00") + (data (i32.const 340) "\16\00\00\00\08\00\00\00\04\00\00\00\17\00\00\00") + (data (i32.const 368) "\63\61\6c\6c\65\64\20\60\52\65\73\75\6c\74\3a\3a\75\6e\77\72\61\70\28\29\60\20\6f\6e\20\61\6e\20\60\45\72\72\60\20\76\61\6c\75\65") + (data (i32.const 416) "\63\61\70\61\63\69\74\79\20\6f\76\65\72\66\6c\6f\77") + (data (i32.const 448) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\61\6c\6c\6f\63\2f\72\61\77\5f\76\65\63\2e\72\73") + (data (i32.const 496) "\3a\20") + (data (i32.const 500) "\f0\01\00\00\00\00\00\00\f0\01\00\00\02\00\00\00") + (data (i32.const 528) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\63\6f\72\65\2f\72\65\73\75\6c\74\2e\72\73") + (data (i32.const 560) "\10\02\00\00\1f\00\00\00\8a\03\00\00\04\00\00\00") + (data (i32.const 576) "\72\61\6e\64\5c\73\72\63\5c\6c\69\62\2e\72\73") + (data (i32.const 592) "\40\02\00\00\0f\00\00\00\fa\01\00\00\08\00\00\00") + (data (i32.const 608) "\52\6e\67\2e\67\65\6e\5f\72\61\6e\67\65\20\63\61\6c\6c\65\64\20\77\69\74\68\20\6c\6f\77\20\3e\3d\20\68\69\67\68") + (data (i32.const 648) "\a0\01\00\00\11\00\00\00\c0\01\00\00\21\00\00\00\ca\02\00\00\08\00\00\00") + (data (i32.const 672) "\30\00\00\00\1d\00\00\00\0f\06\00\00\0a\00\00\00") + (data (i32.const 688) "\50\6f\69\73\6f\6e\45\72\72\6f\72\20\7b\20\69\6e\6e\65\72\3a\20\2e\2e\20\7d") + (data (i32.const 720) "\73\72\63\5c\67\65\6f\6d\65\74\72\79\5c\70\6f\69\6e\74\2e\72\73") + (data (i32.const 744) "\d0\02\00\00\15\00\00\00\9c\00\00\00\08\00\00\00") + (data (i32.const 768) "\61\73\73\65\72\74\69\6f\6e\20\66\61\69\6c\65\64\3a\20\5f\72\68\73\20\21\3d\20\30\66\36\34") + (data (i32.const 808) "\70\03\00\00\00\00\00\00\70\03\00\00\02\00\00\00") + (data (i32.const 824) "\50\03\00\00\1f\00\00\00\8a\03\00\00\04\00\00\00") + (data (i32.const 848) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\63\6f\72\65\2f\72\65\73\75\6c\74\2e\72\73") + (data (i32.const 880) "\3a\20") + (data (i32.const 896) "\50\6f\69\73\6f\6e\45\72\72\6f\72\20\7b\20\69\6e\6e\65\72\3a\20\2e\2e\20\7d") + (data (i32.const 928) "\63\61\6e\6e\6f\74\20\72\65\63\75\72\73\69\76\65\6c\79\20\61\63\71\75\69\72\65\20\6d\75\74\65\78") + (data (i32.const 960) "\d0\03\00\00\26\00\00\00\20\00\00\00\08\00\00\00") + (data (i32.const 976) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\73\74\64\2f\73\79\73\2f\77\61\73\6d\2f\6d\75\74\65\78\2e\72\73") + (data (i32.const 1024) "\00") + (data (i32.const 1028) "\00\00\00\00") + (data (i32.const 1040) "\69\6e\74\65\72\6e\61\6c\20\65\72\72\6f\72\3a\20\65\6e\74\65\72\65\64\20\75\6e\72\65\61\63\68\61\62\6c\65\20\63\6f\64\65") + (data (i32.const 1080) "\50\04\00\00\2c\00\00\00\9a\00\00\00\0d\00\00\00") + (data (i32.const 1104) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\73\74\64\2f\73\79\73\5f\63\6f\6d\6d\6f\6e\2f\62\61\63\6b\74\72\61\63\65\2e\72\73") + (data (i32.const 1148) "\18\00\00\00\04\00\00\00\04\00\00\00\19\00\00\00\1a\00\00\00\1b\00\00\00") + (data (i32.const 1184) "\61\74\74\65\6d\70\74\65\64\20\74\6f\20\75\73\65\20\61\20\63\6f\6e\64\69\74\69\6f\6e\20\76\61\72\69\61\62\6c\65\20\77\69\74\68\20\74\77\6f\20\6d\75\74\65\78\65\73") + (data (i32.const 1240) "\f0\04\00\00\24\00\00\00\c3\01\00\00\11\00\00\00") + (data (i32.const 1264) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\73\74\64\2f\73\79\6e\63\2f\63\6f\6e\64\76\61\72\2e\72\73") + (data (i32.const 1312) "\53\74\72\69\6e\67\45\72\72\6f\72") + (data (i32.const 1324) "\1c\00\00\00\04\00\00\00\04\00\00\00\1d\00\00\00") + (data (i32.const 1340) "\1e\00\00\00\0c\00\00\00\04\00\00\00\1f\00\00\00\20\00\00\00\21\00\00\00\22\00\00\00\23\00\00\00") + (data (i32.const 1376) "\6f\70\65\72\61\74\69\6f\6e\20\6e\6f\74\20\73\75\70\70\6f\72\74\65\64\20\6f\6e\20\77\61\73\6d\20\79\65\74") + (data (i32.const 1424) "\4e\75\6c\45\72\72\6f\72") + (data (i32.const 1432) "\24\00\00\00\04\00\00\00\04\00\00\00\0d\00\00\00") + (data (i32.const 1448) "\25\00\00\00\04\00\00\00\04\00\00\00\26\00\00\00") + (data (i32.const 1472) "\75\73\65\20\6f\66\20\73\74\64\3a\3a\74\68\72\65\61\64\3a\3a\63\75\72\72\65\6e\74\28\29\20\69\73\20\6e\6f\74\20\70\6f\73\73\69\62\6c\65\20\61\66\74\65\72\20\74\68\65\20\74\68\72\65\61\64\27\73\20\6c\6f\63\61\6c\20\64\61\74\61\20\68\61\73\20\62\65\65\6e\20\64\65\73\74\72\6f\79\65\64") + (data (i32.const 1568) "\63\61\6c\6c\65\64\20\60\52\65\73\75\6c\74\3a\3a\75\6e\77\72\61\70\28\29\60\20\6f\6e\20\61\6e\20\60\45\72\72\60\20\76\61\6c\75\65") + (data (i32.const 1616) "\69\6e\63\6f\6e\73\69\73\74\65\6e\74\20\70\61\72\6b\20\73\74\61\74\65") + (data (i32.const 1640) "\80\06\00\00\22\00\00\00\1d\03\00\00\12\00\00\00") + (data (i32.const 1664) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\73\74\64\2f\74\68\72\65\61\64\2f\6d\6f\64\2e\72\73") + (data (i32.const 1712) "\74\68\72\65\61\64\20\6e\61\6d\65\20\6d\61\79\20\6e\6f\74\20\63\6f\6e\74\61\69\6e\20\69\6e\74\65\72\69\6f\72\20\6e\75\6c\6c\20\62\79\74\65\73") + (data (i32.const 1760) "\00") + (data (i32.const 1776) "\63\61\6e\6e\6f\74\20\72\65\63\75\72\73\69\76\65\6c\79\20\61\63\71\75\69\72\65\20\6d\75\74\65\78") + (data (i32.const 1808) "\80\07\00\00\26\00\00\00\20\00\00\00\08\00\00\00") + (data (i32.const 1824) "\00\00\00\00\00\00\00\00") + (data (i32.const 1840) "\66\61\69\6c\65\64\20\74\6f\20\67\65\6e\65\72\61\74\65\20\75\6e\69\71\75\65\20\74\68\72\65\61\64\20\49\44\3a\20\62\69\74\73\70\61\63\65\20\65\78\68\61\75\73\74\65\64") + (data (i32.const 1896) "\80\06\00\00\22\00\00\00\ad\03\00\00\10\00\00\00") + (data (i32.const 1920) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\73\74\64\2f\73\79\73\2f\77\61\73\6d\2f\6d\75\74\65\78\2e\72\73") + (data (i32.const 1968) "\69\6e\63\6f\6e\73\69\73\74\65\6e\74\20\73\74\61\74\65\20\69\6e\20\75\6e\70\61\72\6b") + (data (i32.const 1996) "\80\06\00\00\22\00\00\00\1f\04\00\00\15\00\00\00") + (data (i32.const 2012) "\80\06\00\00\22\00\00\00\28\04\00\00\15\00\00\00") + (data (i32.const 2032) "\63\61\70\61\63\69\74\79\20\6f\76\65\72\66\6c\6f\77") + (data (i32.const 2052) "\f0\07\00\00\11\00\00\00\20\08\00\00\21\00\00\00\ca\02\00\00\08\00\00\00") + (data (i32.const 2080) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\61\6c\6c\6f\63\2f\72\61\77\5f\76\65\63\2e\72\73") + (data (i32.const 2116) "\60\08\00\00\24\00\00\00\20\08\00\00\21\00\00\00\6d\02\00\00\08\00\00\00") + (data (i32.const 2144) "\54\72\69\65\64\20\74\6f\20\73\68\72\69\6e\6b\20\74\6f\20\61\20\6c\61\72\67\65\72\20\63\61\70\61\63\69\74\79") + (data (i32.const 2180) "\27\00\00\00\04\00\00\00\04\00\00\00\28\00\00\00\29\00\00\00\2a\00\00\00") + (data (i32.const 2208) "\63\61\6e\6e\6f\74\20\72\65\63\75\72\73\69\76\65\6c\79\20\61\63\71\75\69\72\65\20\6d\75\74\65\78") + (data (i32.const 2240) "\d0\08\00\00\26\00\00\00\20\00\00\00\08\00\00\00") + (data (i32.const 2256) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\73\74\64\2f\73\79\73\2f\77\61\73\6d\2f\6d\75\74\65\78\2e\72\73") + (data (i32.const 2296) "\00\00\00\00") + (data (i32.const 2304) "\61\73\73\65\72\74\69\6f\6e\20\66\61\69\6c\65\64\3a\20\71\75\65\75\65\20\61\73\20\75\73\69\7a\65\20\21\3d\20\31") + (data (i32.const 2344) "\40\09\00\00\2e\00\00\00\37\00\00\00\0c\00\00\00") + (data (i32.const 2368) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\73\74\64\2f\73\79\73\5f\63\6f\6d\6d\6f\6e\2f\61\74\5f\65\78\69\74\5f\69\6d\70\2e\72\73") + (data (i32.const 2416) "\00\00\00\00\2b\00\00\00") + (data (i32.const 2424) "\00\00\00\00") + (data (i32.const 2432) "\6d\61\69\6e") + (data (i32.const 2448) "\63\61\6e\27\74\20\62\6c\6f\63\6b\20\77\69\74\68\20\77\65\62\20\61\73\73\65\6d\62\6c\79") + (data (i32.const 2480) "\c0\09\00\00\28\00\00\00\21\00\00\00\08\00\00\00") + (data (i32.const 2496) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\73\74\64\2f\73\79\73\2f\77\61\73\6d\2f\63\6f\6e\64\76\61\72\2e\72\73") + (data (i32.const 2536) "\2c\00\00\00\04\00\00\00\04\00\00\00\2d\00\00\00") + (data (i32.const 2552) "\2e\00\00\00\0c\00\00\00\04\00\00\00\2f\00\00\00") + (data (i32.const 2568) "\d0\0b\00\00\32\00\00\00") + (data (i32.const 2576) "\00\00\00\00") + (data (i32.const 2592) "\72\77\6c\6f\63\6b\20\6c\6f\63\6b\65\64\20\66\6f\72\20\77\72\69\74\69\6e\67") + (data (i32.const 2620) "\a0\0b\00\00\27\00\00\00\21\00\00\00\0c\00\00\00") + (data (i32.const 2636) "\60\0a\00\00\2b\00\00\00") + (data (i32.const 2656) "\74\68\72\65\61\64\20\70\61\6e\69\63\6b\65\64\20\77\68\69\6c\65\20\70\61\6e\69\63\6b\69\6e\67\2e\20\61\62\6f\72\74\69\6e\67\2e\0a") + (data (i32.const 2704) "\3c\75\6e\6e\61\6d\65\64\3e") + (data (i32.const 2720) "\42\6f\78\3c\41\6e\79\3e") + (data (i32.const 2728) "\30\00\00\00\04\00\00\00\04\00\00\00\31\00\00\00\32\00\00\00\33\00\00\00\34\00\00\00\00\00\00\00") + (data (i32.const 2760) "\50\0b\00\00\08\00\00\00\60\0b\00\00\0f\00\00\00\70\0b\00\00\03\00\00\00\80\0b\00\00\01\00\00\00\80\0b\00\00\01\00\00\00\90\0b\00\00\01\00\00\00") + (data (i32.const 2816) "\01") + (data (i32.const 2820) "\10\0b\00\00\33\00\00\00") + (data (i32.const 2832) "\6e\6f\74\65\3a\20\52\75\6e\20\77\69\74\68\20\60\52\55\53\54\5f\42\41\43\4b\54\52\41\43\45\3d\31\60\20\66\6f\72\20\61\20\62\61\63\6b\74\72\61\63\65\2e\0a") + (data (i32.const 2896) "\74\68\72\65\61\64\20\27") + (data (i32.const 2912) "\27\20\70\61\6e\69\63\6b\65\64\20\61\74\20\27") + (data (i32.const 2928) "\27\2c\20") + (data (i32.const 2944) "\3a") + (data (i32.const 2960) "\0a") + (data (i32.const 2964) "\00\00\00\00\35\00\00\00") + (data (i32.const 2976) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\73\74\64\2f\73\79\73\2f\77\61\73\6d\2f\72\77\6c\6f\63\6b\2e\72\73") + (data (i32.const 3024) "\74\68\72\65\61\64\20\70\61\6e\69\63\6b\65\64\20\77\68\69\6c\65\20\70\72\6f\63\65\73\73\69\6e\67\20\70\61\6e\69\63\2e\20\61\62\6f\72\74\69\6e\67\2e\0a") + (data (i32.const 3076) "\00\00\00\00\36\00\00\00") + (data (i32.const 3084) "\37\00\00\00\08\00\00\00\04\00\00\00\38\00\00\00") + (data (i32.const 3104) "\41\63\63\65\73\73\45\72\72\6f\72") + (data (i32.const 3116) "\a0\0c\00\00\2b\00\00\00\d0\0c\00\00\1f\00\00\00\4f\01\00\00\14\00\00\00") + (data (i32.const 3152) "\61\6c\72\65\61\64\79\20\62\6f\72\72\6f\77\65\64") + (data (i32.const 3168) "\63\61\6e\6e\6f\74\20\61\63\63\65\73\73\20\61\20\54\4c\53\20\76\61\6c\75\65\20\64\75\72\69\6e\67\20\6f\72\20\61\66\74\65\72\20\69\74\20\69\73\20\64\65\73\74\72\6f\79\65\64") + (data (i32.const 3232) "\63\61\6c\6c\65\64\20\60\4f\70\74\69\6f\6e\3a\3a\75\6e\77\72\61\70\28\29\60\20\6f\6e\20\61\20\60\4e\6f\6e\65\60\20\76\61\6c\75\65") + (data (i32.const 3280) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\63\6f\72\65\2f\6f\70\74\69\6f\6e\2e\72\73") + (data (i32.const 3312) "\61\6c\72\65\61\64\79\20\6d\75\74\61\62\6c\79\20\62\6f\72\72\6f\77\65\64") + (data (i32.const 3344) "\61\73\73\65\72\74\69\6f\6e\20\66\61\69\6c\65\64\3a\20\63\2e\62\6f\72\72\6f\77\28\29\2e\69\73\5f\6e\6f\6e\65\28\29") + (data (i32.const 3384) "\50\0d\00\00\2e\00\00\00\2e\00\00\00\19\00\00\00") + (data (i32.const 3408) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\73\74\64\2f\73\79\73\5f\63\6f\6d\6d\6f\6e\2f\74\68\72\65\61\64\5f\69\6e\66\6f\2e\72\73") + (data (i32.const 3456) "\66\61\69\6c\65\64\20\74\6f\20\77\72\69\74\65\20\77\68\6f\6c\65\20\62\75\66\66\65\72") + (data (i32.const 3484) "\39\00\00\00\0c\00\00\00\04\00\00\00\3a\00\00\00\3b\00\00\00\3c\00\00\00") + (data (i32.const 3520) "\66\6f\72\6d\61\74\74\65\72\20\65\72\72\6f\72") + (data (i32.const 3536) "\3d\00\00\00\04\00\00\00\04\00\00\00\3e\00\00\00\3f\00\00\00") + (data (i32.const 3568) "\4f\6e\63\65\20\69\6e\73\74\61\6e\63\65\20\68\61\73\20\70\72\65\76\69\6f\75\73\6c\79\20\62\65\65\6e\20\70\6f\69\73\6f\6e\65\64") + (data (i32.const 3612) "\70\0e\00\00\21\00\00\00\3c\01\00\00\14\00\00\00") + (data (i32.const 3632) "\61\73\73\65\72\74\69\6f\6e\20\66\61\69\6c\65\64\3a\20\73\74\61\74\65\20\26\20\53\54\41\54\45\5f\4d\41\53\4b\20\3d\3d\20\52\55\4e\4e\49\4e\47") + (data (i32.const 3680) "\70\0e\00\00\21\00\00\00\60\01\00\00\14\00\00\00") + (data (i32.const 3696) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\73\74\64\2f\73\79\6e\63\2f\6f\6e\63\65\2e\72\73") + (data (i32.const 3732) "\02\00\00\00") + (data (i32.const 3736) "\30\0f\00\00\2d\00\00\00\60\0f\00\00\0c\00\00\00\70\0f\00\00\01\00\00\00") + (data (i32.const 3760) "\70\0e\00\00\21\00\00\00\92\01\00\00\08\00\00\00") + (data (i32.const 3776) "\e0\0e\00\00\2b\00\00\00\10\0f\00\00\1f\00\00\00\4f\01\00\00\14\00\00\00") + (data (i32.const 3808) "\63\61\6c\6c\65\64\20\60\4f\70\74\69\6f\6e\3a\3a\75\6e\77\72\61\70\28\29\60\20\6f\6e\20\61\20\60\4e\6f\6e\65\60\20\76\61\6c\75\65") + (data (i32.const 3856) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\63\6f\72\65\2f\6f\70\74\69\6f\6e\2e\72\73") + (data (i32.const 3888) "\61\73\73\65\72\74\69\6f\6e\20\66\61\69\6c\65\64\3a\20\60\28\6c\65\66\74\20\3d\3d\20\72\69\67\68\74\29\60\0a\20\20\6c\65\66\74\3a\20\60") + (data (i32.const 3936) "\60\2c\0a\20\72\69\67\68\74\3a\20\60") + (data (i32.const 3952) "\60") + (data (i32.const 3956) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4416) "\63\61\6e\6e\6f\74\20\63\68\61\6e\67\65\20\61\6c\69\67\6e\6d\65\6e\74\20\6f\6e\20\60\72\65\61\6c\6c\6f\63\60") + (data (i32.const 4452) "\80\11\00\00\11\00\00\00\a0\11\00\00\21\00\00\00\ca\02\00\00\08\00\00\00") + (data (i32.const 4480) "\63\61\70\61\63\69\74\79\20\6f\76\65\72\66\6c\6f\77") + (data (i32.const 4512) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\61\6c\6c\6f\63\2f\72\61\77\5f\76\65\63\2e\72\73") + (data (i32.const 4548) "\30\30\30\31\30\32\30\33\30\34\30\35\30\36\30\37\30\38\30\39\31\30\31\31\31\32\31\33\31\34\31\35\31\36\31\37\31\38\31\39\32\30\32\31\32\32\32\33\32\34\32\35\32\36\32\37\32\38\32\39\33\30\33\31\33\32\33\33\33\34\33\35\33\36\33\37\33\38\33\39\34\30\34\31\34\32\34\33\34\34\34\35\34\36\34\37\34\38\34\39\35\30\35\31\35\32\35\33\35\34\35\35\35\36\35\37\35\38\35\39\36\30\36\31\36\32\36\33\36\34\36\35\36\36\36\37\36\38\36\39\37\30\37\31\37\32\37\33\37\34\37\35\37\36\37\37\37\38\37\39\38\30\38\31\38\32\38\33\38\34\38\35\38\36\38\37\38\38\38\39\39\30\39\31\39\32\39\33\39\34\39\35\39\36\39\37\39\38\39\39") + (data (i32.const 4752) "\d0\12\00\00\20\00\00\00\13\04\00\00\11\00\00\00") + (data (i32.const 4768) "\f0\12\00\00\2b\00\00\00\20\13\00\00\1f\00\00\00\4f\01\00\00\14\00\00\00") + (data (i32.const 4792) "\d0\12\00\00\20\00\00\00\07\04\00\00\28\00\00\00") + (data (i32.const 4816) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\63\6f\72\65\2f\66\6d\74\2f\6d\6f\64\2e\72\73") + (data (i32.const 4848) "\63\61\6c\6c\65\64\20\60\4f\70\74\69\6f\6e\3a\3a\75\6e\77\72\61\70\28\29\60\20\6f\6e\20\61\20\60\4e\6f\6e\65\60\20\76\61\6c\75\65") + (data (i32.const 4896) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\63\6f\72\65\2f\6f\70\74\69\6f\6e\2e\72\73") + (data (i32.const 4928) "\90\13\00\00\06\00\00\00\a0\13\00\00\22\00\00\00") + (data (i32.const 4944) "\60\13\00\00\22\00\00\00\e9\02\00\00\04\00\00\00") + (data (i32.const 4960) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\63\6f\72\65\2f\73\6c\69\63\65\2f\6d\6f\64\2e\72\73") + (data (i32.const 5008) "\69\6e\64\65\78\20") + (data (i32.const 5024) "\20\6f\75\74\20\6f\66\20\72\61\6e\67\65\20\66\6f\72\20\73\6c\69\63\65\20\6f\66\20\6c\65\6e\67\74\68\20") + (data (i32.const 5060) "\f0\13\00\00\16\00\00\00\10\14\00\00\0d\00\00\00") + (data (i32.const 5076) "\60\13\00\00\22\00\00\00\ef\02\00\00\04\00\00\00") + (data (i32.const 5104) "\73\6c\69\63\65\20\69\6e\64\65\78\20\73\74\61\72\74\73\20\61\74\20") + (data (i32.const 5136) "\20\62\75\74\20\65\6e\64\73\20\61\74\20") + (data (i32.const 5152) "\42\6f\72\72\6f\77\45\72\72\6f\72") + (data (i32.const 5168) "\42\6f\72\72\6f\77\4d\75\74\45\72\72\6f\72") + (data (i32.const 5184) "\20\20\20\20") + (data (i32.const 5200) "\2c") + (data (i32.const 5204) "\40\00\00\00\08\00\00\00\04\00\00\00\41\00\00\00\42\00\00\00\43\00\00\00") + (data (i32.const 5232) "\20") + (data (i32.const 5236) "\44\00\00\00\04\00\00\00\04\00\00\00\45\00\00\00\46\00\00\00\47\00\00\00") + (data (i32.const 5264) "\0a") + (data (i32.const 5280) "\28") + (data (i32.const 5284) "\70\14\00\00\00\00\00\00\90\14\00\00\01\00\00\00") + (data (i32.const 5300) "\01\00\00\00\00\00\00\00\20\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\01\00\00\00\01\00\00\00\20\00\00\00\04\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00") + (data (i32.const 5372) "\70\14\00\00\00\00\00\00\70\14\00\00\00\00\00\00\70\14\00\00\00\00\00\00") + (data (i32.const 5408) "\29") + (data (i32.const 5424) "\2c\20") + (data (i32.const 5428) "\70\14\00\00\00\00\00\00\70\14\00\00\00\00\00\00") + (data (i32.const 5444) "\50\15\00\00\01\00\00\00") + (data (i32.const 5456) "\5b") + (data (i32.const 5472) "\5d") + (data (i32.const 5488) "\00\01\03\05\05\08\06\03\07\04\08\08\09\10\0a\1b\0b\19\0c\16\0d\12\0e\16\0f\04\10\03\12\12\13\09\16\01\17\05\18\02\19\03\1a\07\1d\01\1f\16\20\03\2b\05\2c\02\2d\0b\2e\01\30\03\31\03\32\02\a7\01\a8\02\a9\02\aa\04\ab\08\fa\02\fb\05\fd\04\fe\03\ff\09") + (data (i32.const 5584) "\ad\78\79\8b\8d\a2\30\57\58\60\88\8b\8c\90\1c\1d\dd\0e\0f\4b\4c\2e\2f\3f\5c\5d\5f\b5\e2\84\8d\8e\91\92\a9\b1\ba\bb\c5\c6\c9\ca\de\e4\e5\04\11\12\29\31\34\37\3a\3b\3d\49\4a\5d\84\8e\92\a9\b1\b4\ba\bb\c6\ca\ce\cf\e4\e5\00\04\0d\0e\11\12\29\31\34\3a\3b\45\46\49\4a\5e\64\65\84\91\9b\9d\c9\ce\cf\04\0d\11\29\45\49\57\64\65\84\8d\91\a9\b4\ba\bb\c5\c9\df\e4\e5\f0\04\0d\11\45\49\64\65\80\81\84\b2\bc\be\bf\d5\d7\f0\f1\83\85\86\89\8b\8c\98\a0\a4\a6\a8\a9\ac\ba\be\bf\c5\c7\ce\cf\da\db\48\98\bd\cd\c6\ce\cf\49\4e\4f\57\59\5e\5f\89\8e\8f\b1\b6\b7\bf\c1\c6\c7\d7\11\16\17\5b\5c\f6\f7\fe\ff\80\0d\6d\71\de\df\0e\0f\1f\6e\6f\1c\1d\5f\7d\7e\ae\af\fa\16\17\1e\1f\46\47\4e\4f\58\5a\5c\5e\7e\7f\b5\c5\d4\d5\dc\f0\f1\f5\72\73\8f\74\75\96\97\c9\2f\5f\26\2e\2f\a7\af\b7\bf\c7\cf\d7\df\9a\40\97\98\2f\30\8f\1f\ff\af\fe\ff\ce\ff\4e\4f\5a\5b\07\08\0f\10\27\2f\ee\ef\6e\6f\37\3d\3f\42\45\90\91\fe\ff\53\67\75\c8\c9\d0\d1\d8\d9\e7\fe\ff") + (data (i32.const 5888) "\00\20\5f\22\82\df\04\82\44\08\1b\05\05\11\81\ac\0e\3b\05\6b\35\1e\16\80\df\03\19\08\01\04\22\03\0a\04\34\04\07\03\01\07\06\07\10\0b\50\0f\12\07\55\08\02\04\1c\0a\09\03\08\03\07\03\02\03\03\03\0c\04\05\03\0b\06\01\0e\15\05\3a\03\11\07\06\05\10\08\56\07\02\07\15\0d\50\04\43\03\2d\03\01\04\11\06\0f\0c\3a\04\1d\25\0d\06\4c\20\6d\04\6a\25\80\c8\05\82\b0\03\1a\06\82\fd\03\59\07\15\0b\17\09\14\0c\14\0c\6a\06\0a\06\1a\06\58\08\2b\05\46\0a\2c\04\0c\04\01\03\31\0b\2c\04\1a\06\0b\03\80\ac\06\0a\06\1f\41\4c\04\2d\03\74\08\3c\03\0f\03\3c\37\08\08\2a\06\82\ff\11\18\08\2f\11\2d\03\20\10\21\0f\80\8c\04\82\97\19\0b\15\87\5a\03\16\19\04\10\80\f4\05\2f\05\3b\07\02\0e\18\09\80\aa\36\74\0c\80\d6\1a\0c\05\80\ff\05\80\b6\05\24\0c\9b\c6\0a\d2\2b\15\84\8d\03\37\09\81\5c\14\80\b8\08\80\b8\3f\35\04\0a\06\38\08\46\08\0c\06\74\0b\1e\03\5a\04\59\09\80\83\18\1c\0a\16\09\46\0a\80\8a\06\ab\a4\0c\17\04\31\a1\04\81\da\26\07\0c\05\05\80\a5\11\81\6d\10\78\28\2a\06\4c\04\80\8d\04\80\be\03\1b\03\0f\0d") + (data (i32.const 6224) "\00\06\01\01\03\01\04\02\08\08\09\02\0a\03\0b\02\10\01\11\04\12\05\13\12\14\02\15\02\1a\03\1c\05\1d\04\24\01\6a\03\6b\02\bc\02\d1\02\d4\0c\d5\09\d6\02\d7\02\da\01\e0\05\e8\02\ee\20\f0\04\f1\01\f9\01") + (data (i32.const 6304) "\0c\27\3b\3e\4e\4f\8f\9e\9e\9f\06\07\09\36\3d\3e\56\f3\d0\d1\04\14\18\56\57\bd\35\ce\cf\e0\12\87\89\8e\9e\04\0d\0e\11\12\29\31\34\3a\3b\45\46\49\4a\4e\4f\64\65\5a\5c\b6\b7\84\85\9d\09\37\90\91\a8\07\0a\3b\3e\6f\5f\ee\ef\5a\62\9a\9b\27\28\55\9d\a0\a1\a3\a4\a7\a8\ad\ba\bc\c4\06\0b\0c\15\1d\3a\3f\45\51\a6\a7\cc\cd\a0\07\19\1a\22\25\c5\c6\04\20\23\25\26\28\33\38\3a\48\4a\4c\50\53\55\56\58\5a\5c\5e\60\63\65\66\6b\73\78\7d\7f\8a\a4\aa\af\b0\c0\d0\2f\3f") + (data (i32.const 6464) "\5e\22\7b\05\03\04\2d\03\65\04\01\2f\2e\80\82\1d\03\31\0f\1c\04\24\09\1e\05\2b\05\44\04\0e\2a\80\aa\06\24\04\24\04\28\08\34\0b\01\80\90\81\37\09\16\0a\08\80\98\39\03\63\08\09\30\16\05\21\03\1b\05\01\40\38\04\4b\05\28\04\03\04\09\08\09\07\40\20\27\04\0c\09\36\03\3a\05\1a\07\04\0c\07\50\49\37\33\0d\33\07\06\81\60\1f\81\81\4e\04\1e\0f\43\0e\19\07\0a\06\44\0c\27\09\75\0b\3f\41\2a\06\3b\05\0a\06\51\06\01\05\10\03\05\80\8b\5e\22\48\08\0a\80\a6\5e\22\45\0b\0a\06\0d\13\38\08\0a\36\1a\03\0f\04\10\81\60\53\0c\01\81\00\48\08\53\1d\39\81\07\46\0a\1d\03\47\49\37\03\0e\08\0a\82\a6\83\9a\66\75\0b\80\c4\8a\bc\84\2f\8f\d1\82\47\a1\b9\82\39\07\2a\04\02\60\26\0a\46\0a\28\05\13\83\70\45\0b\2f\10\11\40\02\1e\97\ed\13\82\f3\a5\0d\81\1f\51\81\8c\89\04\6b\05\0d\03\09\07\10\93\60\80\f6\0a\73\08\6e\17\46\80\ba\57\09\12\80\8e\81\47\03\85\42\0f\15\85\50\2b\87\d5\80\d7\29\4b\05\0a\04\02\84\a0\3c\06\01\04\55\05\1b\34\02\81\0e\2c\04\64\0c\56\0a\0d\03\5c\04\3d\39\1d\0d\2c\04\09\07\02\0e\06\80\9a\83\d5\0b\0d\03\09\07\74\0c\55\2b\0c\04\38\08\0a\06\28\08\1e\52\0c\04\3d\03\1c\14\18\28\01\0f\17\86\19") + (data (i32.const 6824) "\c0\1a\00\00\2b\00\00\00\f0\1a\00\00\1f\00\00\00\4f\01\00\00\14\00\00\00") + (data (i32.const 6848) "\63\61\6c\6c\65\64\20\60\4f\70\74\69\6f\6e\3a\3a\75\6e\77\72\61\70\28\29\60\20\6f\6e\20\61\20\60\4e\6f\6e\65\60\20\76\61\6c\75\65") + (data (i32.const 6896) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\63\6f\72\65\2f\6f\70\74\69\6f\6e\2e\72\73") + (data (i32.const 6928) "\70\1b\00\00\20\00\00\00\90\1b\00\00\12\00\00\00") + (data (i32.const 6944) "\01\00\00\00\00\00\00\00\20\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\01\00\00\00\01\00\00\00\20\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00") + (data (i32.const 7024) "\69\6e\64\65\78\20\6f\75\74\20\6f\66\20\62\6f\75\6e\64\73\3a\20\74\68\65\20\6c\65\6e\20\69\73\20") + (data (i32.const 7056) "\20\62\75\74\20\74\68\65\20\69\6e\64\65\78\20\69\73\20") + (data (i32.const 7088) "\2e\2e") + (data (i32.const 7092) "\d0\1b\00\00\00\00\00\00\b0\1b\00\00\02\00\00\00") + (data (i32.const 7120) "\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data (i32.const 7152) "\f0\1b\00\00\00\00\00\00") + (data (i32.const 7160) "\01\00\00\00\00\00\00\00\20\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00") + (data (i32.const 7196) "\30\1c\00\00\1f\00\00\00\6a\03\00\00\04\00\00\00") + (data (i32.const 7216) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\63\6f\72\65\2f\6f\70\74\69\6f\6e\2e\72\73") + (data (i32.const 7248) "\5b\2e\2e\2e\5d") + (data (i32.const 7264) "\e0\1e\00\00\0b\00\00\00\d0\1f\00\00\16\00\00\00\40\1f\00\00\01\00\00\00") + (data (i32.const 7288) "\01\00\00\00\00\00\00\00\20\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\01\00\00\00\01\00\00\00\20\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\01\00\00\00\02\00\00\00\20\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00") + (data (i32.const 7396) "\c0\1e\00\00\20\00\00\00\aa\08\00\00\08\00\00\00") + (data (i32.const 7412) "\a0\1f\00\00\0e\00\00\00\b0\1f\00\00\04\00\00\00\c0\1f\00\00\10\00\00\00\40\1f\00\00\01\00\00\00") + (data (i32.const 7444) "\01\00\00\00\00\00\00\00\20\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\01\00\00\00\01\00\00\00\20\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\01\00\00\00\02\00\00\00\20\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\01\00\00\00\03\00\00\00\20\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00") + (data (i32.const 7588) "\c0\1e\00\00\20\00\00\00\ae\08\00\00\04\00\00\00") + (data (i32.const 7604) "\50\1f\00\00\2b\00\00\00\80\1f\00\00\1f\00\00\00\4f\01\00\00\14\00\00\00") + (data (i32.const 7628) "\e0\1e\00\00\0b\00\00\00\f0\1e\00\00\26\00\00\00\20\1f\00\00\08\00\00\00\30\1f\00\00\06\00\00\00\40\1f\00\00\01\00\00\00") + (data (i32.const 7668) "\01\00\00\00\00\00\00\00\20\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\01\00\00\00\01\00\00\00\20\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\01\00\00\00\02\00\00\00\20\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\01\00\00\00\03\00\00\00\20\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\01\00\00\00\04\00\00\00\20\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00") + (data (i32.const 7848) "\c0\1e\00\00\20\00\00\00\bb\08\00\00\04\00\00\00") + (data (i32.const 7872) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\63\6f\72\65\2f\73\74\72\2f\6d\6f\64\2e\72\73") + (data (i32.const 7904) "\62\79\74\65\20\69\6e\64\65\78\20") + (data (i32.const 7920) "\20\69\73\20\6e\6f\74\20\61\20\63\68\61\72\20\62\6f\75\6e\64\61\72\79\3b\20\69\74\20\69\73\20\69\6e\73\69\64\65\20") + (data (i32.const 7968) "\20\28\62\79\74\65\73\20") + (data (i32.const 7984) "\29\20\6f\66\20\60") + (data (i32.const 8000) "\60") + (data (i32.const 8016) "\63\61\6c\6c\65\64\20\60\4f\70\74\69\6f\6e\3a\3a\75\6e\77\72\61\70\28\29\60\20\6f\6e\20\61\20\60\4e\6f\6e\65\60\20\76\61\6c\75\65") + (data (i32.const 8064) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\63\6f\72\65\2f\6f\70\74\69\6f\6e\2e\72\73") + (data (i32.const 8096) "\62\65\67\69\6e\20\3c\3d\20\65\6e\64\20\28") + (data (i32.const 8112) "\20\3c\3d\20") + (data (i32.const 8128) "\29\20\77\68\65\6e\20\73\6c\69\63\69\6e\67\20\60") + (data (i32.const 8144) "\20\69\73\20\6f\75\74\20\6f\66\20\62\6f\75\6e\64\73\20\6f\66\20\60") +) diff --git a/docs/Winpython_checker.ipynb b/docs/Winpython_checker.ipynb index fb436ee..4443da7 100644 --- a/docs/Winpython_checker.ipynb +++ b/docs/Winpython_checker.ipynb @@ -205,7 +205,7 @@ "import seaborn as sns\n", "sns.set()\n", "df = sns.load_dataset(\"iris\")\n", - "sns.pairplot(df, hue=\"species\", size=1.5)" + "sns.pairplot(df, hue=\"species\", height=1.5)" ] }, { @@ -214,14 +214,18 @@ "metadata": {}, "outputs": [], "source": [ - "# altair 1.3 example\n", - "import altair as at\n", - "at.Chart(df).mark_bar().encode(\n", - " x=at.X('sepal_length', bin=at.Bin(maxbins=50)),\n", + "# altair-2.0.0 example\n", + "import altair as alt\n", + "\n", + "# Uncomment/run this line to enable Altair in JupyterLab/nteract:\n", + "#alt.renderers.enable('default') # api_v2\n", + "#alt.renderers.enable('notebook') # api_v2,if in Notebook\n", + "alt.Chart(df).mark_bar().encode(\n", + " x=alt.X('sepal_length', bin=alt.Bin(maxbins=50)),\n", " y='count(*):Q',\n", " color='species:N',\n", - " # column='species',\n", - ").configure_cell(width=200)" + " #column='species',\n", + ").interactive() # api_v1 .configure_cell(width=200)\n" ] }, { @@ -416,6 +420,10 @@ " signal = np.sin(2*np.pi*f1*times) + np.sin(2*np.pi*f2*times)\n", " print(f1, f2, abs(f1-f2))\n", " display(Audio(data=signal, rate=rate))\n", + " try:\n", + " plt.plot(signal); #plt.plot(v.result);\n", + " except:\n", + " pass\n", " return signal\n", "v = interactive(beat_freq, f1=(200.0,300.0), f2=(200.0,300.0))\n", "display(v)" @@ -460,26 +468,6 @@ " " ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# checking nbconvert \n", - "!jupyter nbconvert \"Beginner's FAQ.ipynb\" --to html" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "%%HTML\n", - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -670,23 +658,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Deep Learning: Theano" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Checking Theano\n", - "import theano.tensor as T\n", - "from theano import function\n", - "x = T.dmatrix('x')\n", - "y = T.dmatrix('y')\n", - "z = x + y\n", - "f = function([x, y], z)\n", - "f([[1, 2], [3, 4]], [[10, 20], [30, 40]])" + "## Deep Learning: see tutorial-first-neural-network-python-keras" ] }, { @@ -893,7 +865,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.3" + "version": "3.7.0" }, "widgets": { "state": { diff --git a/docs/bayesian_neural_network.ipynb b/docs/bayesian_neural_network.ipynb deleted file mode 100644 index 080af4a..0000000 --- a/docs/bayesian_neural_network.ipynb +++ /dev/null @@ -1,315 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Bayesian Neural Network in PyMC3\n", - "(c) 2016 by Thomas Wiecki" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "import sys, os\n", - "sys.path.insert(0, os.path.expanduser('~/work/git/github/taku-y/pymc3/'))\n", - "\n", - "%matplotlib inline\n", - "import pymc3 as pm\n", - "import theano.tensor as T\n", - "import theano\n", - "import sklearn\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "from sklearn import datasets\n", - "from sklearn.preprocessing import scale\n", - "from sklearn.cross_validation import train_test_split\n", - "from sklearn.datasets import make_moons, make_circles, make_classification\n", - "import seaborn as sns" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "#X, Y = datasets.make_blobs(n_samples=200, n_features=2, centers=2, cluster_std=3.0, \n", - "# center_box=(-5.0, 5.0), shuffle=True, random_state=None)\n", - "\n", - "X, Y = make_moons(noise=0.2, random_state=0, n_samples=1000)\n", - "X = scale(X)\n", - "X = X.astype('float32')\n", - "Y = Y.astype('float32')\n", - "X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=.5)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "plt.scatter(X[Y==0, 0], X[Y==0, 1])\n", - "plt.scatter(X[Y==1, 0], X[Y==1, 1], color='r')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "def Ordered(name, var, model=None):\n", - " order = T.constant(list(range(var.tag.test_value.shape[1])))\n", - " return pm.Potential(\n", - " name,\n", - " T.switch(T.eq(T.argsort(T.sum(var, axis=0)), order), 0, -np.inf),\n", - " model=model\n", - " )" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "# Turn inputs and outputs into shared variables so that we can change them later\n", - "import theano.tensor as tt\n", - "\n", - "# ann_input = tt.matrix()\n", - "# ann_input.tag.test_value = X_train\n", - "# ann_output = tt.vector()\n", - "# ann_output.tag.test_value = Y_train\n", - "\n", - "ann_input = theano.shared(X_train)\n", - "ann_output = theano.shared(Y_train)\n", - "\n", - "n_hidden = 5\n", - "\n", - "# Initialize random but sorted starting weights.\n", - "init_1 = np.random.randn(X.shape[1], n_hidden)\n", - "init_1 = init_1[:, np.argsort(init_1.sum(axis=0))]\n", - "init_2 = np.random.randn(n_hidden, n_hidden)\n", - "init_2 = init_2[:, np.argsort(init_2.sum(axis=0))]\n", - "init_out = np.random.randn(n_hidden)\n", - "init_out = init_out[np.argsort(init_out)]\n", - "\n", - " \n", - "with pm.Model() as neural_network:\n", - " # Weights from input to hidden layer\n", - " weights_in_1 = pm.Normal('w_in_1', 0, sd=1, shape=(X.shape[1], n_hidden), \n", - " testval=init_1)\n", - " \n", - " # Weights from 1st to 2nd layer\n", - " weights_1_2 = pm.Normal('w_1_2', 0, sd=1, shape=(n_hidden, n_hidden), \n", - " testval=init_2)\n", - " \n", - " # Weights from hidden layer to output\n", - " weights_2_out = pm.Normal('w_2_out', 0, sd=1, shape=(n_hidden,), \n", - " testval=init_out)\n", - "\n", - " # Build neural-network\n", - " a1 = T.dot(ann_input, weights_in_1)\n", - " act_1 = T.tanh(a1)\n", - " a2 = T.dot(act_1, weights_1_2)\n", - " act_2 = T.tanh(a2)\n", - " act_out = T.dot(act_2, weights_2_out)\n", - " \n", - " out = pm.Bernoulli('out', \n", - " T.nnet.sigmoid(act_out),\n", - " observed=ann_output)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Estimation with ADVI" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "minibatch_tensors = [ann_input, ann_output]\n", - "minibatch_RVs = [out]\n", - "\n", - "def create_minibatch(data):\n", - " rng = np.random.RandomState(0)\n", - " \n", - " while True:\n", - " ixs = rng.randint(len(data), size=100)\n", - " yield data[ixs]\n", - "\n", - "minibatches = [\n", - " create_minibatch(X_train), \n", - " create_minibatch(Y_train),\n", - "]\n", - "\n", - "total_size = len(Y_train)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "with neural_network:\n", - " # Run advi_minibatch\n", - " advi_fit = pm.variational.advi_minibatch(\n", - " n=40000, minibatch_tensors=minibatch_tensors, \n", - " minibatch_RVs=minibatch_RVs, minibatches=minibatches, \n", - " total_size=total_size, learning_rate=1e-2, epsilon=1.0, \n", - " n_mcsamples=1\n", - " )\n", - "plt.plot(advi_fit.elbo_vals)\n", - "trace_advi = pm.variational.sample_vp(advi_fit, 500, neural_network)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "# Replace shared variables with testing set\n", - "# (note that using this trick we could be streaming ADVI for big data)\n", - "ann_input.set_value(X_test)\n", - "ann_output.set_value(Y_test)\n", - "\n", - "# Creater posterior predictive samples\n", - "ppc = pm.sample_ppc(trace_advi, model=neural_network, samples=500)\n", - "pred = ppc['out'].mean(axis=0) > 0.5\n", - "\n", - "plt.scatter(X_test[Y_test==0, 0], X_test[Y_test==0, 1])\n", - "plt.scatter(X_test[Y_test==1, 0], X_test[Y_test==1, 1], color='r')\n", - "plt.title('Predicted labels in testing set')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "plt.scatter(X_test[pred==0, 0], X_test[pred==0, 1])\n", - "plt.scatter(X_test[pred==1, 0], X_test[pred==1, 1], color='r')\n", - "plt.title('Predicted labels in testing set')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "print('Accuracy = {}%'.format((Y_test == pred).mean() * 100))\n", - "sns.regplot(ppc['out'].mean(axis=0), Y_test, logistic=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Lets look at what the classifier has learned" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "grid = np.mgrid[-3:3:100j,-3:3:100j]\n", - "grid_2d = grid.reshape(2, -1).T.astype('float32')\n", - "dummy_out = np.ones(grid_2d.shape[0], dtype=np.int8)\n", - "\n", - "ann_input.set_value(grid_2d)\n", - "ann_output.set_value(dummy_out)\n", - "# Creater posterior predictive samples\n", - "ppc = pm.sample_ppc(trace_advi, model=neural_network, samples=5000)\n", - "pred_grid = ppc['out'].mean(axis=0)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "cmap = sns.diverging_palette(145, 280, s=85, l=25, as_cmap=True)\n", - "# plt.contourf(*grid, pred_grid.reshape(100, 100), cmap=cmap)\n", - "plt.contourf(grid[0], grid[1], pred_grid.reshape(100, 100), cmap=cmap)\n", - "plt.scatter(X_test[pred==0, 0], X_test[pred==0, 1], alpha=0.5)\n", - "plt.scatter(X_test[pred==1, 0], X_test[pred==1, 1], color='r', alpha=0.5)\n", - "#plt.title('Predicted labels in testing set')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.4.4" - }, - "widgets": { - "state": {}, - "version": "1.1.2" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/docs/dplyr_pandas.ipynb b/docs/dplyr_pandas.ipynb index 1916660..25e8124 100644 --- a/docs/dplyr_pandas.ipynb +++ b/docs/dplyr_pandas.ipynb @@ -63,9 +63,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# Downloading and unzipg a file, without R method :\n", @@ -91,9 +89,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# Some prep work to get the data from R and into pandas\n", @@ -117,9 +113,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "flights = pd.read_csv(\"flights.csv\", index_col=0)" @@ -128,9 +122,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# dim(flights) <--- The R code\n", @@ -140,9 +132,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# head(flights)\n", @@ -219,9 +209,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# filter(flights, month == 1, day == 1)\n", @@ -248,9 +236,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# flights[flights$month == 1 & flights$day == 1, ]\n", @@ -260,9 +246,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# slice(flights, 1:10)\n", @@ -279,9 +263,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# arrange(flights, year, month, day) \n", @@ -291,9 +273,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# arrange(flights, desc(arr_delay))\n", @@ -318,9 +298,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# select(flights, year, month, day) \n", @@ -330,9 +308,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# select(flights, year:day) \n", @@ -358,9 +334,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# select(flights, tail_num = tailnum)\n", @@ -377,9 +351,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# rename(flights, tail_num = tailnum)\n", @@ -419,9 +391,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# distinct(select(flights, tailnum))\n", @@ -438,9 +408,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# distinct(select(flights, origin, dest))\n", @@ -471,9 +439,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# mutate(flights,\n", @@ -487,9 +453,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# mutate(flights,\n", @@ -517,9 +481,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# transmute(flights,\n", @@ -541,9 +503,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# summarise(flights,\n", @@ -569,9 +529,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# sample_n(flights, 10)\n", @@ -581,9 +539,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# sample_frac(flights, 0.01)\n", @@ -600,9 +556,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# planes <- group_by(flights, tailnum)\n", @@ -644,9 +598,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "fig, ax = plt.subplots(figsize=(12, 6))\n", @@ -678,9 +630,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "smooth = sm.nonparametric.lowess(delay.delay, delay.dist, frac=1/8)\n", @@ -694,9 +644,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# destinations <- group_by(flights, dest)\n", @@ -724,9 +672,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "destinations = flights.groupby('dest')\n", @@ -752,9 +698,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# daily <- group_by(flights, year, month, day)\n", @@ -768,9 +712,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# (per_month <- summarise(per_day, flights = sum(flights)))\n", @@ -781,9 +723,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# (per_year <- summarise(per_month, flights = sum(flights)))\n", @@ -815,9 +755,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# flights %>%\n", @@ -917,9 +855,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.4.4" + "version": "3.6.2" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/docs/keras-intro_brianspiering.ipynb b/docs/keras-intro_brianspiering.ipynb new file mode 100644 index 0000000..2e15341 --- /dev/null +++ b/docs/keras-intro_brianspiering.ipynb @@ -0,0 +1,1284 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "
\n", + "
bit.ly/pybay-keras
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Who Am I?\n", + "-----\n", + "\n", + "
Brian Spiering
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "source": [ + "What Do I Do?\n", + "------\n", + "\n", + "
Professor @
\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Keras - Neural Networks for humans\n", + "------\n", + "\n", + "
\n", + "\n", + "A high-level, intuitive API for Deep Learning.\n", + "\n", + "Easy to define neural networks, then automatically handles execution.\n", + "\n", + "A simple, modular interface which allows focus on learning and enables fast experimentation" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Goals\n", + "-----\n", + "\n", + "- General introduction to Deep Learning\n", + "- Overview of keras library\n", + "- An end-to-end example in keras " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Anti-Goals\n", + "-----\n", + "\n", + "- Understanding of Deep Learning (there will be no equations)\n", + "- Building neural networks from scratch\n", + "- Complete survey of keras library" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Deep Learning 101\n", + "-----\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Deep Learning (DL) are Neural networks (NN) with >1 hidden layer\n", + "-------\n", + "\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Neural Networks are Nodes & Edges\n", + "------\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Nonlinear function allows learning of nonlinear relationships\n", + "------\n", + "\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Groups of nodes all the way down\n", + "------\n", + "\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Deep Learning isn't magic, it is just very good at finding patterns\n", + "------\n", + "\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Deep Learning has fewer steps than traditional Machine Learning\n", + "------\n", + "\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "If you want to follow along…\n", + "-----\n", + "\n", + "GitHub repo: [bit.ly/pybay-keras](http://bit.ly/pybay-keras)\n", + "\n", + "If you want to type along…\n", + "------\n", + "\n", + "1. Run a local Jupyter Notebook\n", + "1. [Binder](https://mybinder.org/v2/gh/brianspiering/keras-intro/master): In-Browser Jupyter Notebook\n", + "1. [Colaboratory](https://colab.research.google.com/): \"Google Docs for Jupyter Notebooks\"" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [], + "source": [ + "reset -fs" + ] + }, + { + "cell_type": "code", + "execution_count": 85, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "import keras" + ] + }, + { + "cell_type": "code", + "execution_count": 86, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [], + "source": [ + "# What is the backend / execution engine?" + ] + }, + { + "cell_type": "code", + "execution_count": 87, + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "'tensorflow'" + ] + }, + "execution_count": 87, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "keras.backend.backend()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "
\n", + "\n", + "\"An open-source software library for Machine Intelligence\"\n", + "\n", + "Numerical computation using data flow graphs. " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "TensorFlow: A great backend\n", + "------\n", + "A __very__ flexible architecture which allows you to do almost any numerical operation.\n", + "\n", + "Then deploy the computation to CPUs or GPUs (one or more) across desktop, cloud, or mobile device. \n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "MNIST handwritten digit database:
The “Hello World!” of Computer Vision\n", + "------\n", + "\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "
" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# Import data\n" + ] + }, + { + "cell_type": "code", + "execution_count": 89, + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [], + "source": [ + "from keras.datasets import mnist" + ] + }, + { + "cell_type": "code", + "execution_count": 90, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [], + "source": [ + "# Setup train and test splits\n" + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [], + "source": [ + "(x_train, y_train), (x_test, y_test) = mnist.load_data()" + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "from random import randint\n", + "from matplotlib import pyplot\n", + "\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "pyplot.imshow(x_train[randint(0, x_train.shape[0])], cmap='gray_r');" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "source": [ + "Munge data\n", + "-----\n", + "\n", + "
\n", + "\n", + "Convert image matrix into vector to feed into first layer " + ] + }, + { + "cell_type": "code", + "execution_count": 94, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# Munge Data\n", + "# Transform from matrix to vector, cast, and normalize" + ] + }, + { + "cell_type": "code", + "execution_count": 95, + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [], + "source": [ + "\n", + "image_size = 784 # 28 x 28\n", + "\n", + "x_train = x_train.reshape(x_train.shape[0], image_size) # Transform from matrix to vector\n", + "x_train = x_train.astype('float32') # Cast as 32 bit integers\n", + "x_train /= 255 # Normalize inputs from 0-255 to 0.0-1.0\n", + "\n", + "x_test = x_test.reshape(x_test.shape[0], image_size) # Transform from matrix to vector\n", + "x_test = x_test.astype('float32') # Cast as 32 bit integers\n", + "x_test /= 255 # Normalize inputs from 0-255 to 0.0-1.0" + ] + }, + { + "cell_type": "code", + "execution_count": 96, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# Convert class vectors to binary class matrices\n" + ] + }, + { + "cell_type": "code", + "execution_count": 97, + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [], + "source": [ + "y_train = keras.utils.to_categorical(y_train, 10)\n", + "y_test = keras.utils.to_categorical(y_test, 10)" + ] + }, + { + "cell_type": "code", + "execution_count": 98, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# Import the most common type of neural network\n" + ] + }, + { + "cell_type": "code", + "execution_count": 99, + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [], + "source": [ + "from keras.models import Sequential" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "source": [ + "RTFM - https://keras.io/layers/" + ] + }, + { + "cell_type": "code", + "execution_count": 100, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [], + "source": [ + "# Define model instance\n" + ] + }, + { + "cell_type": "code", + "execution_count": 101, + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [], + "source": [ + "model = Sequential()" + ] + }, + { + "cell_type": "code", + "execution_count": 102, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# Import the most common type of network layer, fully interconnected\n" + ] + }, + { + "cell_type": "code", + "execution_count": 103, + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [], + "source": [ + "from keras.layers import Dense" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "source": [ + "
" + ] + }, + { + "cell_type": "code", + "execution_count": 104, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# Define input layer\n" + ] + }, + { + "cell_type": "code", + "execution_count": 105, + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [], + "source": [ + "layer_input = Dense(units=512, # Number of nodes\n", + " activation='sigmoid', # The nonlinearity\n", + " input_shape=(image_size,)) \n", + "model.add(layer_input)" + ] + }, + { + "cell_type": "code", + "execution_count": 106, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [], + "source": [ + "# Define another layer\n" + ] + }, + { + "cell_type": "code", + "execution_count": 107, + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [], + "source": [ + "model.add(Dense(units=512, activation='sigmoid'))" + ] + }, + { + "cell_type": "code", + "execution_count": 108, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# Define output layers\n" + ] + }, + { + "cell_type": "code", + "execution_count": 109, + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [], + "source": [ + "layer_output = Dense(units=10, # Number of digits (0-9)\n", + " activation='softmax') # Convert neural activation to probability of category\n", + "\n", + "model.add(layer_output)" + ] + }, + { + "cell_type": "code", + "execution_count": 110, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# Print summary\n" + ] + }, + { + "cell_type": "code", + "execution_count": 111, + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "_________________________________________________________________\n", + "Layer (type) Output Shape Param # \n", + "=================================================================\n", + "dense_9 (Dense) (None, 512) 401920 \n", + "_________________________________________________________________\n", + "dense_10 (Dense) (None, 512) 262656 \n", + "_________________________________________________________________\n", + "dense_11 (Dense) (None, 10) 5130 \n", + "=================================================================\n", + "Total params: 669,706\n", + "Trainable params: 669,706\n", + "Non-trainable params: 0\n", + "_________________________________________________________________\n" + ] + } + ], + "source": [ + "model.summary()" + ] + }, + { + "cell_type": "code", + "execution_count": 112, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [], + "source": [ + "# Yes - we compile the model to run it\n" + ] + }, + { + "cell_type": "code", + "execution_count": 113, + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [], + "source": [ + "model.compile(loss='categorical_crossentropy', \n", + " optimizer='sgd',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 114, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# Train the model\n" + ] + }, + { + "cell_type": "code", + "execution_count": 115, + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train on 54000 samples, validate on 6000 samples\n", + "Epoch 1/5\n", + "54000/54000 [==============================] - 15s 285us/step - loss: 2.1522 - acc: 0.3213 - val_loss: 1.8987 - val_acc: 0.5315\n", + "Epoch 2/5\n", + "54000/54000 [==============================] - 14s 262us/step - loss: 1.5000 - acc: 0.6548 - val_loss: 1.0769 - val_acc: 0.7430\n", + "Epoch 3/5\n", + "54000/54000 [==============================] - 15s 285us/step - loss: 0.9003 - acc: 0.7860 - val_loss: 0.6709 - val_acc: 0.8560\n", + "Epoch 4/5\n", + "54000/54000 [==============================] - 14s 266us/step - loss: 0.6515 - acc: 0.8317 - val_loss: 0.5121 - val_acc: 0.8778\n", + "Epoch 5/5\n", + "54000/54000 [==============================] - 18s 340us/step - loss: 0.5385 - acc: 0.8549 - val_loss: 0.4268 - val_acc: 0.8940\n" + ] + } + ], + "source": [ + "training = model.fit(x_train, \n", + " y_train,\n", + " epochs=5, # Number of passes over complete dataset\n", + " verbose=True, \n", + " validation_split=0.1)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "
" + ] + }, + { + "cell_type": "code", + "execution_count": 116, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# Let's see how well our model performs\n" + ] + }, + { + "cell_type": "code", + "execution_count": 117, + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 1s 106us/step\n", + "Test loss: 0.476\n", + "Test accuracy: 87.140%\n" + ] + } + ], + "source": [ + "loss, accuracy = model.evaluate(x_test, \n", + " y_test, \n", + " verbose=True)\n", + "print(f\"Test loss: {loss:.3}\")\n", + "print(f\"Test accuracy: {accuracy:.3%}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Keras' Other Features\n", + "-----\n", + "\n", + "- Common built-in functions (e.g., activation functions and optimitizers)\n", + "- Convolutional neural network (CNN or ConvNet)\n", + "- Recurrent neural network (RNN) & Long-short term memory (LSTM)\n", + "- Pre-trained models" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Summary\n", + "-----\n", + "\n", + "- Keras is designed for human beings, not computers.\n", + "- Easier to try out Deep Learning (focus on the __what__, not the __how__).\n", + "- Simple to define neural networks." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Futher Study - Keras\n", + "--------\n", + "\n", + "- [Keras docs](https://keras.io/)\n", + "- [Keras blog](https://blog.keras.io/)\n", + "- Keras courses\n", + " - [edX](https://www.edx.org/course/deep-learning-fundamentals-with-keras)\n", + " - [Coursera](https://www.coursera.org/lecture/ai/keras-overview-7GfN9)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Futher Study - Deep Learning\n", + "--------\n", + "\n", + "- Prerequisites: Linear Algebra, Probability, Machine Learning\n", + "- [fast.ai Course](http://www.fast.ai/)\n", + "- [Deep Learning Book](http://www.deeplearningbook.org/)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true, + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Bonus Material\n", + "--------" + ] + }, + { + "cell_type": "code", + "execution_count": 118, + "metadata": {}, + "outputs": [], + "source": [ + "# reset -fs" + ] + }, + { + "cell_type": "code", + "execution_count": 119, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# from keras import *" + ] + }, + { + "cell_type": "code", + "execution_count": 120, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# whos" + ] + }, + { + "cell_type": "code", + "execution_count": 121, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# from keras.datasets import fashion_mnist" + ] + }, + { + "cell_type": "code", + "execution_count": 122, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [], + "source": [ + "# # Setup train and test splits\n", + "# (x_train, y_train), (x_test, y_test) = fashion_mnist.load_data()" + ] + }, + { + "cell_type": "code", + "execution_count": 123, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# from random import randint\n", + "# from matplotlib import pyplot\n", + "\n", + "# %matplotlib inline" + ] + }, + { + "cell_type": "code", + "execution_count": 124, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# pyplot.imshow(x_train[randint(0, x_train.shape[0])], cmap='gray_r');" + ] + }, + { + "cell_type": "code", + "execution_count": 125, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# # Define CNN model\n", + "\n", + "# # Redefine input dimensions to make sure conv works\n", + "# img_rows, img_cols = 28, 28\n", + "# x_train = x_train.reshape(x_train.shape[0], img_rows, img_cols, 1)\n", + "# x_test = x_test.reshape(x_test.shape[0], img_rows, img_cols, 1)\n", + "# input_shape = (img_rows, img_cols, 1)" + ] + }, + { + "cell_type": "code", + "execution_count": 126, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# import keras" + ] + }, + { + "cell_type": "code", + "execution_count": 127, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [], + "source": [ + "# # Convert class vectors to binary class matrices\n", + "# y_train = keras.utils.to_categorical(y_train, 10)\n", + "# y_test = keras.utils.to_categorical(y_test, 10)" + ] + }, + { + "cell_type": "code", + "execution_count": 128, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# from keras.layers import Conv2D, Dense, Flatten, MaxPooling2D" + ] + }, + { + "cell_type": "code", + "execution_count": 129, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# # Define model\n", + "# model = Sequential()\n", + "# model.add(Conv2D(32, \n", + "# kernel_size=(3, 3),\n", + "# activation='sigmoid',\n", + "# input_shape=input_shape))\n", + "# model.add(Conv2D(64, (3, 3), activation='sigmoid'))\n", + "# model.add(MaxPooling2D(pool_size=(2, 2)))\n", + "# model.add(Flatten())\n", + "# model.add(Dense(128, activation='sigmoid'))\n", + "# model.add(Dense(10, activation='softmax'))" + ] + }, + { + "cell_type": "code", + "execution_count": 130, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# model.compile(loss='categorical_crossentropy', \n", + "# optimizer='adam',\n", + "# metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 131, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# # Define training\n", + "# training = model.fit(x_train, \n", + "# y_train,\n", + "# epochs=5,\n", + "# verbose=True, \n", + "# validation_split=0.1)" + ] + }, + { + "cell_type": "code", + "execution_count": 132, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# loss, accuracy = model.evaluate(x_test, \n", + "# y_test, \n", + "# verbose=True)\n", + "# print(f\"Test loss: {loss:.3}\")\n", + "# print(f\"Test accuracy: {accuracy:.3%}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "What is `keras`? \n", + "-----\n", + "\n", + "
\n", + "\n", + "Keras (κέρας) means horn in Greek. " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "It is a reference to a literary image from ancient Greek and Latin literature.\n", + "\n", + "First found in the Odyssey, where dream spirits (Oneiroi, singular Oneiros) are divided between those who deceive men with false visions, who arrive to Earth through a gate of ivory, and those who announce a future that will come to pass, who arrive through a gate of horn. \n", + "\n", + "It's a play on the words κέρας (horn) / κραίνω (fulfill), and ἐλέφας (ivory) / ἐλεφαίρομαι (deceive)." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "source": [ + "[Source](https://keras.io/#why-this-name-keras)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "
" + ] + } + ], + "metadata": { + "celltoolbar": "Slideshow", + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.0" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/minesweeper.py b/docs/minesweeper.py new file mode 100644 index 0000000..26d70f6 --- /dev/null +++ b/docs/minesweeper.py @@ -0,0 +1,183 @@ +""" +Matplotlib Minesweeper +---------------------- +A simple Minesweeper implementation in matplotlib. + +Author: Jake Vanderplas , Dec. 2012 +License: BSD +""" +import numpy as np +from itertools import product +from scipy.signal import convolve2d +import matplotlib.pyplot as plt +from matplotlib.patches import RegularPolygon + + +class MineSweeper(object): + covered_color = '#DDDDDD' + uncovered_color = '#AAAAAA' + edge_color = '#888888' + count_colors = ['none', 'blue', 'green', 'red', 'darkblue', + 'darkred', 'darkgreen', 'black', 'black'] + flag_vertices = np.array([[0.25, 0.2], [0.25, 0.8], + [0.75, 0.65], [0.25, 0.5]]) + + @classmethod + def beginner(cls): + return cls(8, 8, 10) + + @classmethod + def intermediate(cls): + return cls(16, 16, 40) + + @classmethod + def expert(cls): + return cls(30, 16, 99) + + def __init__(self, width, height, nmines): + self.width, self.height, self.nmines = width, height, nmines + + # Create the figure and axes + self.fig = plt.figure(figsize=((width + 2) / 3., (height + 2) / 3.)) + self.ax = self.fig.add_axes((0.05, 0.05, 0.9, 0.9), + aspect='equal', frameon=False, + xlim=(-0.05, width + 0.05), + ylim=(-0.05, height + 0.05)) + for axis in (self.ax.xaxis, self.ax.yaxis): + axis.set_major_formatter(plt.NullFormatter()) + axis.set_major_locator(plt.NullLocator()) + + # Create the grid of squares + self.squares = np.array([[RegularPolygon((i + 0.5, j + 0.5), + numVertices=4, + radius=0.5 * np.sqrt(2), + orientation=np.pi / 4, + ec=self.edge_color, + fc=self.covered_color) + for j in range(height)] + for i in range(width)]) + [self.ax.add_patch(sq) for sq in self.squares.flat] + + # define internal state variables + self.mines = None + self.counts = None + self.clicked = np.zeros((self.width, self.height), dtype=bool) + self.flags = np.zeros((self.width, self.height), dtype=object) + self.game_over = False + + # Create event hook for mouse clicks + self.fig.canvas.mpl_connect('button_press_event', self._button_press) + + def _draw_mine(self, i, j): + self.ax.add_patch(plt.Circle((i + 0.5, j + 0.5), radius=0.25, + ec='black', fc='black')) + + def _draw_red_X(self, i, j): + self.ax.text(i + 0.5, j + 0.5, 'X', color='r', fontsize=20, + ha='center', va='center') + + def _toggle_mine_flag(self, i, j): + if self.clicked[i, j]: + pass + elif self.flags[i, j]: + self.ax.patches.remove(self.flags[i, j]) + self.flags[i, j] = None + else: + self.flags[i, j] = plt.Polygon(self.flag_vertices + [i, j], + fc='red', ec='black', lw=2) + self.ax.add_patch(self.flags[i, j]) + + def _reveal_unmarked_mines(self): + for (i, j) in zip(*np.where(self.mines & ~self.flags.astype(bool))): + self._draw_mine(i, j) + + def _cross_out_wrong_flags(self): + for (i, j) in zip(*np.where(~self.mines & self.flags.astype(bool))): + self._draw_red_X(i, j) + + def _mark_remaining_mines(self): + for (i, j) in zip(*np.where(self.mines & ~self.flags.astype(bool))): + self._toggle_mine_flag(i, j) + + def _setup_mines(self, i, j): + # randomly place mines on a grid, but not on space (i, j) + idx = np.concatenate([np.arange(i * self.height + j), + np.arange(i * self.height + j + 1, + self.width * self.height)]) + np.random.shuffle(idx) + self.mines = np.zeros((self.width, self.height), dtype=bool) + self.mines.flat[idx[:self.nmines]] = 1 + + # count the number of mines bordering each square + self.counts = convolve2d(self.mines.astype(complex), np.ones((3, 3)), + mode='same').real.astype(int) + + def _click_square(self, i, j): + # if this is the first click, then set up the mines + if self.mines is None: + self._setup_mines(i, j) + + # if there is a flag or square is already clicked, do nothing + if self.flags[i, j] or self.clicked[i, j]: + return + self.clicked[i, j] = True + + # hit a mine: game over + if self.mines[i, j]: + self.game_over = True + self._reveal_unmarked_mines() + self._draw_red_X(i, j) + self._cross_out_wrong_flags() + + # square with no surrounding mines: clear out all adjacent squares + elif self.counts[i, j] == 0: + self.squares[i, j].set_facecolor(self.uncovered_color) + for ii in range(max(0, i - 1), min(self.width, i + 2)): + for jj in range(max(0, j - 1), min(self.height, j + 2)): + self._click_square(ii, jj) + + # hit an empty square: reveal the number + else: + self.squares[i, j].set_facecolor(self.uncovered_color) + self.ax.text(i + 0.5, j + 0.5, str(self.counts[i, j]), + color=self.count_colors[self.counts[i, j]], + ha='center', va='center', fontsize=18, + fontweight='bold') + + # if all remaining squares are mines, mark them and end game + if self.mines.sum() == (~self.clicked).sum(): + self.game_over = True + self._mark_remaining_mines() + + def _button_press(self, event): + if self.game_over or (event.xdata is None) or (event.ydata is None): + return + i, j = map(int, (event.xdata, event.ydata)) + if (i < 0 or j < 0 or i >= self.width or j >= self.height): + return + + # left mouse button: reveal square. If the square is already clicked + # and the correct # of mines are marked, then clear surroundig squares + if event.button == 1: + if (self.clicked[i, j]): + flag_count = self.flags[max(0, i - 1):i + 2, + max(0, j - 1):j + 2].astype(bool).sum() + if self.counts[i, j] == flag_count: + for ii, jj in product(range(max(0, i - 1), + min(self.width, i + 2)), + range(max(0, j - 1), + min(self.height, j + 2))): + self._click_square(ii, jj) + else: + self._click_square(i, j) + + # right mouse button: mark/unmark flag + elif (event.button == 3) and (not self.clicked[i, j]): + self._toggle_mine_flag(i, j) + + self.fig.canvas.draw() + + +if __name__ == '__main__': + ms = MineSweeper.intermediate() + plt.show() diff --git a/docs/pandas_demo_from_jreback.ipynb b/docs/pandas_demo_from_jreback.ipynb index a4c463c..579049e 100644 --- a/docs/pandas_demo_from_jreback.ipynb +++ b/docs/pandas_demo_from_jreback.ipynb @@ -10,675 +10,9 @@ }, { "cell_type": "code", - "execution_count": 1, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - " \n", - "\n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
\n", - " \n", - " sepal_length\n", - " \n", - " sepal_width\n", - " \n", - " petal_length\n", - " \n", - " petal_width\n", - " \n", - " species\n", - " \n", - "
\n", - " \n", - " 45\n", - " \n", - " \n", - " \n", - " \n", - " 4.8\n", - " \n", - " \n", - " \n", - " \n", - " 3.0\n", - " \n", - " \n", - " \n", - " \n", - " 1.4\n", - " \n", - " \n", - " \n", - " \n", - " 0.3\n", - " \n", - " \n", - " \n", - " \n", - " setosa\n", - " \n", - " \n", - "
\n", - " \n", - " 125\n", - " \n", - " \n", - " \n", - " \n", - " 7.2\n", - " \n", - " \n", - " \n", - " \n", - " 3.2\n", - " \n", - " \n", - " \n", - " \n", - " 6.0\n", - " \n", - " \n", - " \n", - " \n", - " 1.8\n", - " \n", - " \n", - " \n", - " \n", - " virginica\n", - " \n", - " \n", - "
\n", - " \n", - " 49\n", - " \n", - " \n", - " \n", - " \n", - " 5.0\n", - " \n", - " \n", - " \n", - " \n", - " 3.3\n", - " \n", - " \n", - " \n", - " \n", - " 1.4\n", - " \n", - " \n", - " \n", - " \n", - " 0.2\n", - " \n", - " \n", - " \n", - " \n", - " setosa\n", - " \n", - " \n", - "
\n", - " \n", - " 95\n", - " \n", - " \n", - " \n", - " \n", - " 5.7\n", - " \n", - " \n", - " \n", - " \n", - " 3.0\n", - " \n", - " \n", - " \n", - " \n", - " 4.2\n", - " \n", - " \n", - " \n", - " \n", - " 1.2\n", - " \n", - " \n", - " \n", - " \n", - " versicolor\n", - " \n", - " \n", - "
\n", - " \n", - " 84\n", - " \n", - " \n", - " \n", - " \n", - " 5.4\n", - " \n", - " \n", - " \n", - " \n", - " 3.0\n", - " \n", - " \n", - " \n", - " \n", - " 4.5\n", - " \n", - " \n", - " \n", - " \n", - " 1.5\n", - " \n", - " \n", - " \n", - " \n", - " versicolor\n", - " \n", - " \n", - "
\n", - " \n", - " 16\n", - " \n", - " \n", - " \n", - " \n", - " 5.4\n", - " \n", - " \n", - " \n", - " \n", - " 3.9\n", - " \n", - " \n", - " \n", - " \n", - " 1.3\n", - " \n", - " \n", - " \n", - " \n", - " 0.4\n", - " \n", - " \n", - " \n", - " \n", - " setosa\n", - " \n", - " \n", - "
\n", - " \n", - " 146\n", - " \n", - " \n", - " \n", - " \n", - " 6.3\n", - " \n", - " \n", - " \n", - " \n", - " 2.5\n", - " \n", - " \n", - " \n", - " \n", - " 5.0\n", - " \n", - " \n", - " \n", - " \n", - " 1.9\n", - " \n", - " \n", - " \n", - " \n", - " virginica\n", - " \n", - " \n", - "
\n", - " " - ], - "text/plain": [ - "" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "%matplotlib inline\n", "import pandas as pd\n", @@ -723,32 +57,9 @@ }, { "cell_type": "code", - "execution_count": 2, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\nSUVORK5CYII=\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "# assign = define new temporary columns (like 'mutate' in R language)\n", "(df\n", @@ -762,32 +73,9 @@ }, { "cell_type": "code", - "execution_count": 3, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\noRFtfi7aa1Yl8GQTi9nFqdy/aSHHz0vjEgXrKp46srqk5zTZW/D4Aunbo+qm3tbIKc1pSczq6Bi7\nmqXXYMKP82I1aqMRZ1MTmSuX47ZYJJO4yRgPub/6iq6nmcnTQ1/cFD0p/PZ3Vsqvbw4dD/Z9kZxs\nOwMEfH7r5uSTc8dmfPWN6EwmPHanJCqFt8ECEVbqyVgX8RAcm9q/+JLMFcuRadSo83Ox2JpI3rIB\nT0s9ZbpUjii1oTo53XGWGcnTkDP4mqnoetepldy/aSFXzc2ltXXgsWWijDUThYQn1AcOHODBBx8k\nOzsbn89HV1cXP/vZz7jiisE/EbndboB+BWCqqqp47LHHmDNnTqLZGzYyGRKxFwgIvtwfrXksGBHc\nUdboxhQZLd0dPNR9mPuKV9H69G9Cx67cWcmfe//XKgM+tDr18D78x7JGy5AxtziNijLTgKuo47Vk\nX27I5YHnn1ucxonqdv4AJGmkXUYizxqtmmm2NpCZJFVD1So1ZOkz+Euv1frrad+i9uVXAGijV/kt\nJx8UYx5Kf9wRfE9lBCydQXS9dRVPHRUYpfGOu9xW6F0ol66Tts1cQ1afaDp9fszKFWiXrUTGx1T/\nOuwH3Ccu9SSMh9xffUXXU+T6jxPV7dhdR8g1hBfpa5V9+7wktY5fHP5Pti2oDPu/Z8KuOUsoreuW\nxE5uP3SYktw8EZt6EIJjk9fuoOWTT5HvrOTz9E6m1vnxvfjb0CRqw5bVnO8dj+xuO4dbv2RpxpJ+\nrhomevyYNzWducVpyOV9F6pO1LFmopDwaPSjH/2IX//618yaNQuAY8eO8YMf/IA33nhjkJRw6tQp\nHA4HO3bswOv1ct9997FgQXipflVVFU899RTNzc1UVFSwc+fORLPZh25XD51/a0eh6nX56PHgLvWA\nSnqeXC4Ve4Gw4MvoeFxPHoI+tC2OVuQKGY22Zgrz8sjYeQtySzOqogJOZTjRywIdirvGLHlR1Q3t\nVMy7mmStkWZbC+WmMtoc7YPfd4CoHUGrUW2jjaIcQ7/W6Fg+bPGmvRwJPu+Z2g5u/YcZ6DQKZpek\n0dbZnfCzzkyezs1zv02jtYnc5Bya7a1o5Go2zPkmHc4uDBo9CrmSLpeVctMSjliO462T+pMqU1OE\nBa0Xn8/HZ6ebqWmwccfaOfg8XjQaJXZHD/dvWhhXHUVG+cjSZdBkb8Xj7aFy7lrs3XYq566lwdZE\n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\nYSbhf+gfN09kgJTNAAAAAElFTkSuQmCC\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "# pipe = like '%>%' in R language\n", "(df\n", @@ -800,796 +88,9 @@ }, { "cell_type": "code", - "execution_count": 4, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - " \n", - "\n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
\n", - " \n", - " A\n", - " \n", - " B\n", - " \n", - " C\n", - " \n", - " D\n", - " \n", - " E\n", - " \n", - "
\n", - " \n", - " 0\n", - " \n", - " \n", - " \n", - " \n", - " 1.0\n", - " \n", - " \n", - " \n", - " \n", - " 1.329212\n", - " \n", - " \n", - " \n", - " \n", - " nan\n", - " \n", - " \n", - " \n", - " \n", - " -0.31628\n", - " \n", - " \n", - " \n", - " \n", - " -0.99081\n", - " \n", - " \n", - "
\n", - " \n", - " 1\n", - " \n", - " \n", - " \n", - " \n", - " 2.0\n", - " \n", - " \n", - " \n", - " \n", - " -1.070816\n", - " \n", - " \n", - " \n", - " \n", - " -1.438713\n", - " \n", - " \n", - " \n", - " \n", - " 0.564417\n", - " \n", - " \n", - " \n", - " \n", - " 0.295722\n", - " \n", - " \n", - "
\n", - " \n", - " 2\n", - " \n", - " \n", - " \n", - " \n", - " 3.0\n", - " \n", - " \n", - " \n", - " \n", - " -1.626404\n", - " \n", - " \n", - " \n", - " \n", - " 0.219565\n", - " \n", - " \n", - " \n", - " \n", - " 0.678805\n", - " \n", - " \n", - " \n", - " \n", - " 1.889273\n", - " \n", - " \n", - "
\n", - " \n", - " 3\n", - " \n", - " \n", - " \n", - " \n", - " 4.0\n", - " \n", - " \n", - " \n", - " \n", - " 0.961538\n", - " \n", - " \n", - " \n", - " \n", - " 0.104011\n", - " \n", - " \n", - " \n", - " \n", - " -0.481165\n", - " \n", - " \n", - " \n", - " \n", - " 0.850229\n", - " \n", - " \n", - "
\n", - " \n", - " 4\n", - " \n", - " \n", - " \n", - " \n", - " 5.0\n", - " \n", - " \n", - " \n", - " \n", - " 1.453425\n", - " \n", - " \n", - " \n", - " \n", - " 1.057737\n", - " \n", - " \n", - " \n", - " \n", - " 0.165562\n", - " \n", - " \n", - " \n", - " \n", - " 0.515018\n", - " \n", - " \n", - "
\n", - " \n", - " 5\n", - " \n", - " \n", - " \n", - " \n", - " 6.0\n", - " \n", - " \n", - " \n", - " \n", - " -1.336936\n", - " \n", - " \n", - " \n", - " \n", - " 0.562861\n", - " \n", - " \n", - " \n", - " \n", - " 1.392855\n", - " \n", - " \n", - " \n", - " \n", - " -0.063328\n", - " \n", - " \n", - "
\n", - " \n", - " 6\n", - " \n", - " \n", - " \n", - " \n", - " 7.0\n", - " \n", - " \n", - " \n", - " \n", - " 0.121668\n", - " \n", - " \n", - " \n", - " \n", - " 1.207603\n", - " \n", - " \n", - " \n", - " \n", - " -0.00204\n", - " \n", - " \n", - " \n", - " \n", - " 1.627796\n", - " \n", - " \n", - "
\n", - " \n", - " 7\n", - " \n", - " \n", - " \n", - " \n", - " 8.0\n", - " \n", - " \n", - " \n", - " \n", - " 0.354493\n", - " \n", - " \n", - " \n", - " \n", - " 1.037528\n", - " \n", - " \n", - " \n", - " \n", - " -0.385684\n", - " \n", - " \n", - " \n", - " \n", - " 0.519818\n", - " \n", - " \n", - "
\n", - " \n", - " 8\n", - " \n", - " \n", - " \n", - " \n", - " 9.0\n", - " \n", - " \n", - " \n", - " \n", - " 1.686583\n", - " \n", - " \n", - " \n", - " \n", - " -1.325963\n", - " \n", - " \n", - " \n", - " \n", - " 1.428984\n", - " \n", - " \n", - " \n", - " \n", - " -2.089354\n", - " \n", - " \n", - "
\n", - " \n", - " 9\n", - " \n", - " \n", - " \n", - " \n", - " 10.0\n", - " \n", - " \n", - " \n", - " \n", - " -0.12982\n", - " \n", - " \n", - " \n", - " \n", - " 0.631523\n", - " \n", - " \n", - " \n", - " \n", - " -0.586538\n", - " \n", - " \n", - " \n", - " \n", - " 0.29072\n", - " \n", - " \n", - "
\n", - " " - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "# Pandas interactive\n", "import pandas as pd\n", @@ -1617,419 +118,9 @@ }, { "cell_type": "code", - "execution_count": 5, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Hover to highlight.
\n", - " \n", - " A\n", - " \n", - " B\n", - " \n", - " C\n", - " \n", - " D\n", - " \n", - " E\n", - " \n", - "
\n", - " \n", - " 0\n", - " \n", - " \n", - " \n", - " \n", - " 1.0\n", - " \n", - " \n", - " \n", - " \n", - " 1.329212\n", - " \n", - " \n", - " \n", - " \n", - " nan\n", - " \n", - " \n", - " \n", - " \n", - " -0.31628\n", - " \n", - " \n", - " \n", - " \n", - " -0.99081\n", - " \n", - " \n", - "
\n", - " \n", - " 1\n", - " \n", - " \n", - " \n", - " \n", - " 2.0\n", - " \n", - " \n", - " \n", - " \n", - " -1.070816\n", - " \n", - " \n", - " \n", - " \n", - " -1.438713\n", - " \n", - " \n", - " \n", - " \n", - " 0.564417\n", - " \n", - " \n", - " \n", - " \n", - " 0.295722\n", - " \n", - " \n", - "
\n", - " \n", - " 2\n", - " \n", - " \n", - " \n", - " \n", - " 3.0\n", - " \n", - " \n", - " \n", - " \n", - " -1.626404\n", - " \n", - " \n", - " \n", - " \n", - " 0.219565\n", - " \n", - " \n", - " \n", - " \n", - " 0.678805\n", - " \n", - " \n", - " \n", - " \n", - " 1.889273\n", - " \n", - " \n", - "
\n", - " \n", - " 3\n", - " \n", - " \n", - " \n", - " \n", - " 4.0\n", - " \n", - " \n", - " \n", - " \n", - " 0.961538\n", - " \n", - " \n", - " \n", - " \n", - " 0.104011\n", - " \n", - " \n", - " \n", - " \n", - " -0.481165\n", - " \n", - " \n", - " \n", - " \n", - " 0.850229\n", - " \n", - " \n", - "
\n", - " \n", - " 4\n", - " \n", - " \n", - " \n", - " \n", - " 5.0\n", - " \n", - " \n", - " \n", - " \n", - " 1.453425\n", - " \n", - " \n", - " \n", - " \n", - " 1.057737\n", - " \n", - " \n", - " \n", - " \n", - " 0.165562\n", - " \n", - " \n", - " \n", - " \n", - " 0.515018\n", - " \n", - " \n", - "
\n", - " \n", - " 5\n", - " \n", - " \n", - " \n", - " \n", - " 6.0\n", - " \n", - " \n", - " \n", - " \n", - " -1.336936\n", - " \n", - " \n", - " \n", - " \n", - " 0.562861\n", - " \n", - " \n", - " \n", - " \n", - " 1.392855\n", - " \n", - " \n", - " \n", - " \n", - " -0.063328\n", - " \n", - " \n", - "
\n", - " \n", - " 6\n", - " \n", - " \n", - " \n", - " \n", - " 7.0\n", - " \n", - " \n", - " \n", - " \n", - " 0.121668\n", - " \n", - " \n", - " \n", - " \n", - " 1.207603\n", - " \n", - " \n", - " \n", - " \n", - " -0.00204\n", - " \n", - " \n", - " \n", - " \n", - " 1.627796\n", - " \n", - " \n", - "
\n", - " \n", - " 7\n", - " \n", - " \n", - " \n", - " \n", - " 8.0\n", - " \n", - " \n", - " \n", - " \n", - " 0.354493\n", - " \n", - " \n", - " \n", - " \n", - " 1.037528\n", - " \n", - " \n", - " \n", - " \n", - " -0.385684\n", - " \n", - " \n", - " \n", - " \n", - " 0.519818\n", - " \n", - " \n", - "
\n", - " \n", - " 8\n", - " \n", - " \n", - " \n", - " \n", - " 9.0\n", - " \n", - " \n", - " \n", - " \n", - " 1.686583\n", - " \n", - " \n", - " \n", - " \n", - " -1.325963\n", - " \n", - " \n", - " \n", - " \n", - " 1.428984\n", - " \n", - " \n", - " \n", - " \n", - " -2.089354\n", - " \n", - " \n", - "
\n", - " \n", - " 9\n", - " \n", - " \n", - " \n", - " \n", - " 10.0\n", - " \n", - " \n", - " \n", - " \n", - " -0.12982\n", - " \n", - " \n", - " \n", - " \n", - " 0.631523\n", - " \n", - " \n", - " \n", - " \n", - " -0.586538\n", - " \n", - " \n", - " \n", - " \n", - " 0.29072\n", - " \n", - " \n", - "
\n", - " " - ], - "text/plain": [ - "" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "from IPython.display import HTML\n", "\n", @@ -2064,9 +155,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [] } @@ -2087,9 +176,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.4.4" + "version": "3.6.2" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/docs/pima-indians-diabetes.data b/docs/pima-indians-diabetes.data new file mode 100644 index 0000000..982aab8 --- /dev/null +++ b/docs/pima-indians-diabetes.data @@ -0,0 +1,768 @@ +6,148,72,35,0,33.6,0.627,50,1 +1,85,66,29,0,26.6,0.351,31,0 +8,183,64,0,0,23.3,0.672,32,1 +1,89,66,23,94,28.1,0.167,21,0 +0,137,40,35,168,43.1,2.288,33,1 +5,116,74,0,0,25.6,0.201,30,0 +3,78,50,32,88,31.0,0.248,26,1 +10,115,0,0,0,35.3,0.134,29,0 +2,197,70,45,543,30.5,0.158,53,1 +8,125,96,0,0,0.0,0.232,54,1 +4,110,92,0,0,37.6,0.191,30,0 +10,168,74,0,0,38.0,0.537,34,1 +10,139,80,0,0,27.1,1.441,57,0 +1,189,60,23,846,30.1,0.398,59,1 +5,166,72,19,175,25.8,0.587,51,1 +7,100,0,0,0,30.0,0.484,32,1 +0,118,84,47,230,45.8,0.551,31,1 +7,107,74,0,0,29.6,0.254,31,1 +1,103,30,38,83,43.3,0.183,33,0 +1,115,70,30,96,34.6,0.529,32,1 +3,126,88,41,235,39.3,0.704,27,0 +8,99,84,0,0,35.4,0.388,50,0 +7,196,90,0,0,39.8,0.451,41,1 +9,119,80,35,0,29.0,0.263,29,1 +11,143,94,33,146,36.6,0.254,51,1 +10,125,70,26,115,31.1,0.205,41,1 +7,147,76,0,0,39.4,0.257,43,1 +1,97,66,15,140,23.2,0.487,22,0 +13,145,82,19,110,22.2,0.245,57,0 +5,117,92,0,0,34.1,0.337,38,0 +5,109,75,26,0,36.0,0.546,60,0 +3,158,76,36,245,31.6,0.851,28,1 +3,88,58,11,54,24.8,0.267,22,0 +6,92,92,0,0,19.9,0.188,28,0 +10,122,78,31,0,27.6,0.512,45,0 +4,103,60,33,192,24.0,0.966,33,0 +11,138,76,0,0,33.2,0.420,35,0 +9,102,76,37,0,32.9,0.665,46,1 +2,90,68,42,0,38.2,0.503,27,1 +4,111,72,47,207,37.1,1.390,56,1 +3,180,64,25,70,34.0,0.271,26,0 +7,133,84,0,0,40.2,0.696,37,0 +7,106,92,18,0,22.7,0.235,48,0 +9,171,110,24,240,45.4,0.721,54,1 +7,159,64,0,0,27.4,0.294,40,0 +0,180,66,39,0,42.0,1.893,25,1 +1,146,56,0,0,29.7,0.564,29,0 +2,71,70,27,0,28.0,0.586,22,0 +7,103,66,32,0,39.1,0.344,31,1 +7,105,0,0,0,0.0,0.305,24,0 +1,103,80,11,82,19.4,0.491,22,0 +1,101,50,15,36,24.2,0.526,26,0 +5,88,66,21,23,24.4,0.342,30,0 +8,176,90,34,300,33.7,0.467,58,1 +7,150,66,42,342,34.7,0.718,42,0 +1,73,50,10,0,23.0,0.248,21,0 +7,187,68,39,304,37.7,0.254,41,1 +0,100,88,60,110,46.8,0.962,31,0 +0,146,82,0,0,40.5,1.781,44,0 +0,105,64,41,142,41.5,0.173,22,0 +2,84,0,0,0,0.0,0.304,21,0 +8,133,72,0,0,32.9,0.270,39,1 +5,44,62,0,0,25.0,0.587,36,0 +2,141,58,34,128,25.4,0.699,24,0 +7,114,66,0,0,32.8,0.258,42,1 +5,99,74,27,0,29.0,0.203,32,0 +0,109,88,30,0,32.5,0.855,38,1 +2,109,92,0,0,42.7,0.845,54,0 +1,95,66,13,38,19.6,0.334,25,0 +4,146,85,27,100,28.9,0.189,27,0 +2,100,66,20,90,32.9,0.867,28,1 +5,139,64,35,140,28.6,0.411,26,0 +13,126,90,0,0,43.4,0.583,42,1 +4,129,86,20,270,35.1,0.231,23,0 +1,79,75,30,0,32.0,0.396,22,0 +1,0,48,20,0,24.7,0.140,22,0 +7,62,78,0,0,32.6,0.391,41,0 +5,95,72,33,0,37.7,0.370,27,0 +0,131,0,0,0,43.2,0.270,26,1 +2,112,66,22,0,25.0,0.307,24,0 +3,113,44,13,0,22.4,0.140,22,0 +2,74,0,0,0,0.0,0.102,22,0 +7,83,78,26,71,29.3,0.767,36,0 +0,101,65,28,0,24.6,0.237,22,0 +5,137,108,0,0,48.8,0.227,37,1 +2,110,74,29,125,32.4,0.698,27,0 +13,106,72,54,0,36.6,0.178,45,0 +2,100,68,25,71,38.5,0.324,26,0 +15,136,70,32,110,37.1,0.153,43,1 +1,107,68,19,0,26.5,0.165,24,0 +1,80,55,0,0,19.1,0.258,21,0 +4,123,80,15,176,32.0,0.443,34,0 +7,81,78,40,48,46.7,0.261,42,0 +4,134,72,0,0,23.8,0.277,60,1 +2,142,82,18,64,24.7,0.761,21,0 +6,144,72,27,228,33.9,0.255,40,0 +2,92,62,28,0,31.6,0.130,24,0 +1,71,48,18,76,20.4,0.323,22,0 +6,93,50,30,64,28.7,0.356,23,0 +1,122,90,51,220,49.7,0.325,31,1 +1,163,72,0,0,39.0,1.222,33,1 +1,151,60,0,0,26.1,0.179,22,0 +0,125,96,0,0,22.5,0.262,21,0 +1,81,72,18,40,26.6,0.283,24,0 +2,85,65,0,0,39.6,0.930,27,0 +1,126,56,29,152,28.7,0.801,21,0 +1,96,122,0,0,22.4,0.207,27,0 +4,144,58,28,140,29.5,0.287,37,0 +3,83,58,31,18,34.3,0.336,25,0 +0,95,85,25,36,37.4,0.247,24,1 +3,171,72,33,135,33.3,0.199,24,1 +8,155,62,26,495,34.0,0.543,46,1 +1,89,76,34,37,31.2,0.192,23,0 +4,76,62,0,0,34.0,0.391,25,0 +7,160,54,32,175,30.5,0.588,39,1 +4,146,92,0,0,31.2,0.539,61,1 +5,124,74,0,0,34.0,0.220,38,1 +5,78,48,0,0,33.7,0.654,25,0 +4,97,60,23,0,28.2,0.443,22,0 +4,99,76,15,51,23.2,0.223,21,0 +0,162,76,56,100,53.2,0.759,25,1 +6,111,64,39,0,34.2,0.260,24,0 +2,107,74,30,100,33.6,0.404,23,0 +5,132,80,0,0,26.8,0.186,69,0 +0,113,76,0,0,33.3,0.278,23,1 +1,88,30,42,99,55.0,0.496,26,1 +3,120,70,30,135,42.9,0.452,30,0 +1,118,58,36,94,33.3,0.261,23,0 +1,117,88,24,145,34.5,0.403,40,1 +0,105,84,0,0,27.9,0.741,62,1 +4,173,70,14,168,29.7,0.361,33,1 +9,122,56,0,0,33.3,1.114,33,1 +3,170,64,37,225,34.5,0.356,30,1 +8,84,74,31,0,38.3,0.457,39,0 +2,96,68,13,49,21.1,0.647,26,0 +2,125,60,20,140,33.8,0.088,31,0 +0,100,70,26,50,30.8,0.597,21,0 +0,93,60,25,92,28.7,0.532,22,0 +0,129,80,0,0,31.2,0.703,29,0 +5,105,72,29,325,36.9,0.159,28,0 +3,128,78,0,0,21.1,0.268,55,0 +5,106,82,30,0,39.5,0.286,38,0 +2,108,52,26,63,32.5,0.318,22,0 +10,108,66,0,0,32.4,0.272,42,1 +4,154,62,31,284,32.8,0.237,23,0 +0,102,75,23,0,0.0,0.572,21,0 +9,57,80,37,0,32.8,0.096,41,0 +2,106,64,35,119,30.5,1.400,34,0 +5,147,78,0,0,33.7,0.218,65,0 +2,90,70,17,0,27.3,0.085,22,0 +1,136,74,50,204,37.4,0.399,24,0 +4,114,65,0,0,21.9,0.432,37,0 +9,156,86,28,155,34.3,1.189,42,1 +1,153,82,42,485,40.6,0.687,23,0 +8,188,78,0,0,47.9,0.137,43,1 +7,152,88,44,0,50.0,0.337,36,1 +2,99,52,15,94,24.6,0.637,21,0 +1,109,56,21,135,25.2,0.833,23,0 +2,88,74,19,53,29.0,0.229,22,0 +17,163,72,41,114,40.9,0.817,47,1 +4,151,90,38,0,29.7,0.294,36,0 +7,102,74,40,105,37.2,0.204,45,0 +0,114,80,34,285,44.2,0.167,27,0 +2,100,64,23,0,29.7,0.368,21,0 +0,131,88,0,0,31.6,0.743,32,1 +6,104,74,18,156,29.9,0.722,41,1 +3,148,66,25,0,32.5,0.256,22,0 +4,120,68,0,0,29.6,0.709,34,0 +4,110,66,0,0,31.9,0.471,29,0 +3,111,90,12,78,28.4,0.495,29,0 +6,102,82,0,0,30.8,0.180,36,1 +6,134,70,23,130,35.4,0.542,29,1 +2,87,0,23,0,28.9,0.773,25,0 +1,79,60,42,48,43.5,0.678,23,0 +2,75,64,24,55,29.7,0.370,33,0 +8,179,72,42,130,32.7,0.719,36,1 +6,85,78,0,0,31.2,0.382,42,0 +0,129,110,46,130,67.1,0.319,26,1 +5,143,78,0,0,45.0,0.190,47,0 +5,130,82,0,0,39.1,0.956,37,1 +6,87,80,0,0,23.2,0.084,32,0 +0,119,64,18,92,34.9,0.725,23,0 +1,0,74,20,23,27.7,0.299,21,0 +5,73,60,0,0,26.8,0.268,27,0 +4,141,74,0,0,27.6,0.244,40,0 +7,194,68,28,0,35.9,0.745,41,1 +8,181,68,36,495,30.1,0.615,60,1 +1,128,98,41,58,32.0,1.321,33,1 +8,109,76,39,114,27.9,0.640,31,1 +5,139,80,35,160,31.6,0.361,25,1 +3,111,62,0,0,22.6,0.142,21,0 +9,123,70,44,94,33.1,0.374,40,0 +7,159,66,0,0,30.4,0.383,36,1 +11,135,0,0,0,52.3,0.578,40,1 +8,85,55,20,0,24.4,0.136,42,0 +5,158,84,41,210,39.4,0.395,29,1 +1,105,58,0,0,24.3,0.187,21,0 +3,107,62,13,48,22.9,0.678,23,1 +4,109,64,44,99,34.8,0.905,26,1 +4,148,60,27,318,30.9,0.150,29,1 +0,113,80,16,0,31.0,0.874,21,0 +1,138,82,0,0,40.1,0.236,28,0 +0,108,68,20,0,27.3,0.787,32,0 +2,99,70,16,44,20.4,0.235,27,0 +6,103,72,32,190,37.7,0.324,55,0 +5,111,72,28,0,23.9,0.407,27,0 +8,196,76,29,280,37.5,0.605,57,1 +5,162,104,0,0,37.7,0.151,52,1 +1,96,64,27,87,33.2,0.289,21,0 +7,184,84,33,0,35.5,0.355,41,1 +2,81,60,22,0,27.7,0.290,25,0 +0,147,85,54,0,42.8,0.375,24,0 +7,179,95,31,0,34.2,0.164,60,0 +0,140,65,26,130,42.6,0.431,24,1 +9,112,82,32,175,34.2,0.260,36,1 +12,151,70,40,271,41.8,0.742,38,1 +5,109,62,41,129,35.8,0.514,25,1 +6,125,68,30,120,30.0,0.464,32,0 +5,85,74,22,0,29.0,1.224,32,1 +5,112,66,0,0,37.8,0.261,41,1 +0,177,60,29,478,34.6,1.072,21,1 +2,158,90,0,0,31.6,0.805,66,1 +7,119,0,0,0,25.2,0.209,37,0 +7,142,60,33,190,28.8,0.687,61,0 +1,100,66,15,56,23.6,0.666,26,0 +1,87,78,27,32,34.6,0.101,22,0 +0,101,76,0,0,35.7,0.198,26,0 +3,162,52,38,0,37.2,0.652,24,1 +4,197,70,39,744,36.7,2.329,31,0 +0,117,80,31,53,45.2,0.089,24,0 +4,142,86,0,0,44.0,0.645,22,1 +6,134,80,37,370,46.2,0.238,46,1 +1,79,80,25,37,25.4,0.583,22,0 +4,122,68,0,0,35.0,0.394,29,0 +3,74,68,28,45,29.7,0.293,23,0 +4,171,72,0,0,43.6,0.479,26,1 +7,181,84,21,192,35.9,0.586,51,1 +0,179,90,27,0,44.1,0.686,23,1 +9,164,84,21,0,30.8,0.831,32,1 +0,104,76,0,0,18.4,0.582,27,0 +1,91,64,24,0,29.2,0.192,21,0 +4,91,70,32,88,33.1,0.446,22,0 +3,139,54,0,0,25.6,0.402,22,1 +6,119,50,22,176,27.1,1.318,33,1 +2,146,76,35,194,38.2,0.329,29,0 +9,184,85,15,0,30.0,1.213,49,1 +10,122,68,0,0,31.2,0.258,41,0 +0,165,90,33,680,52.3,0.427,23,0 +9,124,70,33,402,35.4,0.282,34,0 +1,111,86,19,0,30.1,0.143,23,0 +9,106,52,0,0,31.2,0.380,42,0 +2,129,84,0,0,28.0,0.284,27,0 +2,90,80,14,55,24.4,0.249,24,0 +0,86,68,32,0,35.8,0.238,25,0 +12,92,62,7,258,27.6,0.926,44,1 +1,113,64,35,0,33.6,0.543,21,1 +3,111,56,39,0,30.1,0.557,30,0 +2,114,68,22,0,28.7,0.092,25,0 +1,193,50,16,375,25.9,0.655,24,0 +11,155,76,28,150,33.3,1.353,51,1 +3,191,68,15,130,30.9,0.299,34,0 +3,141,0,0,0,30.0,0.761,27,1 +4,95,70,32,0,32.1,0.612,24,0 +3,142,80,15,0,32.4,0.200,63,0 +4,123,62,0,0,32.0,0.226,35,1 +5,96,74,18,67,33.6,0.997,43,0 +0,138,0,0,0,36.3,0.933,25,1 +2,128,64,42,0,40.0,1.101,24,0 +0,102,52,0,0,25.1,0.078,21,0 +2,146,0,0,0,27.5,0.240,28,1 +10,101,86,37,0,45.6,1.136,38,1 +2,108,62,32,56,25.2,0.128,21,0 +3,122,78,0,0,23.0,0.254,40,0 +1,71,78,50,45,33.2,0.422,21,0 +13,106,70,0,0,34.2,0.251,52,0 +2,100,70,52,57,40.5,0.677,25,0 +7,106,60,24,0,26.5,0.296,29,1 +0,104,64,23,116,27.8,0.454,23,0 +5,114,74,0,0,24.9,0.744,57,0 +2,108,62,10,278,25.3,0.881,22,0 +0,146,70,0,0,37.9,0.334,28,1 +10,129,76,28,122,35.9,0.280,39,0 +7,133,88,15,155,32.4,0.262,37,0 +7,161,86,0,0,30.4,0.165,47,1 +2,108,80,0,0,27.0,0.259,52,1 +7,136,74,26,135,26.0,0.647,51,0 +5,155,84,44,545,38.7,0.619,34,0 +1,119,86,39,220,45.6,0.808,29,1 +4,96,56,17,49,20.8,0.340,26,0 +5,108,72,43,75,36.1,0.263,33,0 +0,78,88,29,40,36.9,0.434,21,0 +0,107,62,30,74,36.6,0.757,25,1 +2,128,78,37,182,43.3,1.224,31,1 +1,128,48,45,194,40.5,0.613,24,1 +0,161,50,0,0,21.9,0.254,65,0 +6,151,62,31,120,35.5,0.692,28,0 +2,146,70,38,360,28.0,0.337,29,1 +0,126,84,29,215,30.7,0.520,24,0 +14,100,78,25,184,36.6,0.412,46,1 +8,112,72,0,0,23.6,0.840,58,0 +0,167,0,0,0,32.3,0.839,30,1 +2,144,58,33,135,31.6,0.422,25,1 +5,77,82,41,42,35.8,0.156,35,0 +5,115,98,0,0,52.9,0.209,28,1 +3,150,76,0,0,21.0,0.207,37,0 +2,120,76,37,105,39.7,0.215,29,0 +10,161,68,23,132,25.5,0.326,47,1 +0,137,68,14,148,24.8,0.143,21,0 +0,128,68,19,180,30.5,1.391,25,1 +2,124,68,28,205,32.9,0.875,30,1 +6,80,66,30,0,26.2,0.313,41,0 +0,106,70,37,148,39.4,0.605,22,0 +2,155,74,17,96,26.6,0.433,27,1 +3,113,50,10,85,29.5,0.626,25,0 +7,109,80,31,0,35.9,1.127,43,1 +2,112,68,22,94,34.1,0.315,26,0 +3,99,80,11,64,19.3,0.284,30,0 +3,182,74,0,0,30.5,0.345,29,1 +3,115,66,39,140,38.1,0.150,28,0 +6,194,78,0,0,23.5,0.129,59,1 +4,129,60,12,231,27.5,0.527,31,0 +3,112,74,30,0,31.6,0.197,25,1 +0,124,70,20,0,27.4,0.254,36,1 +13,152,90,33,29,26.8,0.731,43,1 +2,112,75,32,0,35.7,0.148,21,0 +1,157,72,21,168,25.6,0.123,24,0 +1,122,64,32,156,35.1,0.692,30,1 +10,179,70,0,0,35.1,0.200,37,0 +2,102,86,36,120,45.5,0.127,23,1 +6,105,70,32,68,30.8,0.122,37,0 +8,118,72,19,0,23.1,1.476,46,0 +2,87,58,16,52,32.7,0.166,25,0 +1,180,0,0,0,43.3,0.282,41,1 +12,106,80,0,0,23.6,0.137,44,0 +1,95,60,18,58,23.9,0.260,22,0 +0,165,76,43,255,47.9,0.259,26,0 +0,117,0,0,0,33.8,0.932,44,0 +5,115,76,0,0,31.2,0.343,44,1 +9,152,78,34,171,34.2,0.893,33,1 +7,178,84,0,0,39.9,0.331,41,1 +1,130,70,13,105,25.9,0.472,22,0 +1,95,74,21,73,25.9,0.673,36,0 +1,0,68,35,0,32.0,0.389,22,0 +5,122,86,0,0,34.7,0.290,33,0 +8,95,72,0,0,36.8,0.485,57,0 +8,126,88,36,108,38.5,0.349,49,0 +1,139,46,19,83,28.7,0.654,22,0 +3,116,0,0,0,23.5,0.187,23,0 +3,99,62,19,74,21.8,0.279,26,0 +5,0,80,32,0,41.0,0.346,37,1 +4,92,80,0,0,42.2,0.237,29,0 +4,137,84,0,0,31.2,0.252,30,0 +3,61,82,28,0,34.4,0.243,46,0 +1,90,62,12,43,27.2,0.580,24,0 +3,90,78,0,0,42.7,0.559,21,0 +9,165,88,0,0,30.4,0.302,49,1 +1,125,50,40,167,33.3,0.962,28,1 +13,129,0,30,0,39.9,0.569,44,1 +12,88,74,40,54,35.3,0.378,48,0 +1,196,76,36,249,36.5,0.875,29,1 +5,189,64,33,325,31.2,0.583,29,1 +5,158,70,0,0,29.8,0.207,63,0 +5,103,108,37,0,39.2,0.305,65,0 +4,146,78,0,0,38.5,0.520,67,1 +4,147,74,25,293,34.9,0.385,30,0 +5,99,54,28,83,34.0,0.499,30,0 +6,124,72,0,0,27.6,0.368,29,1 +0,101,64,17,0,21.0,0.252,21,0 +3,81,86,16,66,27.5,0.306,22,0 +1,133,102,28,140,32.8,0.234,45,1 +3,173,82,48,465,38.4,2.137,25,1 +0,118,64,23,89,0.0,1.731,21,0 +0,84,64,22,66,35.8,0.545,21,0 +2,105,58,40,94,34.9,0.225,25,0 +2,122,52,43,158,36.2,0.816,28,0 +12,140,82,43,325,39.2,0.528,58,1 +0,98,82,15,84,25.2,0.299,22,0 +1,87,60,37,75,37.2,0.509,22,0 +4,156,75,0,0,48.3,0.238,32,1 +0,93,100,39,72,43.4,1.021,35,0 +1,107,72,30,82,30.8,0.821,24,0 +0,105,68,22,0,20.0,0.236,22,0 +1,109,60,8,182,25.4,0.947,21,0 +1,90,62,18,59,25.1,1.268,25,0 +1,125,70,24,110,24.3,0.221,25,0 +1,119,54,13,50,22.3,0.205,24,0 +5,116,74,29,0,32.3,0.660,35,1 +8,105,100,36,0,43.3,0.239,45,1 +5,144,82,26,285,32.0,0.452,58,1 +3,100,68,23,81,31.6,0.949,28,0 +1,100,66,29,196,32.0,0.444,42,0 +5,166,76,0,0,45.7,0.340,27,1 +1,131,64,14,415,23.7,0.389,21,0 +4,116,72,12,87,22.1,0.463,37,0 +4,158,78,0,0,32.9,0.803,31,1 +2,127,58,24,275,27.7,1.600,25,0 +3,96,56,34,115,24.7,0.944,39,0 +0,131,66,40,0,34.3,0.196,22,1 +3,82,70,0,0,21.1,0.389,25,0 +3,193,70,31,0,34.9,0.241,25,1 +4,95,64,0,0,32.0,0.161,31,1 +6,137,61,0,0,24.2,0.151,55,0 +5,136,84,41,88,35.0,0.286,35,1 +9,72,78,25,0,31.6,0.280,38,0 +5,168,64,0,0,32.9,0.135,41,1 +2,123,48,32,165,42.1,0.520,26,0 +4,115,72,0,0,28.9,0.376,46,1 +0,101,62,0,0,21.9,0.336,25,0 +8,197,74,0,0,25.9,1.191,39,1 +1,172,68,49,579,42.4,0.702,28,1 +6,102,90,39,0,35.7,0.674,28,0 +1,112,72,30,176,34.4,0.528,25,0 +1,143,84,23,310,42.4,1.076,22,0 +1,143,74,22,61,26.2,0.256,21,0 +0,138,60,35,167,34.6,0.534,21,1 +3,173,84,33,474,35.7,0.258,22,1 +1,97,68,21,0,27.2,1.095,22,0 +4,144,82,32,0,38.5,0.554,37,1 +1,83,68,0,0,18.2,0.624,27,0 +3,129,64,29,115,26.4,0.219,28,1 +1,119,88,41,170,45.3,0.507,26,0 +2,94,68,18,76,26.0,0.561,21,0 +0,102,64,46,78,40.6,0.496,21,0 +2,115,64,22,0,30.8,0.421,21,0 +8,151,78,32,210,42.9,0.516,36,1 +4,184,78,39,277,37.0,0.264,31,1 +0,94,0,0,0,0.0,0.256,25,0 +1,181,64,30,180,34.1,0.328,38,1 +0,135,94,46,145,40.6,0.284,26,0 +1,95,82,25,180,35.0,0.233,43,1 +2,99,0,0,0,22.2,0.108,23,0 +3,89,74,16,85,30.4,0.551,38,0 +1,80,74,11,60,30.0,0.527,22,0 +2,139,75,0,0,25.6,0.167,29,0 +1,90,68,8,0,24.5,1.138,36,0 +0,141,0,0,0,42.4,0.205,29,1 +12,140,85,33,0,37.4,0.244,41,0 +5,147,75,0,0,29.9,0.434,28,0 +1,97,70,15,0,18.2,0.147,21,0 +6,107,88,0,0,36.8,0.727,31,0 +0,189,104,25,0,34.3,0.435,41,1 +2,83,66,23,50,32.2,0.497,22,0 +4,117,64,27,120,33.2,0.230,24,0 +8,108,70,0,0,30.5,0.955,33,1 +4,117,62,12,0,29.7,0.380,30,1 +0,180,78,63,14,59.4,2.420,25,1 +1,100,72,12,70,25.3,0.658,28,0 +0,95,80,45,92,36.5,0.330,26,0 +0,104,64,37,64,33.6,0.510,22,1 +0,120,74,18,63,30.5,0.285,26,0 +1,82,64,13,95,21.2,0.415,23,0 +2,134,70,0,0,28.9,0.542,23,1 +0,91,68,32,210,39.9,0.381,25,0 +2,119,0,0,0,19.6,0.832,72,0 +2,100,54,28,105,37.8,0.498,24,0 +14,175,62,30,0,33.6,0.212,38,1 +1,135,54,0,0,26.7,0.687,62,0 +5,86,68,28,71,30.2,0.364,24,0 +10,148,84,48,237,37.6,1.001,51,1 +9,134,74,33,60,25.9,0.460,81,0 +9,120,72,22,56,20.8,0.733,48,0 +1,71,62,0,0,21.8,0.416,26,0 +8,74,70,40,49,35.3,0.705,39,0 +5,88,78,30,0,27.6,0.258,37,0 +10,115,98,0,0,24.0,1.022,34,0 +0,124,56,13,105,21.8,0.452,21,0 +0,74,52,10,36,27.8,0.269,22,0 +0,97,64,36,100,36.8,0.600,25,0 +8,120,0,0,0,30.0,0.183,38,1 +6,154,78,41,140,46.1,0.571,27,0 +1,144,82,40,0,41.3,0.607,28,0 +0,137,70,38,0,33.2,0.170,22,0 +0,119,66,27,0,38.8,0.259,22,0 +7,136,90,0,0,29.9,0.210,50,0 +4,114,64,0,0,28.9,0.126,24,0 +0,137,84,27,0,27.3,0.231,59,0 +2,105,80,45,191,33.7,0.711,29,1 +7,114,76,17,110,23.8,0.466,31,0 +8,126,74,38,75,25.9,0.162,39,0 +4,132,86,31,0,28.0,0.419,63,0 +3,158,70,30,328,35.5,0.344,35,1 +0,123,88,37,0,35.2,0.197,29,0 +4,85,58,22,49,27.8,0.306,28,0 +0,84,82,31,125,38.2,0.233,23,0 +0,145,0,0,0,44.2,0.630,31,1 +0,135,68,42,250,42.3,0.365,24,1 +1,139,62,41,480,40.7,0.536,21,0 +0,173,78,32,265,46.5,1.159,58,0 +4,99,72,17,0,25.6,0.294,28,0 +8,194,80,0,0,26.1,0.551,67,0 +2,83,65,28,66,36.8,0.629,24,0 +2,89,90,30,0,33.5,0.292,42,0 +4,99,68,38,0,32.8,0.145,33,0 +4,125,70,18,122,28.9,1.144,45,1 +3,80,0,0,0,0.0,0.174,22,0 +6,166,74,0,0,26.6,0.304,66,0 +5,110,68,0,0,26.0,0.292,30,0 +2,81,72,15,76,30.1,0.547,25,0 +7,195,70,33,145,25.1,0.163,55,1 +6,154,74,32,193,29.3,0.839,39,0 +2,117,90,19,71,25.2,0.313,21,0 +3,84,72,32,0,37.2,0.267,28,0 +6,0,68,41,0,39.0,0.727,41,1 +7,94,64,25,79,33.3,0.738,41,0 +3,96,78,39,0,37.3,0.238,40,0 +10,75,82,0,0,33.3,0.263,38,0 +0,180,90,26,90,36.5,0.314,35,1 +1,130,60,23,170,28.6,0.692,21,0 +2,84,50,23,76,30.4,0.968,21,0 +8,120,78,0,0,25.0,0.409,64,0 +12,84,72,31,0,29.7,0.297,46,1 +0,139,62,17,210,22.1,0.207,21,0 +9,91,68,0,0,24.2,0.200,58,0 +2,91,62,0,0,27.3,0.525,22,0 +3,99,54,19,86,25.6,0.154,24,0 +3,163,70,18,105,31.6,0.268,28,1 +9,145,88,34,165,30.3,0.771,53,1 +7,125,86,0,0,37.6,0.304,51,0 +13,76,60,0,0,32.8,0.180,41,0 +6,129,90,7,326,19.6,0.582,60,0 +2,68,70,32,66,25.0,0.187,25,0 +3,124,80,33,130,33.2,0.305,26,0 +6,114,0,0,0,0.0,0.189,26,0 +9,130,70,0,0,34.2,0.652,45,1 +3,125,58,0,0,31.6,0.151,24,0 +3,87,60,18,0,21.8,0.444,21,0 +1,97,64,19,82,18.2,0.299,21,0 +3,116,74,15,105,26.3,0.107,24,0 +0,117,66,31,188,30.8,0.493,22,0 +0,111,65,0,0,24.6,0.660,31,0 +2,122,60,18,106,29.8,0.717,22,0 +0,107,76,0,0,45.3,0.686,24,0 +1,86,66,52,65,41.3,0.917,29,0 +6,91,0,0,0,29.8,0.501,31,0 +1,77,56,30,56,33.3,1.251,24,0 +4,132,0,0,0,32.9,0.302,23,1 +0,105,90,0,0,29.6,0.197,46,0 +0,57,60,0,0,21.7,0.735,67,0 +0,127,80,37,210,36.3,0.804,23,0 +3,129,92,49,155,36.4,0.968,32,1 +8,100,74,40,215,39.4,0.661,43,1 +3,128,72,25,190,32.4,0.549,27,1 +10,90,85,32,0,34.9,0.825,56,1 +4,84,90,23,56,39.5,0.159,25,0 +1,88,78,29,76,32.0,0.365,29,0 +8,186,90,35,225,34.5,0.423,37,1 +5,187,76,27,207,43.6,1.034,53,1 +4,131,68,21,166,33.1,0.160,28,0 +1,164,82,43,67,32.8,0.341,50,0 +4,189,110,31,0,28.5,0.680,37,0 +1,116,70,28,0,27.4,0.204,21,0 +3,84,68,30,106,31.9,0.591,25,0 +6,114,88,0,0,27.8,0.247,66,0 +1,88,62,24,44,29.9,0.422,23,0 +1,84,64,23,115,36.9,0.471,28,0 +7,124,70,33,215,25.5,0.161,37,0 +1,97,70,40,0,38.1,0.218,30,0 +8,110,76,0,0,27.8,0.237,58,0 +11,103,68,40,0,46.2,0.126,42,0 +11,85,74,0,0,30.1,0.300,35,0 +6,125,76,0,0,33.8,0.121,54,1 +0,198,66,32,274,41.3,0.502,28,1 +1,87,68,34,77,37.6,0.401,24,0 +6,99,60,19,54,26.9,0.497,32,0 +0,91,80,0,0,32.4,0.601,27,0 +2,95,54,14,88,26.1,0.748,22,0 +1,99,72,30,18,38.6,0.412,21,0 +6,92,62,32,126,32.0,0.085,46,0 +4,154,72,29,126,31.3,0.338,37,0 +0,121,66,30,165,34.3,0.203,33,1 +3,78,70,0,0,32.5,0.270,39,0 +2,130,96,0,0,22.6,0.268,21,0 +3,111,58,31,44,29.5,0.430,22,0 +2,98,60,17,120,34.7,0.198,22,0 +1,143,86,30,330,30.1,0.892,23,0 +1,119,44,47,63,35.5,0.280,25,0 +6,108,44,20,130,24.0,0.813,35,0 +2,118,80,0,0,42.9,0.693,21,1 +10,133,68,0,0,27.0,0.245,36,0 +2,197,70,99,0,34.7,0.575,62,1 +0,151,90,46,0,42.1,0.371,21,1 +6,109,60,27,0,25.0,0.206,27,0 +12,121,78,17,0,26.5,0.259,62,0 +8,100,76,0,0,38.7,0.190,42,0 +8,124,76,24,600,28.7,0.687,52,1 +1,93,56,11,0,22.5,0.417,22,0 +8,143,66,0,0,34.9,0.129,41,1 +6,103,66,0,0,24.3,0.249,29,0 +3,176,86,27,156,33.3,1.154,52,1 +0,73,0,0,0,21.1,0.342,25,0 +11,111,84,40,0,46.8,0.925,45,1 +2,112,78,50,140,39.4,0.175,24,0 +3,132,80,0,0,34.4,0.402,44,1 +2,82,52,22,115,28.5,1.699,25,0 +6,123,72,45,230,33.6,0.733,34,0 +0,188,82,14,185,32.0,0.682,22,1 +0,67,76,0,0,45.3,0.194,46,0 +1,89,24,19,25,27.8,0.559,21,0 +1,173,74,0,0,36.8,0.088,38,1 +1,109,38,18,120,23.1,0.407,26,0 +1,108,88,19,0,27.1,0.400,24,0 +6,96,0,0,0,23.7,0.190,28,0 +1,124,74,36,0,27.8,0.100,30,0 +7,150,78,29,126,35.2,0.692,54,1 +4,183,0,0,0,28.4,0.212,36,1 +1,124,60,32,0,35.8,0.514,21,0 +1,181,78,42,293,40.0,1.258,22,1 +1,92,62,25,41,19.5,0.482,25,0 +0,152,82,39,272,41.5,0.270,27,0 +1,111,62,13,182,24.0,0.138,23,0 +3,106,54,21,158,30.9,0.292,24,0 +3,174,58,22,194,32.9,0.593,36,1 +7,168,88,42,321,38.2,0.787,40,1 +6,105,80,28,0,32.5,0.878,26,0 +11,138,74,26,144,36.1,0.557,50,1 +3,106,72,0,0,25.8,0.207,27,0 +6,117,96,0,0,28.7,0.157,30,0 +2,68,62,13,15,20.1,0.257,23,0 +9,112,82,24,0,28.2,1.282,50,1 +0,119,0,0,0,32.4,0.141,24,1 +2,112,86,42,160,38.4,0.246,28,0 +2,92,76,20,0,24.2,1.698,28,0 +6,183,94,0,0,40.8,1.461,45,0 +0,94,70,27,115,43.5,0.347,21,0 +2,108,64,0,0,30.8,0.158,21,0 +4,90,88,47,54,37.7,0.362,29,0 +0,125,68,0,0,24.7,0.206,21,0 +0,132,78,0,0,32.4,0.393,21,0 +5,128,80,0,0,34.6,0.144,45,0 +4,94,65,22,0,24.7,0.148,21,0 +7,114,64,0,0,27.4,0.732,34,1 +0,102,78,40,90,34.5,0.238,24,0 +2,111,60,0,0,26.2,0.343,23,0 +1,128,82,17,183,27.5,0.115,22,0 +10,92,62,0,0,25.9,0.167,31,0 +13,104,72,0,0,31.2,0.465,38,1 +5,104,74,0,0,28.8,0.153,48,0 +2,94,76,18,66,31.6,0.649,23,0 +7,97,76,32,91,40.9,0.871,32,1 +1,100,74,12,46,19.5,0.149,28,0 +0,102,86,17,105,29.3,0.695,27,0 +4,128,70,0,0,34.3,0.303,24,0 +6,147,80,0,0,29.5,0.178,50,1 +4,90,0,0,0,28.0,0.610,31,0 +3,103,72,30,152,27.6,0.730,27,0 +2,157,74,35,440,39.4,0.134,30,0 +1,167,74,17,144,23.4,0.447,33,1 +0,179,50,36,159,37.8,0.455,22,1 +11,136,84,35,130,28.3,0.260,42,1 +0,107,60,25,0,26.4,0.133,23,0 +1,91,54,25,100,25.2,0.234,23,0 +1,117,60,23,106,33.8,0.466,27,0 +5,123,74,40,77,34.1,0.269,28,0 +2,120,54,0,0,26.8,0.455,27,0 +1,106,70,28,135,34.2,0.142,22,0 +2,155,52,27,540,38.7,0.240,25,1 +2,101,58,35,90,21.8,0.155,22,0 +1,120,80,48,200,38.9,1.162,41,0 +11,127,106,0,0,39.0,0.190,51,0 +3,80,82,31,70,34.2,1.292,27,1 +10,162,84,0,0,27.7,0.182,54,0 +1,199,76,43,0,42.9,1.394,22,1 +8,167,106,46,231,37.6,0.165,43,1 +9,145,80,46,130,37.9,0.637,40,1 +6,115,60,39,0,33.7,0.245,40,1 +1,112,80,45,132,34.8,0.217,24,0 +4,145,82,18,0,32.5,0.235,70,1 +10,111,70,27,0,27.5,0.141,40,1 +6,98,58,33,190,34.0,0.430,43,0 +9,154,78,30,100,30.9,0.164,45,0 +6,165,68,26,168,33.6,0.631,49,0 +1,99,58,10,0,25.4,0.551,21,0 +10,68,106,23,49,35.5,0.285,47,0 +3,123,100,35,240,57.3,0.880,22,0 +8,91,82,0,0,35.6,0.587,68,0 +6,195,70,0,0,30.9,0.328,31,1 +9,156,86,0,0,24.8,0.230,53,1 +0,93,60,0,0,35.3,0.263,25,0 +3,121,52,0,0,36.0,0.127,25,1 +2,101,58,17,265,24.2,0.614,23,0 +2,56,56,28,45,24.2,0.332,22,0 +0,162,76,36,0,49.6,0.364,26,1 +0,95,64,39,105,44.6,0.366,22,0 +4,125,80,0,0,32.3,0.536,27,1 +5,136,82,0,0,0.0,0.640,69,0 +2,129,74,26,205,33.2,0.591,25,0 +3,130,64,0,0,23.1,0.314,22,0 +1,107,50,19,0,28.3,0.181,29,0 +1,140,74,26,180,24.1,0.828,23,0 +1,144,82,46,180,46.1,0.335,46,1 +8,107,80,0,0,24.6,0.856,34,0 +13,158,114,0,0,42.3,0.257,44,1 +2,121,70,32,95,39.1,0.886,23,0 +7,129,68,49,125,38.5,0.439,43,1 +2,90,60,0,0,23.5,0.191,25,0 +7,142,90,24,480,30.4,0.128,43,1 +3,169,74,19,125,29.9,0.268,31,1 +0,99,0,0,0,25.0,0.253,22,0 +4,127,88,11,155,34.5,0.598,28,0 +4,118,70,0,0,44.5,0.904,26,0 +2,122,76,27,200,35.9,0.483,26,0 +6,125,78,31,0,27.6,0.565,49,1 +1,168,88,29,0,35.0,0.905,52,1 +2,129,0,0,0,38.5,0.304,41,0 +4,110,76,20,100,28.4,0.118,27,0 +6,80,80,36,0,39.8,0.177,28,0 +10,115,0,0,0,0.0,0.261,30,1 +2,127,46,21,335,34.4,0.176,22,0 +9,164,78,0,0,32.8,0.148,45,1 +2,93,64,32,160,38.0,0.674,23,1 +3,158,64,13,387,31.2,0.295,24,0 +5,126,78,27,22,29.6,0.439,40,0 +10,129,62,36,0,41.2,0.441,38,1 +0,134,58,20,291,26.4,0.352,21,0 +3,102,74,0,0,29.5,0.121,32,0 +7,187,50,33,392,33.9,0.826,34,1 +3,173,78,39,185,33.8,0.970,31,1 +10,94,72,18,0,23.1,0.595,56,0 +1,108,60,46,178,35.5,0.415,24,0 +5,97,76,27,0,35.6,0.378,52,1 +4,83,86,19,0,29.3,0.317,34,0 +1,114,66,36,200,38.1,0.289,21,0 +1,149,68,29,127,29.3,0.349,42,1 +5,117,86,30,105,39.1,0.251,42,0 +1,111,94,0,0,32.8,0.265,45,0 +4,112,78,40,0,39.4,0.236,38,0 +1,116,78,29,180,36.1,0.496,25,0 +0,141,84,26,0,32.4,0.433,22,0 +2,175,88,0,0,22.9,0.326,22,0 +2,92,52,0,0,30.1,0.141,22,0 +3,130,78,23,79,28.4,0.323,34,1 +8,120,86,0,0,28.4,0.259,22,1 +2,174,88,37,120,44.5,0.646,24,1 +2,106,56,27,165,29.0,0.426,22,0 +2,105,75,0,0,23.3,0.560,53,0 +4,95,60,32,0,35.4,0.284,28,0 +0,126,86,27,120,27.4,0.515,21,0 +8,65,72,23,0,32.0,0.600,42,0 +2,99,60,17,160,36.6,0.453,21,0 +1,102,74,0,0,39.5,0.293,42,1 +11,120,80,37,150,42.3,0.785,48,1 +3,102,44,20,94,30.8,0.400,26,0 +1,109,58,18,116,28.5,0.219,22,0 +9,140,94,0,0,32.7,0.734,45,1 +13,153,88,37,140,40.6,1.174,39,0 +12,100,84,33,105,30.0,0.488,46,0 +1,147,94,41,0,49.3,0.358,27,1 +1,81,74,41,57,46.3,1.096,32,0 +3,187,70,22,200,36.4,0.408,36,1 +6,162,62,0,0,24.3,0.178,50,1 +4,136,70,0,0,31.2,1.182,22,1 +1,121,78,39,74,39.0,0.261,28,0 +3,108,62,24,0,26.0,0.223,25,0 +0,181,88,44,510,43.3,0.222,26,1 +8,154,78,32,0,32.4,0.443,45,1 +1,128,88,39,110,36.5,1.057,37,1 +7,137,90,41,0,32.0,0.391,39,0 +0,123,72,0,0,36.3,0.258,52,1 +1,106,76,0,0,37.5,0.197,26,0 +6,190,92,0,0,35.5,0.278,66,1 +2,88,58,26,16,28.4,0.766,22,0 +9,170,74,31,0,44.0,0.403,43,1 +9,89,62,0,0,22.5,0.142,33,0 +10,101,76,48,180,32.9,0.171,63,0 +2,122,70,27,0,36.8,0.340,27,0 +5,121,72,23,112,26.2,0.245,30,0 +1,126,60,0,0,30.1,0.349,47,1 +1,93,70,31,0,30.4,0.315,23,0 diff --git a/docs/seaborn_demo_from_jakevdp.ipynb b/docs/seaborn_demo_from_jakevdp.ipynb index b04f231..816c6cf 100644 --- a/docs/seaborn_demo_from_jakevdp.ipynb +++ b/docs/seaborn_demo_from_jakevdp.ipynb @@ -10,9 +10,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "from __future__ import print_function, division\n", @@ -26,9 +24,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "plt.style.use('ggplot')\n", @@ -39,9 +35,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import seaborn as sns\n", @@ -52,24 +46,21 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "data = np.random.multivariate_normal([0, 0], [[5, 2], [2, 2]], size=2000)\n", "data = pd.DataFrame(data, columns=['x', 'y'])\n", "\n", "for col in 'xy':\n", - " plt.hist(data[col], normed=True, alpha=0.5)" + " plt.hist(data[col], density=True, alpha=0.5)\n", + " # old Matplotlib would be plt.hist(data[col], normed=True, alpha=0.5)" ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "for col in 'xy':\n", @@ -79,9 +70,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "sns.distplot(data['x']);" @@ -90,20 +79,16 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ - "sns.kdeplot(data);" + "sns.kdeplot(data.x, data.y); # formerly sns.kdeplot(data)" ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "with sns.axes_style('white'):\n", @@ -113,9 +98,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "with sns.axes_style('white'):\n", @@ -125,9 +108,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "iris = sns.load_dataset(\"iris\")\n", @@ -137,9 +118,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "tips = sns.load_dataset('tips')\n", @@ -149,9 +128,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "tips['tip_pct'] = 100 * tips['tip'] / tips['total_bill']\n", @@ -163,9 +140,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "with sns.axes_style(style='ticks'):\n", @@ -176,9 +151,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "with sns.axes_style('white'):\n", @@ -188,9 +161,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "sns.jointplot(\"total_bill\", \"tip\", data=tips, kind='reg');" @@ -199,9 +170,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "planets = sns.load_dataset('planets')\n", @@ -211,9 +180,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "with sns.axes_style('white'):\n", @@ -224,9 +191,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "with sns.axes_style('white'):\n", @@ -245,9 +210,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [] } @@ -268,9 +231,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.4.4" + "version": "3.5.4" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/docs/test_data_access.ipynb b/docs/test_data_access.ipynb index 3b701da..b918b18 100644 --- a/docs/test_data_access.ipynb +++ b/docs/test_data_access.ipynb @@ -14,9 +14,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# pyodbc \n", @@ -32,9 +30,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# odbc to EXCEL .xls via pyodbc (beware 32/64 bit driver and pytho version must match)\n", @@ -56,9 +52,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# odbc to ACCESS .mdb via pyodbc (beware 32/64 bit driver and python version must match)\n", @@ -79,9 +73,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# pythonnet\n", @@ -101,9 +93,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# odbc to EXCEL .xls via pythonnet\n", @@ -133,9 +123,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# odbc to ACCESS .mdb via pythonnet\n", @@ -166,9 +154,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# DAO via pythonnet: works ONLY if you have the 32 (or 64 bit) driver.\n", @@ -202,9 +188,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [] } @@ -225,9 +209,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.0" + "version": "3.6.2" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/docs/tutorial-first-neural-network-python-keras.ipynb b/docs/tutorial-first-neural-network-python-keras.ipynb new file mode 100644 index 0000000..1da90bd --- /dev/null +++ b/docs/tutorial-first-neural-network-python-keras.ipynb @@ -0,0 +1,1122 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# https://machinelearningmastery.com/tutorial-first-neural-network-python-keras/" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "from keras.models import Sequential\n", + "from keras.layers import Dense\n", + "import numpy\n", + "# fix random seed for reproducibility\n", + "numpy.random.seed(7)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "#load pima indians dataset\n", + "dataset = numpy.loadtxt(\"pima-indians-diabetes.data\", delimiter=\",\")\n", + "# split into input (X) and output (Y) variables\n", + "X = dataset[:,0:8]\n", + "Y = dataset[:,8]" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "# create model\n", + "model = Sequential()\n", + "model.add(Dense(12, input_dim=8, activation='relu'))\n", + "model.add(Dense(8, activation='relu'))\n", + "model.add(Dense(1, activation='sigmoid'))" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "# Compile model\n", + "model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/150\n", + "768/768 [==============================] - 1s 2ms/step - loss: 3.7106 - acc: 0.5977\n", + "Epoch 2/150\n", + "768/768 [==============================] - 0s 358us/step - loss: 0.9376 - acc: 0.5924\n", + "Epoch 3/150\n", + "768/768 [==============================] - 0s 311us/step - loss: 0.7478 - acc: 0.6445\n", + "Epoch 4/150\n", + "768/768 [==============================] - 0s 224us/step - loss: 0.7121 - acc: 0.6549\n", + "Epoch 5/150\n", + "768/768 [==============================] - 0s 174us/step - loss: 0.6842 - acc: 0.6680\n", + "Epoch 6/150\n", + "768/768 [==============================] - 0s 257us/step - loss: 0.6522 - acc: 0.6797\n", + "Epoch 7/150\n", + "768/768 [==============================] - 0s 254us/step - loss: 0.6496 - acc: 0.6836\n", + "Epoch 8/150\n", + "768/768 [==============================] - 0s 307us/step - loss: 0.6380 - acc: 0.6875\n", + "Epoch 9/150\n", + "768/768 [==============================] - 0s 215us/step - loss: 0.6238 - acc: 0.6953\n", + "Epoch 10/150\n", + "768/768 [==============================] - 0s 184us/step - loss: 0.6288 - acc: 0.6771\n", + "Epoch 11/150\n", + "768/768 [==============================] - 0s 316us/step - loss: 0.6433 - acc: 0.6745\n", + "Epoch 12/150\n", + "768/768 [==============================] - 0s 273us/step - loss: 0.6400 - acc: 0.6732\n", + "Epoch 13/150\n", + "768/768 [==============================] - 0s 241us/step - loss: 0.6262 - acc: 0.6719\n", + "Epoch 14/150\n", + "768/768 [==============================] - 0s 302us/step - loss: 0.6179 - acc: 0.7018\n", + "Epoch 15/150\n", + "768/768 [==============================] - 0s 327us/step - loss: 0.6020 - acc: 0.6953\n", + "Epoch 16/150\n", + "768/768 [==============================] - 0s 244us/step - loss: 0.5877 - acc: 0.7018\n", + "Epoch 17/150\n", + "768/768 [==============================] - 0s 277us/step - loss: 0.5848 - acc: 0.6992\n", + "Epoch 18/150\n", + "768/768 [==============================] - 0s 202us/step - loss: 0.6008 - acc: 0.6849\n", + "Epoch 19/150\n", + "768/768 [==============================] - 0s 180us/step - loss: 0.5807 - acc: 0.7070\n", + "Epoch 20/150\n", + "768/768 [==============================] - 0s 275us/step - loss: 0.5811 - acc: 0.7174\n", + "Epoch 21/150\n", + "768/768 [==============================] - 0s 189us/step - loss: 0.5688 - acc: 0.7161\n", + "Epoch 22/150\n", + "768/768 [==============================] - 0s 214us/step - loss: 0.5824 - acc: 0.6966\n", + "Epoch 23/150\n", + "768/768 [==============================] - 0s 197us/step - loss: 0.5743 - acc: 0.7122\n", + "Epoch 24/150\n", + "768/768 [==============================] - 0s 172us/step - loss: 0.5677 - acc: 0.7344\n", + "Epoch 25/150\n", + "768/768 [==============================] - 0s 177us/step - loss: 0.5580 - acc: 0.7370\n", + "Epoch 26/150\n", + "768/768 [==============================] - 0s 197us/step - loss: 0.5708 - acc: 0.7031\n", + "Epoch 27/150\n", + "768/768 [==============================] - 0s 246us/step - loss: 0.5558 - acc: 0.7214\n", + "Epoch 28/150\n", + "768/768 [==============================] - 0s 288us/step - loss: 0.5559 - acc: 0.7344\n", + "Epoch 29/150\n", + "768/768 [==============================] - 0s 323us/step - loss: 0.5742 - acc: 0.7135\n", + "Epoch 30/150\n", + "768/768 [==============================] - 0s 188us/step - loss: 0.5613 - acc: 0.7214\n", + "Epoch 31/150\n", + "768/768 [==============================] - 0s 176us/step - loss: 0.5690 - acc: 0.7148\n", + "Epoch 32/150\n", + "768/768 [==============================] - 0s 171us/step - loss: 0.5655 - acc: 0.7096\n", + "Epoch 33/150\n", + "768/768 [==============================] - 0s 171us/step - loss: 0.5539 - acc: 0.7174\n", + "Epoch 34/150\n", + "768/768 [==============================] - 0s 176us/step - loss: 0.5528 - acc: 0.7305\n", + "Epoch 35/150\n", + "768/768 [==============================] - 0s 288us/step - loss: 0.5540 - acc: 0.7148\n", + "Epoch 36/150\n", + "768/768 [==============================] - 0s 224us/step - loss: 0.5627 - acc: 0.7096\n", + "Epoch 37/150\n", + "768/768 [==============================] - 0s 241us/step - loss: 0.5357 - acc: 0.7344\n", + "Epoch 38/150\n", + "768/768 [==============================] - 0s 301us/step - loss: 0.5459 - acc: 0.7135\n", + "Epoch 39/150\n", + "768/768 [==============================] - 0s 198us/step - loss: 0.5491 - acc: 0.7227\n", + "Epoch 40/150\n", + "768/768 [==============================] - 0s 216us/step - loss: 0.5494 - acc: 0.7174\n", + "Epoch 41/150\n", + "768/768 [==============================] - 0s 340us/step - loss: 0.5454 - acc: 0.7292\n", + "Epoch 42/150\n", + "768/768 [==============================] - 0s 293us/step - loss: 0.5388 - acc: 0.7396\n", + "Epoch 43/150\n", + "768/768 [==============================] - 0s 202us/step - loss: 0.5336 - acc: 0.7422\n", + "Epoch 44/150\n", + "768/768 [==============================] - 0s 329us/step - loss: 0.5353 - acc: 0.7448\n", + "Epoch 45/150\n", + "768/768 [==============================] - 0s 431us/step - loss: 0.5333 - acc: 0.7578\n", + "Epoch 46/150\n", + "768/768 [==============================] - 0s 346us/step - loss: 0.5293 - acc: 0.7578\n", + "Epoch 47/150\n", + "768/768 [==============================] - 0s 230us/step - loss: 0.5340 - acc: 0.7396\n", + "Epoch 48/150\n", + "768/768 [==============================] - 0s 234us/step - loss: 0.5353 - acc: 0.7370\n", + "Epoch 49/150\n", + "768/768 [==============================] - 0s 250us/step - loss: 0.5355 - acc: 0.7474\n", + "Epoch 50/150\n", + "768/768 [==============================] - 0s 251us/step - loss: 0.5275 - acc: 0.7409\n", + "Epoch 51/150\n", + "768/768 [==============================] - 0s 299us/step - loss: 0.5295 - acc: 0.7474\n", + "Epoch 52/150\n", + "768/768 [==============================] - 0s 255us/step - loss: 0.5306 - acc: 0.7422\n", + "Epoch 53/150\n", + "768/768 [==============================] - 0s 266us/step - loss: 0.5377 - acc: 0.7422\n", + "Epoch 54/150\n", + "768/768 [==============================] - 0s 234us/step - loss: 0.5384 - acc: 0.7279\n", + "Epoch 55/150\n", + "768/768 [==============================] - 0s 240us/step - loss: 0.5231 - acc: 0.7487\n", + "Epoch 56/150\n", + "768/768 [==============================] - 0s 237us/step - loss: 0.5281 - acc: 0.7435\n", + "Epoch 57/150\n", + "768/768 [==============================] - 0s 280us/step - loss: 0.5323 - acc: 0.7383\n", + "Epoch 58/150\n", + "768/768 [==============================] - 0s 242us/step - loss: 0.5233 - acc: 0.7539\n", + "Epoch 59/150\n", + "768/768 [==============================] - 0s 245us/step - loss: 0.5130 - acc: 0.7617\n", + "Epoch 60/150\n", + "768/768 [==============================] - 0s 238us/step - loss: 0.5341 - acc: 0.7370\n", + "Epoch 61/150\n", + "768/768 [==============================] - 0s 241us/step - loss: 0.5265 - acc: 0.7370\n", + "Epoch 62/150\n", + "768/768 [==============================] - 0s 232us/step - loss: 0.5177 - acc: 0.7487\n", + "Epoch 63/150\n", + "768/768 [==============================] - 0s 220us/step - loss: 0.5449 - acc: 0.7357\n", + "Epoch 64/150\n", + "768/768 [==============================] - 0s 260us/step - loss: 0.5319 - acc: 0.7422\n", + "Epoch 65/150\n", + "768/768 [==============================] - 0s 246us/step - loss: 0.5236 - acc: 0.7422\n", + "Epoch 66/150\n", + "768/768 [==============================] - 0s 294us/step - loss: 0.5078 - acc: 0.7487\n", + "Epoch 67/150\n", + "768/768 [==============================] - 0s 253us/step - loss: 0.5167 - acc: 0.7448\n", + "Epoch 68/150\n", + "768/768 [==============================] - 0s 253us/step - loss: 0.5143 - acc: 0.7526\n", + "Epoch 69/150\n", + "768/768 [==============================] - 0s 286us/step - loss: 0.5138 - acc: 0.7500\n", + "Epoch 70/150\n", + "768/768 [==============================] - 0s 264us/step - loss: 0.5377 - acc: 0.7240\n", + "Epoch 71/150\n", + "768/768 [==============================] - 0s 280us/step - loss: 0.5180 - acc: 0.7409\n", + "Epoch 72/150\n", + "768/768 [==============================] - 0s 219us/step - loss: 0.5176 - acc: 0.7448\n", + "Epoch 73/150\n", + "768/768 [==============================] - 0s 245us/step - loss: 0.5164 - acc: 0.7461\n", + "Epoch 74/150\n", + "768/768 [==============================] - 0s 221us/step - loss: 0.5108 - acc: 0.7604\n", + "Epoch 75/150\n", + "768/768 [==============================] - 0s 238us/step - loss: 0.5095 - acc: 0.7617\n", + "Epoch 76/150\n", + "768/768 [==============================] - 0s 232us/step - loss: 0.5119 - acc: 0.7513\n", + "Epoch 77/150\n", + "768/768 [==============================] - 0s 296us/step - loss: 0.5169 - acc: 0.7617\n", + "Epoch 78/150\n", + "768/768 [==============================] - 0s 316us/step - loss: 0.5131 - acc: 0.7474\n", + "Epoch 79/150\n", + "768/768 [==============================] - 0s 223us/step - loss: 0.5138 - acc: 0.7461\n", + "Epoch 80/150\n", + "768/768 [==============================] - 0s 259us/step - loss: 0.5105 - acc: 0.7565\n", + "Epoch 81/150\n", + "768/768 [==============================] - 0s 275us/step - loss: 0.5056 - acc: 0.7695\n", + "Epoch 82/150\n", + "768/768 [==============================] - 0s 228us/step - loss: 0.5060 - acc: 0.7513\n", + "Epoch 83/150\n", + "768/768 [==============================] - 0s 238us/step - loss: 0.5030 - acc: 0.7591\n", + "Epoch 84/150\n", + "768/768 [==============================] - 0s 228us/step - loss: 0.4995 - acc: 0.7526\n", + "Epoch 85/150\n", + "768/768 [==============================] - 0s 230us/step - loss: 0.5063 - acc: 0.7461\n", + "Epoch 86/150\n", + "768/768 [==============================] - 0s 210us/step - loss: 0.5064 - acc: 0.7474\n", + "Epoch 87/150\n", + "768/768 [==============================] - 0s 221us/step - loss: 0.4992 - acc: 0.7526\n", + "Epoch 88/150\n", + "768/768 [==============================] - 0s 250us/step - loss: 0.5010 - acc: 0.7643\n", + "Epoch 89/150\n", + "768/768 [==============================] - 0s 216us/step - loss: 0.5045 - acc: 0.7682\n", + "Epoch 90/150\n", + "768/768 [==============================] - 0s 233us/step - loss: 0.5102 - acc: 0.7513\n", + "Epoch 91/150\n", + "768/768 [==============================] - 0s 246us/step - loss: 0.5022 - acc: 0.7526\n", + "Epoch 92/150\n", + "768/768 [==============================] - 0s 286us/step - loss: 0.5057 - acc: 0.7396\n", + "Epoch 93/150\n", + "768/768 [==============================] - 0s 227us/step - loss: 0.4981 - acc: 0.7656\n", + "Epoch 94/150\n", + "768/768 [==============================] - 0s 227us/step - loss: 0.4992 - acc: 0.7656\n", + "Epoch 95/150\n", + "768/768 [==============================] - 0s 258us/step - loss: 0.5040 - acc: 0.7500\n", + "Epoch 96/150\n", + "768/768 [==============================] - 0s 212us/step - loss: 0.4908 - acc: 0.7669\n", + "Epoch 97/150\n", + "768/768 [==============================] - 0s 245us/step - loss: 0.5004 - acc: 0.7747\n", + "Epoch 98/150\n", + "768/768 [==============================] - 0s 210us/step - loss: 0.4905 - acc: 0.7617\n", + "Epoch 99/150\n", + "768/768 [==============================] - 0s 260us/step - loss: 0.4914 - acc: 0.7630\n", + "Epoch 100/150\n", + "768/768 [==============================] - 0s 232us/step - loss: 0.4845 - acc: 0.7773\n", + "Epoch 101/150\n", + "768/768 [==============================] - 0s 217us/step - loss: 0.4897 - acc: 0.7773\n", + "Epoch 102/150\n", + "768/768 [==============================] - 0s 225us/step - loss: 0.4984 - acc: 0.7578\n", + "Epoch 103/150\n", + "768/768 [==============================] - 0s 246us/step - loss: 0.4987 - acc: 0.7539\n", + "Epoch 104/150\n", + "768/768 [==============================] - 0s 212us/step - loss: 0.4918 - acc: 0.7839\n", + "Epoch 105/150\n", + "768/768 [==============================] - 0s 238us/step - loss: 0.5303 - acc: 0.7422\n", + "Epoch 106/150\n", + "768/768 [==============================] - 0s 215us/step - loss: 0.4976 - acc: 0.7656\n", + "Epoch 107/150\n", + "768/768 [==============================] - 0s 233us/step - loss: 0.4922 - acc: 0.7708\n", + "Epoch 108/150\n", + "768/768 [==============================] - 0s 293us/step - loss: 0.4982 - acc: 0.7695\n", + "Epoch 109/150\n", + "768/768 [==============================] - 0s 268us/step - loss: 0.4874 - acc: 0.7695\n", + "Epoch 110/150\n", + "768/768 [==============================] - 0s 194us/step - loss: 0.4906 - acc: 0.7682\n", + "Epoch 111/150\n", + "768/768 [==============================] - 0s 228us/step - loss: 0.4833 - acc: 0.7812\n", + "Epoch 112/150\n", + "768/768 [==============================] - 0s 249us/step - loss: 0.4916 - acc: 0.7773\n", + "Epoch 113/150\n", + "768/768 [==============================] - 0s 309us/step - loss: 0.4938 - acc: 0.7630\n", + "Epoch 114/150\n", + "768/768 [==============================] - 0s 358us/step - loss: 0.4911 - acc: 0.7604\n", + "Epoch 115/150\n", + "768/768 [==============================] - 0s 410us/step - loss: 0.4905 - acc: 0.7760\n", + "Epoch 116/150\n", + "768/768 [==============================] - 0s 327us/step - loss: 0.4944 - acc: 0.7721\n", + "Epoch 117/150\n", + "768/768 [==============================] - 0s 445us/step - loss: 0.4917 - acc: 0.7604\n", + "Epoch 118/150\n", + "768/768 [==============================] - 0s 293us/step - loss: 0.4894 - acc: 0.7826\n", + "Epoch 119/150\n", + "768/768 [==============================] - 0s 203us/step - loss: 0.4829 - acc: 0.7695\n", + "Epoch 120/150\n", + "768/768 [==============================] - 0s 307us/step - loss: 0.4927 - acc: 0.7786\n", + "Epoch 121/150\n", + "768/768 [==============================] - 0s 367us/step - loss: 0.4924 - acc: 0.7721\n", + "Epoch 122/150\n", + "768/768 [==============================] - 0s 194us/step - loss: 0.4862 - acc: 0.7721\n", + "Epoch 123/150\n", + "768/768 [==============================] - 0s 182us/step - loss: 0.4838 - acc: 0.7656\n", + "Epoch 124/150\n", + "768/768 [==============================] - 0s 181us/step - loss: 0.4831 - acc: 0.7708\n", + "Epoch 125/150\n", + "768/768 [==============================] - 0s 184us/step - loss: 0.4874 - acc: 0.7852\n", + "Epoch 126/150\n", + "768/768 [==============================] - 0s 181us/step - loss: 0.4817 - acc: 0.7786\n", + "Epoch 127/150\n", + "768/768 [==============================] - 0s 177us/step - loss: 0.4903 - acc: 0.7682\n", + "Epoch 128/150\n", + "768/768 [==============================] - 0s 172us/step - loss: 0.4721 - acc: 0.7786\n", + "Epoch 129/150\n", + "768/768 [==============================] - 0s 176us/step - loss: 0.4813 - acc: 0.7721\n", + "Epoch 130/150\n", + "768/768 [==============================] - 0s 172us/step - loss: 0.4749 - acc: 0.7865\n", + "Epoch 131/150\n", + "768/768 [==============================] - 0s 172us/step - loss: 0.4815 - acc: 0.7773\n", + "Epoch 132/150\n", + "768/768 [==============================] - 0s 174us/step - loss: 0.4805 - acc: 0.7839\n", + "Epoch 133/150\n", + "768/768 [==============================] - 0s 171us/step - loss: 0.4839 - acc: 0.7721\n", + "Epoch 134/150\n", + "768/768 [==============================] - 0s 174us/step - loss: 0.4837 - acc: 0.7734\n", + "Epoch 135/150\n", + "768/768 [==============================] - 0s 177us/step - loss: 0.4780 - acc: 0.7773\n", + "Epoch 136/150\n", + "768/768 [==============================] - 0s 172us/step - loss: 0.4739 - acc: 0.7786\n", + "Epoch 137/150\n", + "768/768 [==============================] - 0s 173us/step - loss: 0.4673 - acc: 0.7786\n", + "Epoch 138/150\n", + "768/768 [==============================] - 0s 172us/step - loss: 0.4806 - acc: 0.7839\n", + "Epoch 139/150\n", + "768/768 [==============================] - 0s 177us/step - loss: 0.4656 - acc: 0.7917\n", + "Epoch 140/150\n", + "768/768 [==============================] - 0s 172us/step - loss: 0.4834 - acc: 0.7773\n", + "Epoch 141/150\n", + "768/768 [==============================] - 0s 172us/step - loss: 0.4743 - acc: 0.7839\n", + "Epoch 142/150\n", + "768/768 [==============================] - 0s 176us/step - loss: 0.4836 - acc: 0.7708\n", + "Epoch 143/150\n", + "768/768 [==============================] - 0s 310us/step - loss: 0.4769 - acc: 0.7734\n", + "Epoch 144/150\n", + "768/768 [==============================] - 0s 333us/step - loss: 0.4772 - acc: 0.7747\n", + "Epoch 145/150\n", + "768/768 [==============================] - 0s 245us/step - loss: 0.4890 - acc: 0.7643\n", + "Epoch 146/150\n", + "768/768 [==============================] - 0s 229us/step - loss: 0.4942 - acc: 0.7669\n", + "Epoch 147/150\n", + "768/768 [==============================] - 0s 194us/step - loss: 0.4846 - acc: 0.7773\n", + "Epoch 148/150\n", + "768/768 [==============================] - 0s 180us/step - loss: 0.4715 - acc: 0.7773\n", + "Epoch 149/150\n", + "768/768 [==============================] - 0s 181us/step - loss: 0.4752 - acc: 0.7695\n", + "Epoch 150/150\n", + "768/768 [==============================] - 0s 184us/step - loss: 0.4776 - acc: 0.7721\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Fit the model\n", + "model.fit(X, Y, epochs=150, batch_size=10)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "768/768 [==============================] - 0s 94us/step\n", + "\n", + "acc: 79.82%\n" + ] + } + ], + "source": [ + "# evaluate the model\n", + "scores = model.evaluate(X, Y)\n", + "print(\"\\n%s: %.2f%%\" % (model.metrics_names[1], scores[1]*100))" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/150\n", + "768/768 [==============================] - 1s 2ms/step - loss: 3.7104 - acc: 0.5977\n", + "Epoch 2/150\n", + "768/768 [==============================] - 0s 411us/step - loss: 0.9374 - acc: 0.5938\n", + "Epoch 3/150\n", + "768/768 [==============================] - 0s 250us/step - loss: 0.7478 - acc: 0.6445\n", + "Epoch 4/150\n", + "768/768 [==============================] - 0s 421us/step - loss: 0.7120 - acc: 0.6549\n", + "Epoch 5/150\n", + "768/768 [==============================] - 0s 333us/step - loss: 0.6839 - acc: 0.6667\n", + "Epoch 6/150\n", + "768/768 [==============================] - 0s 201us/step - loss: 0.6520 - acc: 0.6771\n", + "Epoch 7/150\n", + "768/768 [==============================] - 0s 174us/step - loss: 0.6505 - acc: 0.6810\n", + "Epoch 8/150\n", + "768/768 [==============================] - 0s 188us/step - loss: 0.6392 - acc: 0.6862\n", + "Epoch 9/150\n", + "768/768 [==============================] - 0s 211us/step - loss: 0.6249 - acc: 0.6953\n", + "Epoch 10/150\n", + "768/768 [==============================] - 0s 172us/step - loss: 0.6308 - acc: 0.6784\n", + "Epoch 11/150\n", + "768/768 [==============================] - 0s 178us/step - loss: 0.6498 - acc: 0.6719\n", + "Epoch 12/150\n", + "768/768 [==============================] - 0s 174us/step - loss: 0.6399 - acc: 0.6758\n", + "Epoch 13/150\n", + "768/768 [==============================] - 0s 197us/step - loss: 0.6252 - acc: 0.6745\n", + "Epoch 14/150\n", + "768/768 [==============================] - 0s 185us/step - loss: 0.6177 - acc: 0.7005\n", + "Epoch 15/150\n", + "768/768 [==============================] - 0s 260us/step - loss: 0.6019 - acc: 0.6953\n", + "Epoch 16/150\n", + "768/768 [==============================] - 0s 180us/step - loss: 0.5883 - acc: 0.7005\n", + "Epoch 17/150\n", + "768/768 [==============================] - 0s 171us/step - loss: 0.5838 - acc: 0.6992\n", + "Epoch 18/150\n", + "768/768 [==============================] - 0s 182us/step - loss: 0.6003 - acc: 0.6875\n", + "Epoch 19/150\n", + "768/768 [==============================] - 0s 313us/step - loss: 0.5797 - acc: 0.7135\n", + "Epoch 20/150\n", + "768/768 [==============================] - 0s 305us/step - loss: 0.5794 - acc: 0.7227\n", + "Epoch 21/150\n", + "768/768 [==============================] - 0s 264us/step - loss: 0.5690 - acc: 0.7148\n", + "Epoch 22/150\n", + "768/768 [==============================] - 0s 177us/step - loss: 0.5812 - acc: 0.7005\n", + "Epoch 23/150\n", + "768/768 [==============================] - 0s 171us/step - loss: 0.5739 - acc: 0.7135\n", + "Epoch 24/150\n", + "768/768 [==============================] - 0s 172us/step - loss: 0.5681 - acc: 0.7331\n", + "Epoch 25/150\n", + "768/768 [==============================] - 0s 173us/step - loss: 0.5573 - acc: 0.7357\n", + "Epoch 26/150\n", + "768/768 [==============================] - 0s 172us/step - loss: 0.5707 - acc: 0.7018\n", + "Epoch 27/150\n", + "768/768 [==============================] - 0s 171us/step - loss: 0.5557 - acc: 0.7253\n", + "Epoch 28/150\n", + "768/768 [==============================] - 0s 173us/step - loss: 0.5553 - acc: 0.7318\n", + "Epoch 29/150\n", + "768/768 [==============================] - 0s 188us/step - loss: 0.5738 - acc: 0.7201\n", + "Epoch 30/150\n", + "768/768 [==============================] - 0s 172us/step - loss: 0.5611 - acc: 0.7227\n", + "Epoch 31/150\n", + "768/768 [==============================] - 0s 172us/step - loss: 0.5681 - acc: 0.7174\n", + "Epoch 32/150\n", + "768/768 [==============================] - 0s 177us/step - loss: 0.5637 - acc: 0.7161\n", + "Epoch 33/150\n", + "768/768 [==============================] - 0s 174us/step - loss: 0.5515 - acc: 0.7214\n", + "Epoch 34/150\n", + "768/768 [==============================] - 0s 173us/step - loss: 0.5510 - acc: 0.7331\n", + "Epoch 35/150\n", + "768/768 [==============================] - 0s 178us/step - loss: 0.5508 - acc: 0.7240\n", + "Epoch 36/150\n", + "768/768 [==============================] - 0s 335us/step - loss: 0.5597 - acc: 0.7057\n", + "Epoch 37/150\n", + "768/768 [==============================] - 0s 220us/step - loss: 0.5371 - acc: 0.7331\n", + "Epoch 38/150\n", + "768/768 [==============================] - 0s 177us/step - loss: 0.5406 - acc: 0.7227\n", + "Epoch 39/150\n", + "768/768 [==============================] - 0s 171us/step - loss: 0.5447 - acc: 0.7214\n", + "Epoch 40/150\n", + "768/768 [==============================] - 0s 174us/step - loss: 0.5439 - acc: 0.7240\n", + "Epoch 41/150\n", + "768/768 [==============================] - 0s 290us/step - loss: 0.5435 - acc: 0.7357\n", + "Epoch 42/150\n", + "768/768 [==============================] - 0s 223us/step - loss: 0.5363 - acc: 0.7370\n", + "Epoch 43/150\n", + "768/768 [==============================] - 0s 210us/step - loss: 0.5320 - acc: 0.7513\n", + "Epoch 44/150\n", + "768/768 [==============================] - 0s 174us/step - loss: 0.5325 - acc: 0.7396\n", + "Epoch 45/150\n", + "768/768 [==============================] - 0s 174us/step - loss: 0.5308 - acc: 0.7539\n", + "Epoch 46/150\n", + "768/768 [==============================] - 0s 210us/step - loss: 0.5292 - acc: 0.7500\n", + "Epoch 47/150\n", + "768/768 [==============================] - 0s 197us/step - loss: 0.5329 - acc: 0.7357\n", + "Epoch 48/150\n", + "768/768 [==============================] - 0s 220us/step - loss: 0.5326 - acc: 0.7448\n", + "Epoch 49/150\n", + "768/768 [==============================] - 0s 276us/step - loss: 0.5327 - acc: 0.7500\n", + "Epoch 50/150\n", + "768/768 [==============================] - 0s 182us/step - loss: 0.5270 - acc: 0.7396\n", + "Epoch 51/150\n", + "768/768 [==============================] - 0s 276us/step - loss: 0.5271 - acc: 0.7500\n", + "Epoch 52/150\n", + "768/768 [==============================] - 0s 346us/step - loss: 0.5286 - acc: 0.7448\n", + "Epoch 53/150\n", + "768/768 [==============================] - 0s 240us/step - loss: 0.5378 - acc: 0.7435\n", + "Epoch 54/150\n", + "768/768 [==============================] - 0s 174us/step - loss: 0.5365 - acc: 0.7318\n", + "Epoch 55/150\n", + "768/768 [==============================] - 0s 172us/step - loss: 0.5221 - acc: 0.7500\n", + "Epoch 56/150\n", + "768/768 [==============================] - 0s 172us/step - loss: 0.5292 - acc: 0.7409\n", + "Epoch 57/150\n", + "768/768 [==============================] - 0s 309us/step - loss: 0.5305 - acc: 0.7370\n", + "Epoch 58/150\n", + "768/768 [==============================] - 0s 331us/step - loss: 0.5231 - acc: 0.7513\n", + "Epoch 59/150\n", + "768/768 [==============================] - 0s 302us/step - loss: 0.5121 - acc: 0.7630\n", + "Epoch 60/150\n", + "768/768 [==============================] - 0s 357us/step - loss: 0.5331 - acc: 0.7331\n", + "Epoch 61/150\n", + "768/768 [==============================] - 0s 448us/step - loss: 0.5277 - acc: 0.7383\n", + "Epoch 62/150\n", + "768/768 [==============================] - 0s 290us/step - loss: 0.5173 - acc: 0.7565\n", + "Epoch 63/150\n", + "768/768 [==============================] - 0s 258us/step - loss: 0.5453 - acc: 0.7331\n", + "Epoch 64/150\n", + "768/768 [==============================] - 0s 241us/step - loss: 0.5307 - acc: 0.7448\n", + "Epoch 65/150\n", + "768/768 [==============================] - 0s 228us/step - loss: 0.5197 - acc: 0.7474\n", + "Epoch 66/150\n", + "768/768 [==============================] - 0s 257us/step - loss: 0.5057 - acc: 0.7500\n", + "Epoch 67/150\n", + "768/768 [==============================] - 0s 247us/step - loss: 0.5159 - acc: 0.7422\n", + "Epoch 68/150\n", + "768/768 [==============================] - 0s 212us/step - loss: 0.5139 - acc: 0.7565\n", + "Epoch 69/150\n", + "768/768 [==============================] - 0s 257us/step - loss: 0.5119 - acc: 0.7513\n", + "Epoch 70/150\n", + "768/768 [==============================] - 0s 266us/step - loss: 0.5364 - acc: 0.7188\n", + "Epoch 71/150\n", + "768/768 [==============================] - 0s 233us/step - loss: 0.5171 - acc: 0.7396\n", + "Epoch 72/150\n", + "768/768 [==============================] - 0s 241us/step - loss: 0.5171 - acc: 0.7513\n", + "Epoch 73/150\n", + "768/768 [==============================] - 0s 246us/step - loss: 0.5161 - acc: 0.7500\n", + "Epoch 74/150\n", + "768/768 [==============================] - 0s 224us/step - loss: 0.5096 - acc: 0.7604\n", + "Epoch 75/150\n", + "768/768 [==============================] - 0s 259us/step - loss: 0.5089 - acc: 0.7578\n", + "Epoch 76/150\n", + "768/768 [==============================] - 0s 228us/step - loss: 0.5100 - acc: 0.7526\n", + "Epoch 77/150\n", + "768/768 [==============================] - 0s 238us/step - loss: 0.5152 - acc: 0.7604\n", + "Epoch 78/150\n", + "768/768 [==============================] - 0s 297us/step - loss: 0.5117 - acc: 0.7500\n", + "Epoch 79/150\n", + "768/768 [==============================] - 0s 267us/step - loss: 0.5129 - acc: 0.7448\n", + "Epoch 80/150\n", + "768/768 [==============================] - 0s 225us/step - loss: 0.5107 - acc: 0.7578\n", + "Epoch 81/150\n", + "768/768 [==============================] - 0s 266us/step - loss: 0.5062 - acc: 0.7669\n", + "Epoch 82/150\n", + "768/768 [==============================] - 0s 270us/step - loss: 0.5038 - acc: 0.7539\n", + "Epoch 83/150\n", + "768/768 [==============================] - 0s 241us/step - loss: 0.4990 - acc: 0.7591\n", + "Epoch 84/150\n", + "768/768 [==============================] - 0s 258us/step - loss: 0.4976 - acc: 0.7591\n", + "Epoch 85/150\n", + "768/768 [==============================] - 0s 237us/step - loss: 0.5046 - acc: 0.7487\n", + "Epoch 86/150\n", + "768/768 [==============================] - 0s 228us/step - loss: 0.5052 - acc: 0.7487\n", + "Epoch 87/150\n", + "768/768 [==============================] - 0s 232us/step - loss: 0.4980 - acc: 0.7565\n", + "Epoch 88/150\n", + "768/768 [==============================] - 0s 309us/step - loss: 0.5011 - acc: 0.7604\n", + "Epoch 89/150\n", + "768/768 [==============================] - 0s 281us/step - loss: 0.5046 - acc: 0.7734\n", + "Epoch 90/150\n", + "768/768 [==============================] - 0s 220us/step - loss: 0.5077 - acc: 0.7552\n", + "Epoch 91/150\n", + "768/768 [==============================] - 0s 236us/step - loss: 0.5025 - acc: 0.7565\n", + "Epoch 92/150\n", + "768/768 [==============================] - 0s 227us/step - loss: 0.5046 - acc: 0.7448\n", + "Epoch 93/150\n", + "768/768 [==============================] - 0s 238us/step - loss: 0.4970 - acc: 0.7721\n", + "Epoch 94/150\n", + "768/768 [==============================] - 0s 230us/step - loss: 0.4990 - acc: 0.7656\n", + "Epoch 95/150\n", + "768/768 [==============================] - 0s 251us/step - loss: 0.5025 - acc: 0.7500\n", + "Epoch 96/150\n", + "768/768 [==============================] - 0s 236us/step - loss: 0.4905 - acc: 0.7695\n", + "Epoch 97/150\n", + "768/768 [==============================] - 0s 233us/step - loss: 0.4975 - acc: 0.7747\n", + "Epoch 98/150\n", + "768/768 [==============================] - 0s 260us/step - loss: 0.4887 - acc: 0.7656\n", + "Epoch 99/150\n", + "768/768 [==============================] - 0s 234us/step - loss: 0.4900 - acc: 0.7721\n", + "Epoch 100/150\n", + "768/768 [==============================] - 0s 216us/step - loss: 0.4846 - acc: 0.7760\n", + "Epoch 101/150\n", + "768/768 [==============================] - 0s 201us/step - loss: 0.4900 - acc: 0.7773\n", + "Epoch 102/150\n", + "768/768 [==============================] - 0s 221us/step - loss: 0.4988 - acc: 0.7552\n", + "Epoch 103/150\n", + "768/768 [==============================] - 0s 232us/step - loss: 0.4997 - acc: 0.7565\n", + "Epoch 104/150\n", + "768/768 [==============================] - 0s 246us/step - loss: 0.4911 - acc: 0.7865\n", + "Epoch 105/150\n", + "768/768 [==============================] - 0s 249us/step - loss: 0.5291 - acc: 0.7487\n", + "Epoch 106/150\n", + "768/768 [==============================] - 0s 233us/step - loss: 0.4943 - acc: 0.7747\n", + "Epoch 107/150\n", + "768/768 [==============================] - 0s 206us/step - loss: 0.4912 - acc: 0.7721\n", + "Epoch 108/150\n", + "768/768 [==============================] - 0s 225us/step - loss: 0.5003 - acc: 0.7630\n", + "Epoch 109/150\n", + "768/768 [==============================] - 0s 305us/step - loss: 0.4852 - acc: 0.7669\n", + "Epoch 110/150\n", + "768/768 [==============================] - 0s 193us/step - loss: 0.4900 - acc: 0.7656\n", + "Epoch 111/150\n", + "768/768 [==============================] - 0s 250us/step - loss: 0.4838 - acc: 0.7786\n", + "Epoch 112/150\n", + "768/768 [==============================] - 0s 241us/step - loss: 0.4958 - acc: 0.7708\n", + "Epoch 113/150\n", + "768/768 [==============================] - 0s 240us/step - loss: 0.4955 - acc: 0.7604\n", + "Epoch 114/150\n", + "768/768 [==============================] - 0s 227us/step - loss: 0.4927 - acc: 0.7604\n", + "Epoch 115/150\n", + "768/768 [==============================] - 0s 199us/step - loss: 0.4912 - acc: 0.7695\n", + "Epoch 116/150\n", + "768/768 [==============================] - 0s 207us/step - loss: 0.4928 - acc: 0.7721\n", + "Epoch 117/150\n", + "768/768 [==============================] - 0s 199us/step - loss: 0.4901 - acc: 0.7604\n", + "Epoch 118/150\n", + "768/768 [==============================] - 0s 186us/step - loss: 0.4889 - acc: 0.7786\n", + "Epoch 119/150\n", + "768/768 [==============================] - 0s 223us/step - loss: 0.4811 - acc: 0.7630\n", + "Epoch 120/150\n", + "768/768 [==============================] - 0s 225us/step - loss: 0.4934 - acc: 0.7721\n", + "Epoch 121/150\n", + "768/768 [==============================] - 0s 185us/step - loss: 0.4924 - acc: 0.7734\n", + "Epoch 122/150\n", + "768/768 [==============================] - 0s 216us/step - loss: 0.4843 - acc: 0.7826\n", + "Epoch 123/150\n", + "768/768 [==============================] - 0s 198us/step - loss: 0.4804 - acc: 0.7682\n", + "Epoch 124/150\n", + "768/768 [==============================] - 0s 211us/step - loss: 0.4831 - acc: 0.7760\n", + "Epoch 125/150\n", + "768/768 [==============================] - 0s 199us/step - loss: 0.4878 - acc: 0.7812\n", + "Epoch 126/150\n", + "768/768 [==============================] - 0s 227us/step - loss: 0.4795 - acc: 0.7826\n", + "Epoch 127/150\n", + "768/768 [==============================] - 0s 199us/step - loss: 0.4900 - acc: 0.7682\n", + "Epoch 128/150\n", + "768/768 [==============================] - 0s 211us/step - loss: 0.4723 - acc: 0.7721\n", + "Epoch 129/150\n", + "768/768 [==============================] - 0s 207us/step - loss: 0.4819 - acc: 0.7695\n", + "Epoch 130/150\n", + "768/768 [==============================] - 0s 219us/step - loss: 0.4749 - acc: 0.7878\n", + "Epoch 131/150\n", + "768/768 [==============================] - 0s 227us/step - loss: 0.4827 - acc: 0.7656\n", + "Epoch 132/150\n", + "768/768 [==============================] - 0s 228us/step - loss: 0.4809 - acc: 0.7839\n", + "Epoch 133/150\n", + "768/768 [==============================] - 0s 216us/step - loss: 0.4828 - acc: 0.7708\n", + "Epoch 134/150\n", + "768/768 [==============================] - 0s 210us/step - loss: 0.4847 - acc: 0.7747\n", + "Epoch 135/150\n", + "768/768 [==============================] - 0s 219us/step - loss: 0.4776 - acc: 0.7747\n", + "Epoch 136/150\n", + "768/768 [==============================] - 0s 201us/step - loss: 0.4738 - acc: 0.7786\n", + "Epoch 137/150\n", + "768/768 [==============================] - 0s 215us/step - loss: 0.4691 - acc: 0.7773\n", + "Epoch 138/150\n", + "768/768 [==============================] - 0s 214us/step - loss: 0.4804 - acc: 0.7812\n", + "Epoch 139/150\n", + "768/768 [==============================] - 0s 228us/step - loss: 0.4651 - acc: 0.7930\n", + "Epoch 140/150\n", + "768/768 [==============================] - 0s 199us/step - loss: 0.4825 - acc: 0.7826\n", + "Epoch 141/150\n", + "768/768 [==============================] - 0s 214us/step - loss: 0.4743 - acc: 0.7799\n", + "Epoch 142/150\n", + "768/768 [==============================] - 0s 249us/step - loss: 0.4843 - acc: 0.7721\n", + "Epoch 143/150\n", + "768/768 [==============================] - 0s 193us/step - loss: 0.4758 - acc: 0.7734\n", + "Epoch 144/150\n", + "768/768 [==============================] - 0s 214us/step - loss: 0.4767 - acc: 0.7734\n", + "Epoch 145/150\n", + "768/768 [==============================] - 0s 220us/step - loss: 0.4900 - acc: 0.7630\n", + "Epoch 146/150\n", + "768/768 [==============================] - 0s 216us/step - loss: 0.4935 - acc: 0.7669\n", + "Epoch 147/150\n", + "768/768 [==============================] - 0s 221us/step - loss: 0.4839 - acc: 0.7747\n", + "Epoch 148/150\n", + "768/768 [==============================] - 0s 220us/step - loss: 0.4724 - acc: 0.7695\n", + "Epoch 149/150\n", + "768/768 [==============================] - 0s 221us/step - loss: 0.4742 - acc: 0.7682\n", + "Epoch 150/150\n", + "768/768 [==============================] - 0s 233us/step - loss: 0.4776 - acc: 0.7695\n", + "768/768 [==============================] - 0s 134us/step\n", + "\n", + "acc: 79.43%\n" + ] + } + ], + "source": [ + "#all in one cell \n", + "# Create your first MLP in Keras\n", + "from keras.models import Sequential\n", + "from keras.layers import Dense\n", + "import numpy\n", + "# fix random seed for reproducibility\n", + "numpy.random.seed(7)\n", + "# load pima indians dataset\n", + "dataset = numpy.loadtxt(\"pima-indians-diabetes.data\", delimiter=\",\")\n", + "# split into input (X) and output (Y) variables\n", + "X = dataset[:,0:8]\n", + "Y = dataset[:,8]\n", + "# create model\n", + "model = Sequential()\n", + "model.add(Dense(12, input_dim=8, activation='relu'))\n", + "model.add(Dense(8, activation='relu'))\n", + "model.add(Dense(1, activation='sigmoid'))\n", + "# Compile model\n", + "model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])\n", + "# Fit the model\n", + "model.fit(X, Y, epochs=150, batch_size=10)\n", + "# evaluate the model\n", + "scores = model.evaluate(X, Y)\n", + "print(\"\\n%s: %.2f%%\" % (model.metrics_names[1], scores[1]*100))" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/150\n", + " - 1s - loss: 0.6771 - acc: 0.6510\n", + "Epoch 2/150\n", + " - 0s - loss: 0.6586 - acc: 0.6510\n", + "Epoch 3/150\n", + " - 0s - loss: 0.6470 - acc: 0.6510\n", + "Epoch 4/150\n", + " - 0s - loss: 0.6393 - acc: 0.6510\n", + "Epoch 5/150\n", + " - 0s - loss: 0.6320 - acc: 0.6510\n", + "Epoch 6/150\n", + " - 0s - loss: 0.6188 - acc: 0.6510\n", + "Epoch 7/150\n", + " - 0s - loss: 0.6194 - acc: 0.6510\n", + "Epoch 8/150\n", + " - 0s - loss: 0.6135 - acc: 0.6510\n", + "Epoch 9/150\n", + " - 0s - loss: 0.6087 - acc: 0.6510\n", + "Epoch 10/150\n", + " - 0s - loss: 0.6164 - acc: 0.6510\n", + "Epoch 11/150\n", + " - 0s - loss: 0.6052 - acc: 0.6510\n", + "Epoch 12/150\n", + " - 0s - loss: 0.6034 - acc: 0.6510\n", + "Epoch 13/150\n", + " - 0s - loss: 0.6004 - acc: 0.6510\n", + "Epoch 14/150\n", + " - 0s - loss: 0.6033 - acc: 0.6510\n", + "Epoch 15/150\n", + " - 0s - loss: 0.5989 - acc: 0.6510\n", + "Epoch 16/150\n", + " - 0s - loss: 0.6000 - acc: 0.6510\n", + "Epoch 17/150\n", + " - 0s - loss: 0.5995 - acc: 0.6510\n", + "Epoch 18/150\n", + " - 0s - loss: 0.6007 - acc: 0.6510\n", + "Epoch 19/150\n", + " - 0s - loss: 0.5972 - acc: 0.6510\n", + "Epoch 20/150\n", + " - 0s - loss: 0.5982 - acc: 0.6510\n", + "Epoch 21/150\n", + " - 0s - loss: 0.5950 - acc: 0.6510\n", + "Epoch 22/150\n", + " - 0s - loss: 0.5936 - acc: 0.6510\n", + "Epoch 23/150\n", + " - 0s - loss: 0.5930 - acc: 0.6510\n", + "Epoch 24/150\n", + " - 0s - loss: 0.5989 - acc: 0.6510\n", + "Epoch 25/150\n", + " - 0s - loss: 0.5956 - acc: 0.6510\n", + "Epoch 26/150\n", + " - 0s - loss: 0.6006 - acc: 0.6510\n", + "Epoch 27/150\n", + " - 0s - loss: 0.5949 - acc: 0.6510\n", + "Epoch 28/150\n", + " - 0s - loss: 0.5905 - acc: 0.6510\n", + "Epoch 29/150\n", + " - 0s - loss: 0.5927 - acc: 0.6510\n", + "Epoch 30/150\n", + " - 0s - loss: 0.5909 - acc: 0.6510\n", + "Epoch 31/150\n", + " - 0s - loss: 0.5900 - acc: 0.6510\n", + "Epoch 32/150\n", + " - 0s - loss: 0.5903 - acc: 0.6510\n", + "Epoch 33/150\n", + " - 0s - loss: 0.5844 - acc: 0.6510\n", + "Epoch 34/150\n", + " - 0s - loss: 0.5894 - acc: 0.6510\n", + "Epoch 35/150\n", + " - 0s - loss: 0.5916 - acc: 0.6510\n", + "Epoch 36/150\n", + " - 0s - loss: 0.5834 - acc: 0.6510\n", + "Epoch 37/150\n", + " - 0s - loss: 0.5824 - acc: 0.6510\n", + "Epoch 38/150\n", + " - 0s - loss: 0.5923 - acc: 0.6510\n", + "Epoch 39/150\n", + " - 0s - loss: 0.5833 - acc: 0.6471\n", + "Epoch 40/150\n", + " - 0s - loss: 0.5869 - acc: 0.6693\n", + "Epoch 41/150\n", + " - 0s - loss: 0.5820 - acc: 0.6953\n", + "Epoch 42/150\n", + " - 0s - loss: 0.5807 - acc: 0.7070\n", + "Epoch 43/150\n", + " - 0s - loss: 0.5787 - acc: 0.7122\n", + "Epoch 44/150\n", + " - 0s - loss: 0.5865 - acc: 0.7031\n", + "Epoch 45/150\n", + " - 0s - loss: 0.5788 - acc: 0.7096\n", + "Epoch 46/150\n", + " - 0s - loss: 0.5774 - acc: 0.7018\n", + "Epoch 47/150\n", + " - 0s - loss: 0.5782 - acc: 0.7148\n", + "Epoch 48/150\n", + " - 0s - loss: 0.5752 - acc: 0.7070\n", + "Epoch 49/150\n", + " - 0s - loss: 0.5744 - acc: 0.7122\n", + "Epoch 50/150\n", + " - 0s - loss: 0.5740 - acc: 0.7174\n", + "Epoch 51/150\n", + " - 0s - loss: 0.5731 - acc: 0.7174\n", + "Epoch 52/150\n", + " - 0s - loss: 0.5706 - acc: 0.7135\n", + "Epoch 53/150\n", + " - 0s - loss: 0.5729 - acc: 0.7122\n", + "Epoch 54/150\n", + " - 0s - loss: 0.5707 - acc: 0.7096\n", + "Epoch 55/150\n", + " - 0s - loss: 0.5728 - acc: 0.7057\n", + "Epoch 56/150\n", + " - 0s - loss: 0.5710 - acc: 0.7109\n", + "Epoch 57/150\n", + " - 0s - loss: 0.5678 - acc: 0.7083\n", + "Epoch 58/150\n", + " - 0s - loss: 0.5725 - acc: 0.7096\n", + "Epoch 59/150\n", + " - 0s - loss: 0.5668 - acc: 0.7044\n", + "Epoch 60/150\n", + " - 0s - loss: 0.5690 - acc: 0.7057\n", + "Epoch 61/150\n", + " - 0s - loss: 0.5662 - acc: 0.7083\n", + "Epoch 62/150\n", + " - 0s - loss: 0.5680 - acc: 0.7201\n", + "Epoch 63/150\n", + " - 0s - loss: 0.5712 - acc: 0.7096\n", + "Epoch 64/150\n", + " - 0s - loss: 0.5658 - acc: 0.7174\n", + "Epoch 65/150\n", + " - 0s - loss: 0.5630 - acc: 0.7109\n", + "Epoch 66/150\n", + " - 0s - loss: 0.5588 - acc: 0.7135\n", + "Epoch 67/150\n", + " - 0s - loss: 0.5586 - acc: 0.7135\n", + "Epoch 68/150\n", + " - 0s - loss: 0.5603 - acc: 0.7083\n", + "Epoch 69/150\n", + " - 0s - loss: 0.5559 - acc: 0.7279\n", + "Epoch 70/150\n", + " - 0s - loss: 0.5609 - acc: 0.7109\n", + "Epoch 71/150\n", + " - 0s - loss: 0.5571 - acc: 0.7044\n", + "Epoch 72/150\n", + " - 0s - loss: 0.5556 - acc: 0.7096\n", + "Epoch 73/150\n", + " - 0s - loss: 0.5501 - acc: 0.7148\n", + "Epoch 74/150\n", + " - 0s - loss: 0.5577 - acc: 0.6992\n", + "Epoch 75/150\n", + " - 0s - loss: 0.5540 - acc: 0.7201\n", + "Epoch 76/150\n", + " - 0s - loss: 0.5508 - acc: 0.7227\n", + "Epoch 77/150\n", + " - 0s - loss: 0.5504 - acc: 0.7253\n", + "Epoch 78/150\n", + " - 0s - loss: 0.5465 - acc: 0.7292\n", + "Epoch 79/150\n", + " - 0s - loss: 0.5498 - acc: 0.7174\n", + "Epoch 80/150\n", + " - 0s - loss: 0.5448 - acc: 0.7266\n", + "Epoch 81/150\n", + " - 0s - loss: 0.5427 - acc: 0.7305\n", + "Epoch 82/150\n", + " - 0s - loss: 0.5529 - acc: 0.7174\n", + "Epoch 83/150\n", + " - 0s - loss: 0.5524 - acc: 0.7109\n", + "Epoch 84/150\n", + " - 0s - loss: 0.5451 - acc: 0.7187\n", + "Epoch 85/150\n", + " - 0s - loss: 0.5465 - acc: 0.7201\n", + "Epoch 86/150\n", + " - 0s - loss: 0.5498 - acc: 0.7266\n", + "Epoch 87/150\n", + " - 0s - loss: 0.5405 - acc: 0.7253\n", + "Epoch 88/150\n", + " - 0s - loss: 0.5399 - acc: 0.7201\n", + "Epoch 89/150\n", + " - 0s - loss: 0.5583 - acc: 0.7318\n", + "Epoch 90/150\n", + " - 0s - loss: 0.5416 - acc: 0.7253\n", + "Epoch 91/150\n", + " - 0s - loss: 0.5391 - acc: 0.7266\n", + "Epoch 92/150\n", + " - 0s - loss: 0.5405 - acc: 0.7266\n", + "Epoch 93/150\n", + " - 0s - loss: 0.5402 - acc: 0.7174\n", + "Epoch 94/150\n", + " - 0s - loss: 0.5392 - acc: 0.7357\n", + "Epoch 95/150\n", + " - 0s - loss: 0.5359 - acc: 0.7214\n", + "Epoch 96/150\n", + " - 0s - loss: 0.5413 - acc: 0.7357\n", + "Epoch 97/150\n", + " - 0s - loss: 0.5401 - acc: 0.7266\n", + "Epoch 98/150\n", + " - 0s - loss: 0.5332 - acc: 0.7305\n", + "Epoch 99/150\n", + " - 0s - loss: 0.5274 - acc: 0.7409\n", + "Epoch 100/150\n", + " - 0s - loss: 0.5339 - acc: 0.7279\n", + "Epoch 101/150\n", + " - 0s - loss: 0.5313 - acc: 0.7279\n", + "Epoch 102/150\n", + " - 0s - loss: 0.5323 - acc: 0.7409\n", + "Epoch 103/150\n", + " - 0s - loss: 0.5404 - acc: 0.7227\n", + "Epoch 104/150\n", + " - 0s - loss: 0.5351 - acc: 0.7344\n", + "Epoch 105/150\n", + " - 0s - loss: 0.5287 - acc: 0.7318\n", + "Epoch 106/150\n", + " - 0s - loss: 0.5291 - acc: 0.7305\n", + "Epoch 107/150\n", + " - 0s - loss: 0.5335 - acc: 0.7409\n", + "Epoch 108/150\n", + " - 0s - loss: 0.5314 - acc: 0.7331\n", + "Epoch 109/150\n", + " - 0s - loss: 0.5269 - acc: 0.7383\n", + "Epoch 110/150\n", + " - 0s - loss: 0.5249 - acc: 0.7422\n", + "Epoch 111/150\n", + " - 0s - loss: 0.5323 - acc: 0.7383\n", + "Epoch 112/150\n", + " - 0s - loss: 0.5241 - acc: 0.7396\n", + "Epoch 113/150\n", + " - 0s - loss: 0.5236 - acc: 0.7409\n", + "Epoch 114/150\n", + " - 0s - loss: 0.5257 - acc: 0.7435\n", + "Epoch 115/150\n", + " - 0s - loss: 0.5204 - acc: 0.7435\n", + "Epoch 116/150\n", + " - 0s - loss: 0.5213 - acc: 0.7422\n", + "Epoch 117/150\n", + " - 0s - loss: 0.5189 - acc: 0.7461\n", + "Epoch 118/150\n", + " - 0s - loss: 0.5240 - acc: 0.7435\n", + "Epoch 119/150\n", + " - 0s - loss: 0.5125 - acc: 0.7448\n", + "Epoch 120/150\n", + " - 0s - loss: 0.5154 - acc: 0.7435\n", + "Epoch 121/150\n", + " - 0s - loss: 0.5159 - acc: 0.7565\n", + "Epoch 122/150\n", + " - 0s - loss: 0.5131 - acc: 0.7578\n", + "Epoch 123/150\n", + " - 0s - loss: 0.5104 - acc: 0.7474\n", + "Epoch 124/150\n", + " - 0s - loss: 0.5059 - acc: 0.7617\n", + "Epoch 125/150\n", + " - 0s - loss: 0.5067 - acc: 0.7448\n", + "Epoch 126/150\n", + " - 0s - loss: 0.5088 - acc: 0.7227\n", + "Epoch 127/150\n", + " - 0s - loss: 0.5109 - acc: 0.7539\n", + "Epoch 128/150\n", + " - 0s - loss: 0.5037 - acc: 0.7708\n", + "Epoch 129/150\n", + " - 0s - loss: 0.5129 - acc: 0.7591\n", + "Epoch 130/150\n", + " - 0s - loss: 0.4990 - acc: 0.7656\n", + "Epoch 131/150\n", + " - 0s - loss: 0.4970 - acc: 0.7617\n", + "Epoch 132/150\n", + " - 0s - loss: 0.4951 - acc: 0.7656\n", + "Epoch 133/150\n", + " - 0s - loss: 0.5020 - acc: 0.7565\n", + "Epoch 134/150\n", + " - 0s - loss: 0.5000 - acc: 0.7721\n", + "Epoch 135/150\n", + " - 0s - loss: 0.4927 - acc: 0.7617\n", + "Epoch 136/150\n", + " - 0s - loss: 0.4975 - acc: 0.7578\n", + "Epoch 137/150\n", + " - 0s - loss: 0.5046 - acc: 0.7643\n", + "Epoch 138/150\n", + " - 0s - loss: 0.4963 - acc: 0.7643\n", + "Epoch 139/150\n", + " - 0s - loss: 0.4869 - acc: 0.7643\n", + "Epoch 140/150\n", + " - 0s - loss: 0.4884 - acc: 0.7591\n", + "Epoch 141/150\n", + " - 0s - loss: 0.4879 - acc: 0.7630\n", + "Epoch 142/150\n", + " - 0s - loss: 0.4911 - acc: 0.7617\n", + "Epoch 143/150\n", + " - 0s - loss: 0.4841 - acc: 0.7721\n", + "Epoch 144/150\n", + " - 0s - loss: 0.4856 - acc: 0.7708\n", + "Epoch 145/150\n", + " - 0s - loss: 0.4869 - acc: 0.7760\n", + "Epoch 146/150\n", + " - 0s - loss: 0.4883 - acc: 0.7682\n", + "Epoch 147/150\n", + " - 0s - loss: 0.4831 - acc: 0.7747\n", + "Epoch 148/150\n", + " - 0s - loss: 0.4880 - acc: 0.7852\n", + "Epoch 149/150\n", + " - 0s - loss: 0.4779 - acc: 0.7721\n", + "Epoch 150/150\n", + " - 0s - loss: 0.4756 - acc: 0.7669\n", + "[1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0]\n" + ] + } + ], + "source": [ + "# Create first network with Keras\n", + "from keras.models import Sequential\n", + "from keras.layers import Dense\n", + "import numpy\n", + "# fix random seed for reproducibility\n", + "seed = 7\n", + "numpy.random.seed(seed)\n", + "# load pima indians dataset\n", + "dataset = numpy.loadtxt(\"pima-indians-diabetes.data\", delimiter=\",\")\n", + "# split into input (X) and output (Y) variables\n", + "X = dataset[:,0:8]\n", + "Y = dataset[:,8]\n", + "# create model\n", + "model = Sequential()\n", + "model.add(Dense(12, input_dim=8, kernel_initializer='uniform', activation='relu'))\n", + "model.add(Dense(8, kernel_initializer='uniform', activation='relu'))\n", + "model.add(Dense(1, kernel_initializer='uniform', activation='sigmoid'))\n", + "# Compile model\n", + "model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])\n", + "# Fit the model\n", + "model.fit(X, Y, epochs=150, batch_size=10, verbose=2)\n", + "# calculate predictions\n", + "predictions = model.predict(X)\n", + "# round predictions\n", + "rounded = [round(x[0]) for x in predictions]\n", + "print(rounded)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}