diff --git a/README.md b/README.md
index 253b2e1..5523b53 100644
--- a/README.md
+++ b/README.md
@@ -50,8 +50,8 @@
 ---------------
 
 The weinre build is currently run on a Mac OS X 10.7 laptop.  It also runs on Apache
-continuous integration servers running Linux.  It is not typically run on Windows,
-so if you issues with that, please log an issue.  
+continuous integration servers running Linux.  The build is not typically run on Windows,
+so if you have problems with that, please log an issue.  
 
 The weinre build pre-req's the following tools:
 
@@ -108,7 +108,7 @@
 ### to run the output of the development build: ###
 
 * run: `cd weinre.server`
-* run: `./weinre [your flavorite options]`
+* run: `node weinre [your flavorite options]`
 
 ### other fun development-time hacks ###
 
@@ -125,7 +125,7 @@
 completes.
 
 Putting this altogether, you can open two terminal windows, run `wr` in the `weinre.build`
-directory to have a development build run whenever you change the source, and then run `weinre.hot` in the `weinre.server` directory to have the weinre server restart whenever a build completes, getting a growl notification at that time.
+directory to have a development build run whenever you change the source, and then run `weinre-hot` in the `weinre.server` directory to have the weinre server restart whenever a build completes, getting a growl notification at that time.
 
 updating 3rd party libraries
 -----------------------------
@@ -137,7 +137,7 @@
 sure the license is acceptable, and add/update the license in the top-level `LICENSE`
 file.
 
-All of the 3rd party dependencies used with weinre are stored in two directories:
+All of the 3rd party dependencies used with weinre are stored in one of two directories:
 
 * `weinre.build/vendor` - contains libraries used in the client and/or target,
 as well as libraries used by the build itself
@@ -153,7 +153,7 @@
 
 To update the files in `weinre.server/node_modules`:
 
-* edit the file `weinre.build/package.json.template' as appropriate
+* edit the file `weinre.build/package.json.template` as appropriate
 * run a build (see above), so that the file `weinre.server/package.json` file is created
 from the template you edited above
 * run: `cd weinre.server`
diff --git a/weinre.build/build.xml b/weinre.build/build.xml
index f4ccae9..ce07ac3 100644
--- a/weinre.build/build.xml
+++ b/weinre.build/build.xml
@@ -386,6 +386,12 @@
             <arg value="weinre-node"/>
         </exec>
 
+        <exec executable="tar" dir="${OUT}/files">
+            <arg value="-czf"/>
+            <arg value="../archives/weinre-node-${BUILD_VERSION}.tar.gz"/>
+            <arg value="weinre-node"/>
+        </exec>
+
         <!-- =================================== -->
         <delete dir="${OUT}/files/weinre-doc"/>
         <mkdir  dir="${OUT}/files/weinre-doc"/>
diff --git a/weinre.build/package.json.template b/weinre.build/package.json.template
index e5d1406..6f18a35 100644
--- a/weinre.build/package.json.template
+++ b/weinre.build/package.json.template
@@ -29,7 +29,7 @@
   "main" :             "./lib/weinre",
   "bin":
     {
-      "weinre":        "./bin/weinre"
+      "weinre":        "./weinre"
     },
   "homepage":          "http://incubator.apache.org/callback/",
   "bugs":              "https://issues.apache.org/jira/browse/CB",
diff --git a/weinre.server/README.md b/weinre.server/README.md
index fc2f570..935a407 100644
--- a/weinre.server/README.md
+++ b/weinre.server/README.md
@@ -17,31 +17,43 @@
  * under the License.
 -->
 
-The files contained in this directory are the source for the
-weinre server, implemented using the 
-[express package](http://expressjs.com/)
-on the 
-[node.js](http://nodejs.org) 
-runtime.
+weinre is WEb INspector REmote. 
+Pronounced like the word "winery". 
+Or maybe like the word "weiner". 
+Who knows, really.
 
-The weinre server uses numerous 3rd party libraries, installed in the
-`node_modules` directory, and stored in the SCM.  
-In case these need to be updated, the file
-`package.json` should be updated with the dependencies and versions
-needed, then run
+weinre is a debugger for web pages, 
+like FireBug (for FireFox) and Web Inspector (for WebKit-based browsers), 
+except it's designed to work remotely, and in particular, 
+to allow you debug web pages on a mobile device such as a phone.
 
-	rm -rf node_modules; npm install
+For more information on weinre:
+[http://http://incubator.apache.org/callback/](http://incubator.apache.org/callback/)
 
-to refresh the dependencies.
+running
+-------
 
+For more information about running weinre, you can start the server
+and browse the documentation online.
 
-before running the weinre server
---------------------------------
+Start the server with the following command
 
-Before running the weinre server, after downloading the source,
-you will need to run a 'build'.
+    node weinre
+    
+This will start the server, and display a message with the URL to the
+server.  Browse to that URL in your web browser, and then click on 
+'documentation' link, which will display weinre's online documentation.
+From there click on the 'Running' page to get more information about 
+running weinre.
 
+source
+------
 
-running the weinre server
--------------------------
+Follow the link for more information at the top of this file 
+for instructions on obtaining source.
+
+If you're reading this file as part of the source distribution of weinre,
+you will need to run a 'build' before being able to run weinre.  See the
+`README.md` file in the root directory of the weinre source distribution
+for more information.
 
diff --git a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/.gitignore b/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/.gitignore
deleted file mode 100644
index b72f74f..0000000
--- a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-/test/tmp
-*.upload
-*.un~
-/node_modules
diff --git a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/Readme.md b/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/Readme.md
index ca3c00a..3427514 100644
--- a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/Readme.md
+++ b/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/Readme.md
@@ -22,6 +22,23 @@
 
 ## Changelog
 
+### v1.0.9
+
+* Emit progress when content length header parsed (Tim Koschützki)
+* Fix Readme syntax due to GitHub changes (goob)
+* Replace references to old 'sys' module in Readme with 'util' (Peter Sugihara)
+
+### v1.0.8
+
+* Strip potentially unsafe characters when using `keepExtensions: true`.
+* Switch to utest / urun for testing
+* Add travis build
+
+### v1.0.7
+
+* Remove file from package that was causing problems when installing on windows. (#102)
+* Fix typos in Readme (Jason Davies).
+
 ### v1.0.6
 
 * Do not default to the default to the field name for file uploads where
@@ -125,7 +142,7 @@
     var formidable = require('formidable'),
         http = require('http'),
 
-        sys = require('sys');
+        util = require('util');
 
     http.createServer(function(req, res) {
       if (req.url == '/upload' && req.method.toLowerCase() == 'post') {
@@ -134,7 +151,7 @@
         form.parse(req, function(err, fields, files) {
           res.writeHead(200, {'content-type': 'text/plain'});
           res.write('received upload:\n\n');
-          res.end(sys.inspect({fields: fields, files: files}));
+          res.end(util.inspect({fields: fields, files: files}));
         });
         return;
       }
@@ -154,43 +171,43 @@
 
 ### formidable.IncomingForm
 
-#### new formidable.IncomingForm()
+__new formidable.IncomingForm()__
 
 Creates a new incoming form.
 
-#### incomingForm.encoding = 'utf-8'
+__incomingForm.encoding = 'utf-8'__
 
 The encoding to use for incoming form fields.
 
-#### incomingForm.uploadDir = process.env.TMP || '/tmp' || process.cwd()
+__incomingForm.uploadDir = process.env.TMP || '/tmp' || process.cwd()__
 
 The directory for placing file uploads in. You can move them later on using
 `fs.rename()`. The default directory is picked at module load time depending on
 the first existing directory from those listed above.
 
-#### incomingForm.keepExtensions = false
+__incomingForm.keepExtensions = false__
 
 If you want the files written to `incomingForm.uploadDir` to include the extensions of the original files, set this property to `true`.
 
-#### incomingForm.type
+__incomingForm.type__
 
 Either 'multipart' or 'urlencoded' depending on the incoming request.
 
-#### incomingForm.maxFieldsSize = 2 * 1024 * 1024
+__incomingForm.maxFieldsSize = 2 * 1024 * 1024__
 
 Limits the amount of memory a field (not file) can allocate in bytes.
 If this value is exceeded, an `'error'` event is emitted. The default
 size is 2MB.
 
-#### incomingForm.bytesReceived
+__incomingForm.bytesReceived__
 
 The amount of bytes received for this form so far.
 
-#### incomingForm.bytesExpected
+__incomingForm.bytesExpected__
 
 The expected number of bytes in this form.
 
-#### incomingForm.parse(request, [cb])
+__incomingForm.parse(request, [cb])__
 
 Parses an incoming node.js `request` containing form data. If `cb` is provided, all fields an files are collected and passed to the callback:
 
@@ -198,7 +215,7 @@
       // ...
     });
 
-#### incomingForm.onPart(part)
+__incomingForm.onPart(part)__
 
 You may overwrite this method if you are interested in directly accessing the multipart stream. Doing so will disable any `'field'` / `'file'` events  processing which would occur otherwise, making you fully responsible for handling the processing.
 
@@ -219,56 +236,56 @@
 
 Check the code in this method for further inspiration.
 
-#### Event: 'progress' (bytesReceived, bytesExpected)
+__Event: 'progress' (bytesReceived, bytesExpected)__
 
 Emitted after each incoming chunk of data that has been parsed. Can be used to roll your own progress bar.
 
-#### Event: 'field' (name, value)
+__Event: 'field' (name, value)__
 
 Emitted whenever a field / value pair has been received.
 
-#### Event: 'fileBegin' (name, file)
+__Event: 'fileBegin' (name, file)__
 
 Emitted whenever a new file is detected in the upload stream. Use this even if
 you want to stream the file to somewhere else while buffering the upload on
 the file system.
 
-#### Event: 'file' (name, file)
+__Event: 'file' (name, file)__
 
 Emitted whenever a field / file pair has been received. `file` is an instance of `File`.
 
-#### Event: 'error' (err)
+__Event: 'error' (err)__
 
 Emitted when there is an error processing the incoming form. A request that experiences an error is automatically paused, you will have to manually call `request.resume()` if you want the request to continue firing `'data'` events.
 
-#### Event: 'aborted'
+__Event: 'aborted'__
 
 Emitted when the request was aborted by the user. Right now this can be due to a 'timeout' or 'close' event on the socket. In the future there will be a separate 'timeout' event (needs a change in the node core).
 
-#### Event: 'end' ()
+__Event: 'end' ()__
 
 Emitted when the entire request has been received, and all contained files have finished flushing to disk. This is a great place for you to send your response.
 
 ### formidable.File
 
-#### file.size = 0
+__file.size = 0__
 
 The size of the uploaded file in bytes. If the file is still being uploaded (see `'fileBegin'` event), this property says how many bytes of the file have been written to disk yet.
 
-#### file.path = null
+__file.path = null__
 
 The path this file is being written to. You can modify this in the `'fileBegin'` event in
 case you are unhappy with the way formidable generates a temporary path for your files.
 
-#### file.name = null
+__file.name = null__
 
 The name this file had according to the uploading client.
 
-#### file.type = null
+__file.type = null__
 
 The mime type of this file, according to the uploading client.
 
-#### file.lastModifiedDate = null
+__file.lastModifiedDate = null__
 
 A date object (or `null`) containing the time this file was last written to. Mostly
 here for compatibility with the [W3C File API Draft](http://dev.w3.org/2006/webapi/FileAPI/).
diff --git a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/lib/incoming_form.js b/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/lib/incoming_form.js
index 7b1ddaf..b1e2bfb 100644
--- a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/lib/incoming_form.js
+++ b/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/lib/incoming_form.js
@@ -247,6 +247,7 @@
   if (this.headers['content-length']) {
     this.bytesReceived = 0;
     this.bytesExpected = parseInt(this.headers['content-length'], 10);
+    this.emit('progress', this.bytesReceived, this.bytesExpected);
   }
 };
 
diff --git a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/no-filename/generic.http b/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/no-filename/generic.http
deleted file mode 100644
index e0dee27..0000000
--- a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/no-filename/generic.http
+++ /dev/null
@@ -1,13 +0,0 @@
-POST /upload HTTP/1.1
-Host: localhost:8080
-Content-Type: multipart/form-data; boundary=----WebKitFormBoundarytyE4wkKlZ5CQJVTG
-Content-Length: 1000
-
-------WebKitFormBoundarytyE4wkKlZ5CQJVTG
-Content-Disposition: form-data; name="upload"; filename=""
-Content-Type: text/plain
-
-I am a plain text file
-
-------WebKitFormBoundarytyE4wkKlZ5CQJVTG--
-
diff --git a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-chrome-13.http b/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-chrome-13.http
deleted file mode 100644
index 4ef3917..0000000
--- a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-chrome-13.http
+++ /dev/null
@@ -1,26 +0,0 @@
-POST /upload HTTP/1.1
-Host: localhost:8080
-Connection: keep-alive
-Referer: http://localhost:8080/
-Content-Length: 383
-Cache-Control: max-age=0
-Origin: http://localhost:8080
-User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.220 Safari/535.1
-Content-Type: multipart/form-data; boundary=----WebKitFormBoundarytyE4wkKlZ5CQJVTG
-Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
-Accept-Encoding: gzip,deflate,sdch
-Accept-Language: en-US,en;q=0.8
-Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
-Cookie: jqCookieJar_tablesorter=%7B%22showListTable%22%3A%5B%5B5%2C1%5D%2C%5B1%2C0%5D%5D%7D
-
-------WebKitFormBoundarytyE4wkKlZ5CQJVTG
-Content-Disposition: form-data; name="title"
-
-Weird filename
-------WebKitFormBoundarytyE4wkKlZ5CQJVTG
-Content-Disposition: form-data; name="upload"; filename=": \ ? % * | %22 < > . ? ; ' @ # $ ^ & ( ) - _ = + { } [ ] ` ~.txt"
-Content-Type: text/plain
-
-I am a text file with a funky name!
-
-------WebKitFormBoundarytyE4wkKlZ5CQJVTG--
diff --git a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-firefox-3.6.http b/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-firefox-3.6.http
deleted file mode 100644
index bf49f85..0000000
--- a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-firefox-3.6.http
+++ /dev/null
@@ -1,24 +0,0 @@
-POST /upload HTTP/1.1
-Host: localhost:8080
-User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.22) Gecko/20110902 Firefox/3.6.22
-Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
-Accept-Language: en-us,en;q=0.5
-Accept-Encoding: gzip,deflate
-Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
-Keep-Alive: 115
-Connection: keep-alive
-Referer: http://localhost:8080/
-Content-Type: multipart/form-data; boundary=---------------------------9849436581144108930470211272
-Content-Length: 438
-
------------------------------9849436581144108930470211272
-Content-Disposition: form-data; name="title"
-
-Weird filename
------------------------------9849436581144108930470211272
-Content-Disposition: form-data; name="upload"; filename=": \ ? % * | " < > . &#9731; ; ' @ # $ ^ & ( ) - _ = + { } [ ] ` ~.txt"
-Content-Type: text/plain
-
-I am a text file with a funky name!
-
------------------------------9849436581144108930470211272--
diff --git a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-safari-5.http b/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-safari-5.http
deleted file mode 100644
index ff158a4..0000000
--- a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-safari-5.http
+++ /dev/null
@@ -1,23 +0,0 @@
-POST /upload HTTP/1.1
-Host: localhost:8080
-Origin: http://localhost:8080
-Content-Length: 383
-User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1
-Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryQJZ1gvhvdgfisJPJ
-Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
-Referer: http://localhost:8080/
-Accept-Language: en-us
-Accept-Encoding: gzip, deflate
-Connection: keep-alive
-
-------WebKitFormBoundaryQJZ1gvhvdgfisJPJ
-Content-Disposition: form-data; name="title"
-
-Weird filename
-------WebKitFormBoundaryQJZ1gvhvdgfisJPJ
-Content-Disposition: form-data; name="upload"; filename=": \ ? % * | %22 < > . ? ; ' @ # $ ^ & ( ) - _ = + { } [ ] ` ~.txt"
-Content-Type: text/plain
-
-I am a text file with a funky name!
-
-------WebKitFormBoundaryQJZ1gvhvdgfisJPJ--
diff --git a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-chrome-12.http b/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-chrome-12.http
deleted file mode 100644
index f0fc533..0000000
--- a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-chrome-12.http
+++ /dev/null
@@ -1,24 +0,0 @@
-POST /upload HTTP/1.1
-Host: 192.168.56.1:8080
-Connection: keep-alive
-Referer: http://192.168.56.1:8080/
-Content-Length: 344
-Cache-Control: max-age=0
-Origin: http://192.168.56.1:8080
-User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.122 Safari/534.30
-Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryEvqBNplR3ByrwQPa
-Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
-Accept-Encoding: gzip,deflate,sdch
-Accept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4
-Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
-
-------WebKitFormBoundaryEvqBNplR3ByrwQPa
-Content-Disposition: form-data; name="title"
-
-Weird filename
-------WebKitFormBoundaryEvqBNplR3ByrwQPa
-Content-Disposition: form-data; name="upload"; filename=" ? % * | %22 < > . ? ; ' @ # $ ^ & ( ) - _ = + { } [ ] ` ~.txt"
-Content-Type: text/plain
-
-
-------WebKitFormBoundaryEvqBNplR3ByrwQPa--
diff --git a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-ie-7.http b/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-ie-7.http
deleted file mode 100644
index 2e2c61c..0000000
--- a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-ie-7.http
+++ /dev/null
@@ -1,22 +0,0 @@
-POST /upload HTTP/1.1
-Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, */*
-Referer: http://192.168.56.1:8080/
-Accept-Language: de
-User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)
-Content-Type: multipart/form-data; boundary=---------------------------7db1fe232017c
-Accept-Encoding: gzip, deflate
-Host: 192.168.56.1:8080
-Content-Length: 368
-Connection: Keep-Alive
-Cache-Control: no-cache
-
------------------------------7db1fe232017c
-Content-Disposition: form-data; name="title"
-
-Weird filename
------------------------------7db1fe232017c
-Content-Disposition: form-data; name="upload"; filename=" ? % * | " < > . &#9731; ; ' @ # $ ^ & ( ) - _ = + { } [ ] ` ~.txt"
-Content-Type: application/octet-stream
-
-
------------------------------7db1fe232017c--
diff --git a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-ie-8.http b/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-ie-8.http
deleted file mode 100644
index e2b94fa..0000000
--- a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-ie-8.http
+++ /dev/null
@@ -1,22 +0,0 @@
-POST /upload HTTP/1.1
-Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, */*
-Referer: http://192.168.56.1:8080/
-Accept-Language: de
-User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)
-Content-Type: multipart/form-data; boundary=---------------------------7db3a8372017c
-Accept-Encoding: gzip, deflate
-Host: 192.168.56.1:8080
-Content-Length: 368
-Connection: Keep-Alive
-Cache-Control: no-cache
-
------------------------------7db3a8372017c
-Content-Disposition: form-data; name="title"
-
-Weird filename
------------------------------7db3a8372017c
-Content-Disposition: form-data; name="upload"; filename=" ? % * | " < > . &#9731; ; ' @ # $ ^ & ( ) - _ = + { } [ ] ` ~.txt"
-Content-Type: application/octet-stream
-
-
------------------------------7db3a8372017c--
diff --git a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-safari-5.http b/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-safari-5.http
deleted file mode 100644
index 6379ac0..0000000
--- a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-safari-5.http
+++ /dev/null
@@ -1,22 +0,0 @@
-POST /upload HTTP/1.1
-Host: 192.168.56.1:8080
-Referer: http://192.168.56.1:8080/
-Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
-Accept-Language: en-US
-Origin: http://192.168.56.1:8080
-User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.3 Safari/533.19.4
-Accept-Encoding: gzip, deflate
-Content-Type: multipart/form-data; boundary=----WebKitFormBoundarykmaWSUbu697WN9TM
-Content-Length: 344
-Connection: keep-alive
-
-------WebKitFormBoundarykmaWSUbu697WN9TM
-Content-Disposition: form-data; name="title"
-
-Weird filename
-------WebKitFormBoundarykmaWSUbu697WN9TM
-Content-Disposition: form-data; name="upload"; filename=" ? % * | %22 < > . ? ; ' @ # $ ^ & ( ) - _ = + { } [ ] ` ~.txt"
-Content-Type: text/plain
-
-
-------WebKitFormBoundarykmaWSUbu697WN9TM--
diff --git a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-incoming-form.js b/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-incoming-form.js
index de2bd0c..b64df8b 100644
--- a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-incoming-form.js
+++ b/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-incoming-form.js
@@ -372,15 +372,26 @@
 
   form.headers = {};
   form._parseContentLength();
+  assert.strictEqual(form.bytesReceived, null);
   assert.strictEqual(form.bytesExpected, null);
 
   form.headers['content-length'] = '8';
+  gently.expect(form, 'emit', function(event, bytesReceived, bytesExpected) {
+    assert.equal(event, 'progress');
+    assert.equal(bytesReceived, 0);
+    assert.equal(bytesExpected, 8);
+  });
   form._parseContentLength();
   assert.strictEqual(form.bytesReceived, 0);
   assert.strictEqual(form.bytesExpected, 8);
 
   // JS can be evil, lets make sure we are not
   form.headers['content-length'] = '08';
+  gently.expect(form, 'emit', function(event, bytesReceived, bytesExpected) {
+    assert.equal(event, 'progress');
+    assert.equal(bytesReceived, 0);
+    assert.equal(bytesExpected, 8);
+  });
   form._parseContentLength();
   assert.strictEqual(form.bytesExpected, 8);
 });
diff --git a/weinre.server/node_modules/express/node_modules/mime/README.md b/weinre.server/node_modules/express/node_modules/mime/README.md
index a157de1..d8b66a8 100644
--- a/weinre.server/node_modules/express/node_modules/mime/README.md
+++ b/weinre.server/node_modules/express/node_modules/mime/README.md
@@ -1,6 +1,6 @@
 # mime
 
-Support for mapping between file extensions and MIME types.  This module uses the latest version of the Apache "mime.types" file (maps over 620 types to 800+ extensions).  It is also trivially easy to add your own types and extensions, should you need to do that.
+Comprehensive MIME type mapping API. Includes all 600+ types and 800+ extensions defined by the Apache project, plus additional types submitted by the node.js community.
 
 ## Install
 
@@ -11,30 +11,36 @@
 ## API - Queries
 
 ### mime.lookup(path)
-Get the mime type associated with a file. This is method is case-insensitive. Everything in path up to and including the last '/' or '.' is ignored, so you can pass it paths, filenames, or extensions, like so:
+Get the mime type associated with a file. Performs a case-insensitive lookup using the extension in `path` (the substring after the last '/' or '.').  E.g.
 
     var mime = require('mime');
 
     mime.lookup('/path/to/file.txt');         // => 'text/plain'
     mime.lookup('file.txt');                  // => 'text/plain'
-    mime.lookup('.txt');                      // => 'text/plain'
+    mime.lookup('.TXT');                      // => 'text/plain'
     mime.lookup('htm');                       // => 'text/html'
 
-### mime.extension(type) - lookup the default extension for type
+### mime.extension(type)
+Get the default extension for `type`
 
     mime.extension('text/html');                 // => 'html'
     mime.extension('application/octet-stream');  // => 'bin'
 
-### mime.charsets.lookup() - map mime-type to charset
+### mime.charsets.lookup()
+
+Map mime-type to charset
 
     mime.charsets.lookup('text/plain');        // => 'UTF-8'
 
 (The logic for charset lookups is pretty rudimentary.  Feel free to suggest improvements.)
 
-## API - Customizing
+## API - Defining Custom Types
 
 The following APIs allow you to add your own type mappings within your project.  If you feel a type should be included as part of node-mime, see [requesting new types](https://github.com/bentomas/node-mime/wiki/Requesting-New-Types).
-### mime.define() - Add custom mime/extension mappings
+
+### mime.define()
+
+Add custom mime/extension mappings
 
     mime.define({
         'text/x-some-format': ['x-sf', 'x-sft', 'x-sfml'],
@@ -43,8 +49,15 @@
     });
 
     mime.lookup('x-sft');                 // => 'text/x-some-format'
+
+The first entry in the extensions array is returned by `mime.extension()`. E.g.
+
     mime.extension('text/x-some-format'); // => 'x-sf'
 
-### mime.load(filepath) - Load mappings from an Apache ".types" format file
+### mime.load(filepath)
+
+Load mappings from an Apache ".types" format file
 
     mime.load('./my_project.types');
+
+The .types file format is simple -  See the `types` dir for examples.
diff --git a/weinre.server/node_modules/express/node_modules/mime/mime.js b/weinre.server/node_modules/express/node_modules/mime/mime.js
index 5fac753..64dbeec 100644
--- a/weinre.server/node_modules/express/node_modules/mime/mime.js
+++ b/weinre.server/node_modules/express/node_modules/mime/mime.js
@@ -2,11 +2,11 @@
     fs = require('fs');
 
 var mime = module.exports = {
-  /** Map of extension to mime type */
-  types: {},
+  // Map of extension to mime type
+  types: Object.create(null),
 
-  /** Map of mime type to extension */
-  extensions :{},
+  // Map of mime type to extension
+  extensions :Object.create(null),
 
   /**
    * Define mimetype -> extension mappings.  Each key is a mime-type that maps
@@ -60,7 +60,8 @@
    */
   lookup: function(path, fallback) {
     var ext = path.replace(/.*[\.\/]/, '').toLowerCase();
-    return mime.types[ext] || fallback || mime.default_type;
+
+    return mime.types[ext] || fallback || mime.default_type
   },
 
   /**
diff --git a/weinre.server/node_modules/express/node_modules/mime/test.js b/weinre.server/node_modules/express/node_modules/mime/test.js
index b904895..8a8a5b1 100644
--- a/weinre.server/node_modules/express/node_modules/mime/test.js
+++ b/weinre.server/node_modules/express/node_modules/mime/test.js
@@ -1,79 +1,53 @@
 /**
- * Requires the async_testing module
- *
  * Usage: node test.js
  */
+
 var mime = require('./mime');
-exports["test mime lookup"] = function(test) {
-  // easy
-  test.equal('text/plain', mime.lookup('text.txt'));
+var assert = require('assert');
 
-  // hidden file or multiple periods
-  test.equal('text/plain', mime.lookup('.text.txt'));
-
-  // just an extension
-  test.equal('text/plain', mime.lookup('.txt'));
-
-  // just an extension without a dot
-  test.equal('text/plain', mime.lookup('txt'));
-
-  // default
-  test.equal('application/octet-stream', mime.lookup('text.nope'));
-
-  // fallback
-  test.equal('fallback', mime.lookup('text.fallback', 'fallback'));
-
-  test.finish();
-};
-
-exports["test extension lookup"] = function(test) {
-  // easy
-  test.equal('txt', mime.extension(mime.types.text));
-  test.equal('html', mime.extension(mime.types.htm));
-  test.equal('bin', mime.extension('application/octet-stream'));
-
-  test.finish();
-};
-
-exports["test mime lookup uppercase"] = function(test) {
-  // easy
-  test.equal('text/plain', mime.lookup('TEXT.TXT'));
-
-  // just an extension
-  test.equal('text/plain', mime.lookup('.TXT'));
-
-  // just an extension without a dot
-  test.equal('text/plain', mime.lookup('TXT'));
-
-  // default
-  test.equal('application/octet-stream', mime.lookup('TEXT.NOPE'));
-
-  // fallback
-  test.equal('fallback', mime.lookup('TEXT.FALLBACK', 'fallback'));
-
-  test.finish();
-};
-
-exports["test custom types"] = function(test) {
-  test.equal('application/octet-stream', mime.lookup('file.buffer'));
-  test.equal('audio/mp4', mime.lookup('file.m4a'));
-
-  test.finish();
-};
-
-exports["test charset lookup"] = function(test) {
-  // easy
-  test.equal('UTF-8', mime.charsets.lookup('text/plain'));
-
-  // none
-  test.ok(typeof mime.charsets.lookup(mime.types.js) == 'undefined');
-
-  // fallback
-  test.equal('fallback', mime.charsets.lookup('application/octet-stream', 'fallback'));
-
-  test.finish();
-};
-
-if (module == require.main) {
-  require('async_testing').run(__filename, process.ARGV);
+function eq(a, b) {
+  console.log('Test: ' + a + ' === ' + b);
+  assert.strictEqual.apply(null, arguments);
 }
+
+console.log(Object.keys(mime.extensions).length + ' types');
+console.log(Object.keys(mime.types).length + ' extensions\n');
+
+//
+// Test mime lookups
+//
+
+eq('text/plain', mime.lookup('text.txt'));
+eq('text/plain', mime.lookup('.text.txt'));
+eq('text/plain', mime.lookup('.txt'));
+eq('text/plain', mime.lookup('txt'));
+eq('application/octet-stream', mime.lookup('text.nope'));
+eq('fallback', mime.lookup('text.fallback', 'fallback'));
+eq('application/octet-stream', mime.lookup('constructor'));
+eq('text/plain', mime.lookup('TEXT.TXT'));
+
+//
+// Test extensions
+//
+
+eq('txt', mime.extension(mime.types.text));
+eq('html', mime.extension(mime.types.htm));
+eq('bin', mime.extension('application/octet-stream'));
+eq(undefined, mime.extension('constructor'));
+
+//
+// Test node types
+//
+
+eq('application/octet-stream', mime.lookup('file.buffer'));
+eq('audio/mp4', mime.lookup('file.m4a'));
+
+//
+// Test charsets
+//
+
+eq('UTF-8', mime.charsets.lookup('text/plain'));
+eq(undefined, mime.charsets.lookup(mime.types.js));
+eq('fallback', mime.charsets.lookup('application/octet-stream', 'fallback'));
+
+console.log('\nOK');
diff --git a/weinre.server/node_modules/express/node_modules/mime/types/mime.types b/weinre.server/node_modules/express/node_modules/mime/types/mime.types
index 6a90929..b3cae2e 100644
--- a/weinre.server/node_modules/express/node_modules/mime/types/mime.types
+++ b/weinre.server/node_modules/express/node_modules/mime/types/mime.types
@@ -26,7 +26,9 @@
 # application/auth-policy+xml
 # application/batch-smtp
 # application/beep+xml
+# application/calendar+xml
 # application/cals-1840
+# application/ccmp+xml
 application/ccxml+xml				ccxml
 application/cdmi-capability			cdmia
 application/cdmi-container			cdmic
@@ -83,6 +85,7 @@
 # application/index.obj
 # application/index.response
 # application/index.vnd
+application/inkml+xml				ink inkml
 # application/iotp
 application/ipfix				ipfix
 # application/ipp
@@ -147,6 +150,7 @@
 application/oebps-package+xml			opf
 application/ogg					ogx
 application/onenote				onetoc onetoc2 onetmp onepkg
+application/oxps				oxps
 # application/parityfec
 application/patch-ops-error+xml			xer
 application/pdf					pdf
@@ -185,6 +189,10 @@
 # application/riscos
 # application/rlmi+xml
 application/rls-services+xml			rs
+application/rpki-ghostbusters			gbr
+application/rpki-manifest			mft
+application/rpki-roa				roa
+# application/rpki-updown
 application/rsd+xml				rsd
 application/rss+xml				rss
 application/rtf					rtf
@@ -238,6 +246,7 @@
 application/timestamped-data			tsd
 # application/tve-trigger
 # application/ulpfec
+# application/vcard+xml
 # application/vemmi
 # application/vividence.scriptfile
 # application/vnd.3gpp.bsf+xml
@@ -275,6 +284,7 @@
 application/vnd.apple.mpegurl			m3u8
 # application/vnd.arastra.swi
 application/vnd.aristanetworks.swi		swi
+application/vnd.astraea-software.iota		iota
 application/vnd.audiograph			aep
 # application/vnd.autopackage
 # application/vnd.avistar+xml
@@ -295,6 +305,7 @@
 application/vnd.clonk.c4group			c4g c4d c4f c4p c4u
 application/vnd.cluetrust.cartomobile-config		c11amc
 application/vnd.cluetrust.cartomobile-config-pkg	c11amz
+# application/vnd.collection+json
 # application/vnd.commerce-battelle
 application/vnd.commonspace			csp
 application/vnd.contact.cmsg			cdbcmsg
@@ -312,6 +323,7 @@
 application/vnd.cups-ppd			ppd
 # application/vnd.cups-raster
 # application/vnd.cups-raw
+# application/vnd.curl
 application/vnd.curl.car			car
 application/vnd.curl.pcurl			pcurl
 # application/vnd.cybank
@@ -319,6 +331,7 @@
 application/vnd.dece.data			uvf uvvf uvd uvvd
 application/vnd.dece.ttml+xml			uvt uvvt
 application/vnd.dece.unspecified		uvx uvvx
+application/vnd.dece.zip			uvz uvvz
 application/vnd.denovo.fcselayout-link		fe_launch
 # application/vnd.dir-bi.plate-dl-nosuffix
 application/vnd.dna				dna
@@ -358,6 +371,7 @@
 # application/vnd.ecowin.seriesupdate
 # application/vnd.emclient.accessrequest+xml
 application/vnd.enliven				nml
+# application/vnd.eprints.data+xml
 application/vnd.epson.esf			esf
 application/vnd.epson.msf			msf
 application/vnd.epson.quickanime		qam
@@ -433,6 +447,7 @@
 application/vnd.groove-tool-message		gtm
 application/vnd.groove-tool-template		tpl
 application/vnd.groove-vcard			vcg
+# application/vnd.hal+json
 application/vnd.hal+xml				hal
 application/vnd.handheld-entertainment+xml	zmm
 application/vnd.hbci				hbci
@@ -588,6 +603,7 @@
 # application/vnd.music-niff
 application/vnd.musician			mus
 application/vnd.muvee.style			msty
+application/vnd.mynfc				taglet
 # application/vnd.ncd.control
 # application/vnd.ncd.reference
 # application/vnd.nervana
@@ -636,6 +652,7 @@
 application/vnd.oasis.opendocument.text-template	ott
 application/vnd.oasis.opendocument.text-web		oth
 # application/vnd.obn
+# application/vnd.oftn.l10n+json
 # application/vnd.oipf.contentaccessdownload+xml
 # application/vnd.oipf.contentaccessstreaming+xml
 # application/vnd.oipf.cspg-hexbinary
@@ -665,12 +682,15 @@
 # application/vnd.oma.bcast.sprov+xml
 # application/vnd.oma.bcast.stkm
 # application/vnd.oma.cab-address-book+xml
+# application/vnd.oma.cab-feature-handler+xml
 # application/vnd.oma.cab-pcc+xml
+# application/vnd.oma.cab-user-prefs+xml
 # application/vnd.oma.dcd
 # application/vnd.oma.dcdc
 application/vnd.oma.dd2+xml			dd2
 # application/vnd.oma.drm.risd+xml
 # application/vnd.oma.group-usage-list+xml
+# application/vnd.oma.pal+xml
 # application/vnd.oma.poc.detailed-progress-report+xml
 # application/vnd.oma.poc.final-report+xml
 # application/vnd.oma.poc.groups+xml
@@ -857,6 +877,7 @@
 application/vnd.stardivision.math		smf
 application/vnd.stardivision.writer		sdw vor
 application/vnd.stardivision.writer-global	sgl
+application/vnd.stepmania.package		smzip
 application/vnd.stepmania.stepchart		sm
 # application/vnd.street-stream
 application/vnd.sun.xml.calc			sxc
@@ -880,6 +901,7 @@
 # application/vnd.syncml.dm.notification
 # application/vnd.syncml.ds.notification
 application/vnd.tao.intent-module-archive	tao
+application/vnd.tcpdump.pcap			pcap cap dmp
 application/vnd.tmobile-livetv			tmo
 application/vnd.trid.tpt			tpt
 application/vnd.triscape.mxs			mxs
@@ -949,6 +971,7 @@
 # application/vnd.yamaha.remote-setup
 application/vnd.yamaha.smaf-audio		saf
 application/vnd.yamaha.smaf-phrase		spf
+# application/vnd.yamaha.through-ngn
 # application/vnd.yamaha.tunnel-udpencap
 application/vnd.yellowriver-custom-menu		cmp
 application/vnd.zul				zir zirz
@@ -1096,6 +1119,7 @@
 # audio/dsr-es202050
 # audio/dsr-es202211
 # audio/dsr-es202212
+# audio/dv
 # audio/dvi4
 # audio/eac3
 # audio/evrc
@@ -1109,6 +1133,7 @@
 # audio/evrcwb0
 # audio/evrcwb1
 # audio/example
+# audio/fwdred
 # audio/g719
 # audio/g722
 # audio/g7221
@@ -1126,6 +1151,7 @@
 # audio/gsm-efr
 # audio/gsm-hr-08
 # audio/ilbc
+# audio/ip-mr_v2.5
 # audio/l16
 # audio/l20
 # audio/l24
@@ -1186,6 +1212,7 @@
 audio/vnd.dra					dra
 audio/vnd.dts					dts
 audio/vnd.dts.hd				dtshd
+# audio/vnd.dvb.file				dvb
 # audio/vnd.everad.plj
 # audio/vnd.hns.audio
 audio/vnd.lucent.voice				lvp
@@ -1337,6 +1364,7 @@
 # text/ecmascript
 # text/enriched
 # text/example
+# text/fwdred
 text/html					html htm
 # text/javascript
 text/n3						n3
@@ -1358,12 +1386,14 @@
 text/turtle					ttl
 # text/ulpfec
 text/uri-list					uri uris urls
+text/vcard					vcard
 # text/vnd.abc
 text/vnd.curl					curl
 text/vnd.curl.dcurl				dcurl
 text/vnd.curl.scurl				scurl
 text/vnd.curl.mcurl				mcurl
 # text/vnd.dmclientscript
+text/vnd.dvb.subtitle				sub
 # text/vnd.esmertec.theme-descriptor
 text/vnd.fly					fly
 text/vnd.fmi.flexstor				flx
@@ -1443,6 +1473,7 @@
 # video/vnd.directv.mpeg
 # video/vnd.directv.mpeg-tts
 # video/vnd.dlna.mpeg-tts
+video/vnd.dvb.file				dvb
 video/vnd.fvt					fvt
 # video/vnd.hns.video
 # video/vnd.iptvforum.1dparityfec-1010
diff --git a/weinre.server/node_modules/express/node_modules/mime/types/node.types b/weinre.server/node_modules/express/node_modules/mime/types/node.types
index fdabaa4..f7da49f 100644
--- a/weinre.server/node_modules/express/node_modules/mime/types/node.types
+++ b/weinre.server/node_modules/express/node_modules/mime/types/node.types
@@ -41,3 +41,8 @@
 # Why: See https://github.com/bentomas/node-mime/pull/6
 # Added by: mjrusso
 video/MP2T  ts
+
+# What: The FLAC lossless codec format
+# Why: Streaming and serving FLAC audio
+# Added by: jacobrask
+audio/flac  flac
\ No newline at end of file
diff --git a/weinre.server/weinre b/weinre.server/weinre
index d1b9904..55b7f65 100755
--- a/weinre.server/weinre
+++ b/weinre.server/weinre
@@ -25,9 +25,11 @@
 
 var path = require('path')
 var fs   = require('fs')
-var lib  = path.join(path.dirname(fs.realpathSync(__filename)), 'lib')
 
-require('coffee-script')
+var rootPath = path.dirname(fs.realpathSync(__filename))
 
-var cli = require(lib + '/cli')
-cli.run()
+var lib          = path.join(rootPath, 'lib')
+var node_modules = path.join(rootPath, 'node_modules')
+
+require(path.join(node_modules, 'coffee-script'))
+require(path.join(lib, '/cli')).run()
diff --git a/weinre.server/weinre-hot b/weinre.server/weinre-hot
index 2287149..cce978b 100755
--- a/weinre.server/weinre-hot
+++ b/weinre.server/weinre-hot
@@ -25,6 +25,6 @@
 # to determine whether to kill and restart the server.
 
 cd `dirname $0`
-supervisor -n -p 1 -e txt -w ../weinre.build/out/build-done.txt ./weinre
+supervisor -n -p 1 -e txt -w ../weinre.build/out/build-done.txt node weinre
 
 # supervisor: https://github.com/isaacs/node-supervisor
\ No newline at end of file
