Vendor libs/hump, sfxrlua, json4lua, narrator as real files

These were committed as empty submodule gitlinks with no .gitmodules,
so the folders were never populated and the game could not load
(require of libs/hump/timer, libs/sfxrlua/sfxr, narrator.narrator).
Checked out each at its pinned commit and vendored the files, matching
the existing bundled-libs convention. Removed the junk libs/libs/ tree.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Your Name 2026-08-11 11:37:09 -04:00
parent e73f63b5d4
commit 03532d29e4
219 changed files with 20254 additions and 252 deletions

4
libs/json4lua/doc/INSTALL.txt Executable file
View file

@ -0,0 +1,4 @@
INSTALLATION
============
See INSTALLATION section in doc/index.html

21
libs/json4lua/doc/LICENCE.txt Executable file
View file

@ -0,0 +1,21 @@
The MIT License
Copyright (c) 2009 Craig Mason-Jones
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

5
libs/json4lua/doc/README.txt Executable file
View file

@ -0,0 +1,5 @@
===================================================================================================================
== README.txt
===================================================================================================================
Please see doc/index.html

4
libs/json4lua/doc/VERSION.txt Executable file
View file

@ -0,0 +1,4 @@
JSON4Lua and JSONRPC4Lua
Version 1.0.0
4 March 2015
http://github.com/craigmj/json4lua/

View file

@ -0,0 +1,187 @@
<html>
<head>
<title>JSON4Lua and JSONRPC4Lua</title>
<style type="text/css">
body {
font-family: Arial, Helvetica, Geneva;
font-size: 10pt;
}
.copyright {
color: #999999;
font-size: 8pt;
text-align:center;
}
.navBar {
border-left: 1px solid lightgray;
border-right: 1px solid lightgray;
border-bottom: 1px solid lightgray;
margin-top:5px;
margin-bottom: 5px;
}
.navBar h1 {
background-image: url('pics/lunartone.gif');
background-color: #e0c088;
color: white;
font-size: 9pt;
margin: 0px;
padding: 4px;
}
.navBar .navItem a {
color: #999999;
font-size: 8pt;
padding: 2px 2px 2px 10px;
text-decoration:none;
}
.navBar .navItem a:hover {
color: #ff9900;
text-decoration: underline;
}
.titleBar {
border-bottom: 2px dotted gray;
font-size: 20pt;
font-weight: bold;
margin-bottom: 15px;
width: 100%;
}
.workArea {
border: 1px none lightgray;
font-family: Times New Roman;
padding: 8px;
padding-left: 15px;
}
.workArea a {
font-weight: bold;
text-decoration: none;
}
.workArea a:hover {
color: #ff9900;
text-decoration: underline;
}
.workArea .downloadTable {
border: 1px solid lightgray;
padding: 0px;
margin: 0px;
}
.workArea .downloadTable * th {
background-color: #e0c088;
background-image: url('pics/lunartone.gif');
color: white;
}
.workArea .downloadTable * tr {
border: 1px solid lightgray;
}
.workArea .downloadTable * td {
vertical-align: top;
}
.workArea * dt {
font-size: 12pt;
margin-top: 10px;
}
.workArea * .example {
background-color: #ffffcc;
border: 1px dashed lightgray;
padding: 10px;
}
.workArea h1 {
font-size: 16pt;
font-weight: bold;
}
.workArea h2 {
font-size: 14pt;
font-weight: normal;
color: gray;
}
</style>
<body>
<table border="0">
<tr>
<td valign="top">
<img src="pics/json4lua.gif"><p/>
<!-- NAVIGATION BARS -->
<div class="navBar">
<h1>Home Page</h1>
<div class="navItem"><a href="index.html#news">Latest News</a></div>
<div class="navItem"><a href="index.html#introduction">Introduction</a></div>
<div class="navItem"><a href="index.html#licence">Licence</a></div>
<div class="navItem"><a href="index.html#requirements">Requirements</a></div>
<div class="navItem"><a href="index.html#download">Download</a></div>
<div class="navItem"><a href="index.html#installation">Installation</a></div>
<div class="navItem"><a href="index.html#usage">Usage &amp; Reference</a></div>
<div class="navItem"><a href="index.html#roadmap">History &amp; Roadmap</a></div>
</div> <!-- end of navigation bar: This Site -->
<div class="navBar">
<h1>json.luaforge</h1>
<div class="navItem"><a href="http://luaforge.net/projects/json/">Summary</a></div>
<div class="navItem"><a href="http://luaforge.net/forum/?group_id=143">Forums</a></div>
<div class="navItem"><a href="http://luaforge.net/tracker/?group_id=143">Tracker</a></div>
<div class="navItem"><a href="http://luaforge.net/news/?group_id=143">News</a></div>
<!--<div class="navItem"><a href="http://luaforge.net/scm/?group_id=143">CVS</a></div>-->
<div class="navItem"><a href="http://luaforge.net/frs/?group_id=143">Files</a></div>
</div> <!-- end of navigation bar: json.luaforge -->
<div class="navBar">
<h1>Lua</h1>
<div class="navItem"><a href="http://www.lua.org/">Lua</a></div>
<div class="navItem"><a href="http://www.luaforge.net/">Lua Forge</a></div>
<div class="navItem"><a href="http://www.keplerproject.org/cgilua/">CGI Lua</a></div>
<div class="navItem"><a href="http://www.keplerproject.org/compat/">Lua compat-5.1</a></div>
<div class="navItem"><a href="http://www.cs.princeton.edu/~diego/professional/luasocket/">Lua Socket 2.0</a></div>
<div class="navItem"><a href="http://www.keplerproject.org/xavante/">Xavante</a></div>
</div> <!-- end of navigation bar: Lua Resources -->
<div class="navBar">
<h1>JSON</h1>
<div class="navItem"><a href="http://www.json.org/">json.org</a></div>
<div class="navItem"><a href="http://www.json-rpc.org/">json-rpc.org</a></div>
</div> <!-- end of navigation bar: Lua Resources -->
</td>
<!-- MAIN WORK AREA -->
<td valign="top" class="workArea">
<div class="titleBar">Patching CGILua to handle <code>text/plain</code></div>
<!-- cgilua_patch.html -->
JSON RPC (both the JSONRPC4Lua implementation and the <a href="http://www.jsolait.net/">jsolait Javascript</a> implementation) send the http request with a Content-Type of <code>text/plain</code>.<p/>
CGILua 5.0 does not accept <code>text/plain</code> content, and will generate an error of 'Unsupported Media Type: text/plain'.<p/>
This is easily patched in CGILua 5.0 by making the following change to <code>cgilua/post.lua</code>, line 286:<p/>
Change:<pre>
elseif strfind (contenttype, "text/xml") then
</pre>
to
<pre>
elseif strfind (contenttype, "text/xml") or strfind (contenttype, "text/plain") then
</pre>
This makes CGILua handle <code>text/plain</code> as it does <code>text/xml</code>, without parsing the incoming POST data.<p/>
<b>Please note:</b> I have requested the maintainers of CGILua to make this change to CGILua, whereafter this patch will no longer be required.
</td>
</tr>
<tr>
<td colspan="2" class="copyright">&copy; 2005 Craig Mason-Jones</td>
</tr>
</table>
</body>
</html>

394
libs/json4lua/doc/index.html Executable file
View file

@ -0,0 +1,394 @@
<html>
<head>
<title>JSON4Lua and JSONRPC4Lua</title>
<style type="text/css">
body {
font-family: Arial, Helvetica, Geneva;
font-size: 10pt;
}
.copyright {
color: #999999;
font-size: 8pt;
text-align:center;
}
.navBar {
border-left: 1px solid lightgray;
border-right: 1px solid lightgray;
border-bottom: 1px solid lightgray;
margin-top:5px;
margin-bottom: 5px;
}
.navBar h1 {
background-image: url('pics/lunartone.gif');
background-color: #e0c088;
color: white;
font-size: 9pt;
margin: 0px;
padding: 4px;
}
.navBar .navItem a {
color: #999999;
font-size: 8pt;
padding: 2px 2px 2px 10px;
text-decoration:none;
}
.navBar .navItem a:hover {
color: #ff9900;
text-decoration: underline;
}
.titleBar {
border-bottom: 2px dotted gray;
font-size: 20pt;
font-weight: bold;
margin-bottom: 15px;
width: 100%;
}
.workArea {
border: 1px none lightgray;
font-family: Times New Roman;
padding: 8px;
padding-left: 15px;
}
.workArea a {
font-weight: bold;
text-decoration: none;
}
.workArea a:hover {
color: #ff9900;
text-decoration: underline;
}
.workArea .downloadTable {
border: 1px solid lightgray;
padding: 0px;
margin: 0px;
}
.workArea .downloadTable * th {
background-color: #e0c088;
background-image: url('pics/lunartone.gif');
color: white;
}
.workArea .downloadTable * tr {
border: 1px solid lightgray;
}
.workArea .downloadTable * td {
vertical-align: top;
}
.workArea * dt {
font-size: 12pt;
margin-top: 10px;
}
.workArea * .example {
background-color: #ffffcc;
border: 1px dashed lightgray;
padding: 10px;
}
.workArea h1 {
font-size: 16pt;
font-weight: bold;
}
.workArea h2 {
font-size: 14pt;
font-weight: normal;
color: gray;
}
</style>
<body>
<table border="0">
<tr>
<td valign="top">
<img src="pics/json4lua.gif"><p/>
<!-- NAVIGATION BARS -->
<div class="navBar">
<h1>This Page</h1>
<div class="navItem"><a href="#news">Latest News</a></div>
<div class="navItem"><a href="#introduction">Introduction</a></div>
<div class="navItem"><a href="#licence">Licence</a></div>
<div class="navItem"><a href="#requirements">Requirements</a></div>
<div class="navItem"><a href="#download">Download</a></div>
<div class="navItem"><a href="#installation">Installation</a></div>
<div class="navItem"><a href="#usage">Usage &amp; Reference</a>
<div class="navItem" style="margin-left: 4px"><a href="#json_decode">decode</a></div>
<div class="navItem" style="margin-left: 4px"><a href="#json_encode">encode</a></div>
<div class="navItem" style="margin-left: 4px"><a href="#json_null">null</a></div>
<div class="navItem" style="margin-left: 4px"><a href="#json_rpc_call">rpc.call</a></div>
<div class="navItem" style="margin-left: 4px"><a href="#json_rpc_proxy">rpc.proxy</a></div>
<div class="navItem" style="margin-left: 4px"><a href="#json_rpcserver_serve">rpcserver.serve</a></div>
</div>
<div class="navItem"><a href="#roadmap">History &amp; Roadmap</a></div>
</div> <!-- end of navigation bar: This Site -->
<div class="navBar">
<h1>json.luaforge</h1>
<div class="navItem"><a href="http://luaforge.net/projects/json/">Summary</a></div>
<div class="navItem"><a href="http://luaforge.net/forum/?group_id=143">Forums</a></div>
<div class="navItem"><a href="http://luaforge.net/tracker/?group_id=143">Tracker</a></div>
<div class="navItem"><a href="http://luaforge.net/news/?group_id=143">News</a></div>
<!--<div class="navItem"><a href="http://luaforge.net/scm/?group_id=143">CVS</a></div>-->
<div class="navItem"><a href="http://luaforge.net/frs/?group_id=143">Files</a></div>
</div> <!-- end of navigation bar: json.luaforge -->
<div class="navBar">
<h1>Lua</h1>
<div class="navItem"><a href="http://www.lua.org/">Lua</a></div>
<div class="navItem"><a href="http://www.luaforge.net/">Lua Forge</a></div>
<div class="navItem"><a href="http://www.keplerproject.org/cgilua/">CGI Lua</a></div>
<div class="navItem"><a href="http://www.keplerproject.org/compat/">Lua compat-5.1</a></div>
<div class="navItem"><a href="http://www.cs.princeton.edu/~diego/professional/luasocket/">Lua Socket 2.0</a></div>
<div class="navItem"><a href="http://www.keplerproject.org/xavante/">Xavante</a></div>
</div> <!-- end of navigation bar: Lua Resources -->
<div class="navBar">
<h1>JSON</h1>
<div class="navItem"><a href="http://www.json.org/">json.org</a></div>
<div class="navItem"><a href="http://www.json-rpc.org/">json-rpc.org</a></div>
</div> <!-- end of navigation bar: Lua Resources -->
</td>
<!-- MAIN WORK AREA -->
<td valign="top" class="workArea">
<div class="titleBar">JSON4Lua and JSONRPC4Lua</div>
<!-- ***************** LATEST NEWS ***************** -->
<h1><a name="news"></a>Latest News</h1>
<p><small>(2009-08-06)</small> We've changed the JSON4Lua and JSONRPC4Lua licence from the GPL to the MIT licence, like Lua itself.</p>
<p>
The 0.9.20 release fixes a bug in Lua 5.1 operation, introduces a <a href="#json_null"><code>json.null</code></a> value to force null values in JSON encodings, improves performance (over 50% faster on some tests), and permits <code>/* comments */</code> in the JSON string being decoded.
</p>
<!-- ***************** INTRODUCTION ***************** -->
<h1><a name="introduction"></a>Introduction</h1>
JSON4Lua and JSONRPC4Lua implement <a href="http://www.json.org">JSON (JavaScript Object Notation)</a> encoding and decoding and a <a href="http://www.json-rpc.org/">JSON-RPC-over-http</a> client for <a href="http://www.lua.org/">Lua</a>.<p/>
JSON is JavaScript Object Notation, a simple encoding of Javascript-like objects that is ideal for lightweight transmission of relatively weakly-typed data.
A sub-package of JSON4Lua is JSONRPC4Lua, which provides a simple JSON-RPC-over-http client and server (in a CGILua environment) for Lua. Please seen the documentation below for JSONRPC4Lua.
<!-- ***************** LICENCE ***************** -->
<h1><a name="licence"></a>Licence</h1>
JSON4Lua is licensed under the MIT Consortium licence like Lua itself. Please see <a href="LICENCE.txt">LICENCE.txt</a> for details.<p/>
<!-- ***************** REQUIREMENTS ***************** -->
<a name="requirements"></a><h1>Requirements</h1>
JSON4Lua is a pure-Lua module that is Lua 5.0 compatible (if you have <a href="http://www.keplerproject.org/compat/">compat-5.1</a> for Lua 5.0). JSON4Lua also works (perfectly, I hope) under Lua 5.1, which is where I largely use it nowadays. Since Lua is platform independent, so is JSON4Lua.<p/>
The JSON4RPC sub-module requires <a href="http://www.cs.princeton.edu/~diego/professional/luasocket/">Lua Socket 2.0</a>. It uses <code>socket.http</code> for for the RPC over http connection. Socket 2.0 includes <code>ltn12</code>, which is also used by JSON4RPC.<p />
To use <code>json.rpcserver</code> you need a <a href="http://www.keplerproject.org/cgilua/">CGILua</a> enabled webserver. However, a quick <a href="cgilua_patch.html">patch</a> is required in CGILua 5.0 to support JSON-RPC.
<!-- ***************** START OF DOWNLOAD SECTION ***************** -->
<h1><a name="download"></a>Download</h1>
JSON4Lua is hosted on <a href="http://www.luaforge.net">LuaForge</a>.
<table cols="2" class="downloadTable">
<tr><th>Version</th><th>Date</th><th>Notes</th></tr>
<tr><td><a href="http://luaforge.net/frs/?group_id=143">0.9.30</a></td><td>6 August 2009</td><td>
Changed to MIT Licence.
</td></tr>
<tr><td><a href="http://luaforge.net/frs/?group_id=143">0.9.20</a></td><td>4 January 2006</td><td>
Introduction of local Lua functions for private functions (removed _ function prefix). <br />
Fixed Lua 5.1 compatibility issues.<br />
Introduced <code>json.null</code> to have null values in associative arrays.<br />
Performance improvement (more than 50% on some tests) through <code>table.concat</code> rather than <code>..</code> operator.<br/>
<code>json.decode</code> now ignores <code>/* */</code> comments in the JSON string.<br />
</td></tr>
<tr><td><a href="http://luaforge.net/frs/?group_id=143">0.9.10</a></td><td>20 December 2005</td><td>
Fixes bug with array representation when nil / null values occur in the array.<br />
Adds content-type header of <code>text/plain</code> to JSON RPC http requests.<br />
Introduces <code>json.rpcserver</code> module with simple JSON RPC enablement for Lua objects.<br />
Moved the <code>json.lua</code> file into the <code>json</code> directory. Ensure, therefore, that your <code>LUA_PATH</code> contains a module-finding form like <code>LUA_PATH = c:\proj\lua\?\?.lua;?.lua</code>.<br/>
</td></tr>
<tr>
<td><a href="http://luaforge.net/frs/?group_id=143">0.9.01</a></td>
<td>19 December 2005</td>
<td>Minor corrections to documentation.</td>
</tr>
<tr>
<td><a href="http://luaforge.net/frs/?group_id=143">0.9.00</a></td>
<td>19 December 2005</td>
<td>First release</td>
</tr>
</table>
<!-- END OF DOWNLOAD SECTION -->
<!-- ***************** START OF INSTALLATION SECTION ***************** -->
<h1><a name="installation"></a>Installation</h1>
As of version 0.9.10, all the JSON4Lua files are contained in the <code>json</code> subdirectory in the distribution zip.<p />
Simply copy the <code>json</code> subdirectory so that it is in your Lua path.<p />
Ensure that your <code>LUA_PATH</code> variable permits module resolution of the form <code>?/?.lua</code>.<p />
<b>Example</b>
<div class="example">
</div>
<h2>Using Windows</h2>
Under Windows, set your Lua path as (my Lua installation is in <code>c:\proj\lua\</code>): <p/>
<code>
set LUA_PATH=c:\proj\lua\?.lua;c:\proj\lua\?\?.lua;?.lua
</code><p/>
For compat-5.1.lua to start when Lua starts (if you're using Lua 5.0), you also need:<p/>
<code>
set LUA_INIT=@c:\proj\lua\compat-5.1.lua
</code><p />
You probably also want to set your library path:<p/>
<code>set LUA_CPATH=c:\proj\lua\lib\?.dll;?.dll</code>
<!------------------------ USAGE AND REFERENCE -------------------->
<h1><a name="usage"></a>Usage &amp; Reference</h1>
The following functions in <b>JSON4Lua</b> and <b>JSONRPC4Lua</b> are of interest:<p />
<dl>
<dt><a name="json_encode"></a><code>string <b>json.encode</b>( lua_object )</code></dt>
<dd>Returns the Lua object JSON encoded into a string.<p/>
<b>Example</b>
<div class="example">
<code>
json = require("json")<br/>
print (json.encode( { 1, 2, 'fred', {first='mars',second='venus',third='earth'} } ))
</code><p/>
prints<p/><code> [1,2,"fred", {"first":"mars","second":"venus","third","earth"}]</code>
</div>
</dd>
<dt><a name="json_decode"></a><code>lua_object <b>json.decode</b>( json_string )</code></dt>
<dd>Decodes the JSON encoded data structure, and returns a Lua object with the appropriate data.<p/>
<b>Example</b>
<div class="example">
<code>
json = require("json")<br/>
testString = [[ { "one":1 , "two":2, "primes":[2,3,5,7] } ]]<br/>
o = json.decode(testString)<br/>
table.foreach(o,print)<br />
print ("Primes are:")<br />
table.foreach(o.primes,print)
</code><p/>
prints:<p/>
<pre>
one 1
two 2
primes table: 0032B928
Primes are:
1 2
2 3
3 5
4 7</pre>
</div></dd>
<dt><a name="json_null"></a><code><b>json.null</b></code></dt>
<dd>Returns a unique value that will be encoded as a <code>null</code> in a JSON encoding.
<p>This is necessary in one situation. In Lua, if a key in a table has a <code>nil</code> value, the key is simply discarded (since any non-existent key has a nil value). The encoding of arrays has been built to manage this nil-values in arrays, but associative arrays provide a problem. Consider:
<div class="example"><pre>t = { user="test", password=nil }</pre></div>
Since Lua simply discards the <code>password</code> key, JSON4Lua encodes this as the JSON string
<div class="example"><pre>{"user":"test"}</pre></div>
If, for some reason, your JSON RPC Server requires a defined <code>null</code> value, use the following code:
<div class="example"><pre>t = { user="test", password=json.null }</pre></div>
This will now correctly encode to:
<div class="example"><pre>{"user":"test","password":null}</pre></div>
Incidentally, <code>json.null</code> is simply a function that returns itself, so that you can use either <code>json.null</code> or <code>json.null()</code> as you fancy.
</dd>
<dt><a name="json_rpc_call"></a><code>result, error <b>json.rpc.call</b> ( url, method, ...)</code></dt>
<dd>Calls the named method on the given url with the arg parameters. Returns the result and the error. If <code>error</code> is <code>nil</code>, no error occurred.<p/>
<b>Example</b>
<div class="example">
<pre>require ("json.rpc")
result, error = json.rpc.call("http://jsolait.net/testj.py","echo","Test echo!")
print(result)</pre>
<p />prints<p />
<pre>Test echo!</pre>
</div>
</dd>
<dt><a name="json_rpc_proxy"></a><code>proxyServer = <b>json.rpc.proxy</b> (url)</code></dt>
<dd>Creates a proxy server object on which JSON-RPC calls can be made. Each call will return the <code>result, error</code>. If <code>error</code> is <code>nil</code>, no error occurred.<p/>
<b>Example</b>
<div class="example">
<pre>
require ("json.rpc")
server = json.rpc.proxy("http://jsolait.net/testj.py")
result, error = server.echo('Test echo!')
print(result)</pre>
<p />prints<p />
<pre>Test echo!</pre>
</div>
</dd>
<dt><a name="json_rpcserver_serve"></a><code><b>json.rpcserver.serve</b>(object[, packReturn])</code></dt>
<dd>
Handles an incoming CGILua request as a JSON RPC request and serves the request from
the given object.
<p />The optional <code>packReturn</code> parameter, if set <code>true</code>, will, if the requested
method returns more than one value, pack these returned values into an array. If only a single value
is returned, it is not packed into an array. If <code>packReturn</code> is <code>false</code> (or not set), only the first
return value from the requested method will be returned. This is necessitated since the JSON protocol does not permit a method call to return more than a single value.
<p/>
<code>serve</code> returns nothing.<p/>
<b>Example</b>
<div class="example">
<pre>
--
-- jsonrpc.lua
-- Installed in a CGILua webserver environment (with necessary CGI Lua 5.0 patch)
--
require ('json.rpcserver')
-- The Lua class that is to serve JSON RPC requests
local myServer = {
echo = function (msg) return msg end,
average = function(...)
local total=0
local count=0
for i=1, table.getn(arg) do
total = total + arg[i]
count = count + 1
end
return { average= total/count, sum = total, n=count }
end
}
json.rpcserver.serve(myServer)
</pre>
An example of using this JSON RPC server from a Lua file:
<pre>
require ('json.rpc')
local server = json.rpc.proxy('http://www.myserver.com/jsonrpc.lua')
table.foreach(server.average(10,15,23), print)
</pre>
Prints:
<pre>
average 16
sum 48
n 3
</pre>
</div>
</dd>
</dl>
<!-- ***************** HISTORY AND ROADMAP ***************** -->
<h1><a name="roadmap"></a>History &amp; Roadmap</h1>
The downloads sections details the versions and their related histories. I will wait for Lua 5.1 to be final (expected late January) before making the JSON4Lua module beta. If no serious bugs or objections are encountered, I will make the module 1.0 on 1 April 2006 (to coincide with April Fool's day!)
</td>
</tr>
<tr>
<td colspan="2" class="copyright">&copy; 2005, 2006 Craig Mason-Jones</td>
</tr>
</table>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 312 B