merge fx-team to mozilla central
authorGavin Sharp <gavin@gavinsharp.com>
Sun, 10 Jul 2011 13:40:25 -0700
changeset 73384 e898a773a4fbe0d6e67159d5d2c96ac328e3956f
parent 73383 ea80f5bf7e63c7b1af31569b71f13ef810216a0d (current diff)
parent 73379 18c8c2ea4caf07635792b70168fad1d8a6694a38 (diff)
child 73385 c81d9088b48aaa5c4b361fed7444e83ff9f94f3c
child 73546 515bdc18a91bd70cb464f9065db787cb89860f8c
child 73576 05c6384339fe18e40427cdb8ae54e94fe7819c5a
push id235
push userbzbarsky@mozilla.com
push dateTue, 27 Sep 2011 17:13:04 +0000
treeherdermozilla-beta@2d1e082d176a [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
milestone8.0a1
first release with
nightly linux32
e898a773a4fb / 8.0a1 / 20110711030829 / files
nightly linux64
e898a773a4fb / 8.0a1 / 20110711030829 / files
nightly mac
e898a773a4fb / 8.0a1 / 20110711030829 / files
nightly win32
e898a773a4fb / 8.0a1 / 20110711030829 / files
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
releases
nightly linux32
nightly linux64
nightly mac
nightly win32
merge fx-team to mozilla central
browser/base/content/content.js
--- a/browser/app/blocklist.xml
+++ b/browser/app/blocklist.xml
@@ -1,193 +1,201 @@
 <?xml version="1.0"?>
-<blocklist xmlns="http://www.mozilla.org/2006/addons-blocklist">
+<blocklist xmlns="http://www.mozilla.org/2006/addons-blocklist" lastupdate="1306529826000">
   <emItems>
-    <emItem id="fdm_ffext@freedownloadmanager.org">
-      <versionRange minVersion="1.0" maxVersion="1.3.1">
-        <targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-           <versionRange minVersion="3.0a1" maxVersion="*"/>
-        </targetApplication>
-      </versionRange>
-    </emItem>
-    <emItem id="firefox@bandoo.com">
-      <versionRange minVersion="5.0" maxVersion="5.0" severity="1">
-        <targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-           <versionRange minVersion="3.7a1pre" maxVersion="*"/>
-        </targetApplication>
-      </versionRange>
-    </emItem>
-    <emItem id="langpack-vi-VN@firefox.mozilla.org">
-      <versionRange minVersion="2.0" maxVersion="2.0"/>
-    </emItem>
-    <emItem id="masterfiler@gmail.com">
-      <versionRange severity="3"/>
-    </emItem>
-    <emItem id="mozilla_cc@internetdownloadmanager.com">
-      <versionRange minVersion=" " maxVersion="6.9.8">
-        <targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-           <versionRange minVersion="3.7a1pre" maxVersion="*"/>
-        </targetApplication>
-      </versionRange>
-      <versionRange minVersion="2.1" maxVersion="3.3">
-        <targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-           <versionRange minVersion="3.0a1" maxVersion="*"/>
-        </targetApplication>
-      </versionRange>
-    </emItem>
-    <emItem id="msntoolbar@msn.com">
-      <versionRange minVersion=" " maxVersion="6.*"/>
-    </emItem>
-    <emItem id="personas@christopher.beard">
-      <versionRange minVersion="1.6" maxVersion="1.6">
-        <targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-           <versionRange minVersion="3.6" maxVersion="3.6.*"/>
-        </targetApplication>
-      </versionRange>
-    </emItem>
-    <emItem id="ShopperReports@ShopperReports.com">
-      <versionRange minVersion="3.1.22.0" maxVersion="3.1.22.0"/>
-    </emItem>
-    <emItem id="support@daemon-tools.cc">
-      <versionRange minVersion=" " maxVersion="1.0.0.5"/>
-    </emItem>
-    <emItem id="support@update-firefox.com"/>
-    <emItem id="yslow@yahoo-inc.com">
-      <versionRange minVersion="2.0.5" maxVersion="2.0.5">
-        <targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-           <versionRange minVersion="3.5.7" maxVersion="*"/>
-        </targetApplication>
-      </versionRange>
-    </emItem>
-    <emItem id="{2224e955-00e9-4613-a844-ce69fccaae91}"/>
-    <emItem id="{27182e60-b5f3-411c-b545-b44205977502}">
-      <versionRange minVersion="1.0" maxVersion="1.0"/>
-    </emItem>
-    <emItem id="{3252b9ae-c69a-4eaf-9502-dc9c1f6c009e}">
-      <versionRange minVersion="2.2" maxVersion="2.2"/>
-    </emItem>
-    <emItem id="{3f963a5b-e555-4543-90e2-c3908898db71}">
-      <versionRange minVersion=" " maxVersion="8.5"/>
-    </emItem>
-    <emItem id="{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}">
-      <versionRange minVersion="1.1b1" maxVersion="1.1b1"/>
-    </emItem>
-    <emItem id="{4B3803EA-5230-4DC3-A7FC-33638F3D3542}">
-      <versionRange minVersion="1.2" maxVersion="1.2">
-        <targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-           <versionRange minVersion="3.0a1" maxVersion="*"/>
-        </targetApplication>
-      </versionRange>
-    </emItem>
-    <emItem id="{6E19037A-12E3-4295-8915-ED48BC341614}">
-      <versionRange minVersion="0.1" maxVersion="1.3.328.4" severity="1">
-        <targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-           <versionRange minVersion="3.7a1pre" maxVersion="*"/>
-        </targetApplication>
-      </versionRange>
-    </emItem>
-    <emItem id="{8CE11043-9A15-4207-A565-0C94C42D590D}"/>
-    <emItem id="{AB2CE124-6272-4b12-94A9-7303C7397BD1}">
-      <versionRange minVersion="0.1" maxVersion="5.2.0.7164" severity="1"/>
-    </emItem>
-    <emItem id="{B13721C7-F507-4982-B2E5-502A71474FED}">
-      <versionRange severity="1"/>
-    </emItem>
-    <emItem id="{B7082FAA-CB62-4872-9106-E42DD88EDE45}">
-      <versionRange minVersion="0.1" maxVersion="3.3.0.*">
-        <targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-           <versionRange minVersion="3.7a1" maxVersion="*"/>
-        </targetApplication>
-      </versionRange>
-      <versionRange minVersion="3.3.1" maxVersion="*">
-        <targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-           <versionRange minVersion="5.0a1" maxVersion="*"/>
-        </targetApplication>
-      </versionRange>
-    </emItem>
-    <emItem id="{E8E88AB0-7182-11DF-904E-6045E0D72085}"/>
-  </emItems>
-<pluginItems>
-  <pluginItem>
-    <match name="name" exp="^Yahoo Application State Plugin$"/>
-    <match name="description" exp="^Yahoo Application State Plugin$"/>
-    <match name="filename" exp="npYState.dll"/>
-    <versionRange>
-      <targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-        <versionRange minVersion="3.0a1" maxVersion="3.*"/>
-      </targetApplication>
-    </versionRange>
-  </pluginItem>
-  <pluginItem>
-    <match name="name" exp="QuickTime Plug-in 7[.]1[.]"/>
-    <match name="filename" exp="npqtplugin.?[.]dll"/>
-    <versionRange>
-      <targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-        <versionRange minVersion="3.0a1" maxVersion="3.*"/>
-      </targetApplication>
-    </versionRange>
-  </pluginItem>
-  <pluginItem>
-    <match name="filename" exp="NPFFAddOn.dll"/>
-    <versionRange>
-    </versionRange>
-  </pluginItem>
-  <pluginItem>
-    <match name="filename" exp="NPMySrch.dll"/>
-    <versionRange>
-    </versionRange>
-  </pluginItem>
-  <pluginItem>
-    <match name="filename" exp="npViewpoint.dll"/>
-    <versionRange>
-      <targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-        <versionRange minVersion="3.0" maxVersion="*"/>
-      </targetApplication>
-    </versionRange>
-  </pluginItem>
-  <pluginItem>
-    <match name="name" exp="[0-6]\.0\.[01]\d{2}\.\d+"/>
-    <match name="filename" exp="npdeploytk.dll"/>
-    <versionRange severity="1">
-    </versionRange>
-  </pluginItem>
-  <pluginItem>
-    <match name="filename" exp="[Nn][Pp][Jj][Pp][Ii]1[56]0_[0-9]+\.[Dd][Ll][Ll]"/>
-    <versionRange>
-      <targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-        <versionRange minVersion="3.6a1pre" maxVersion="*"/>
-      </targetApplication>
-    </versionRange>
-  </pluginItem>
-</pluginItems>
-<gfxItems>
-  <gfxBlacklistEntry>
-    <os>WINNT 6.1</os>
-    <vendor>0x10de</vendor>
-    <devices>
-      <device>0x0a6c</device>
-    </devices>
-    <feature>DIRECT2D</feature>
-    <featureStatus>BLOCKED_DRIVER_VERSION</featureStatus>
-    <driverVersion>8.17.12.5896</driverVersion>
-    <driverVersionComparator>LESS_THAN_OR_EQUAL</driverVersionComparator>
-  </gfxBlacklistEntry>
-  <gfxBlacklistEntry>
-    <os>WINNT 6.1</os>
-    <vendor>0x10de</vendor>
-    <devices>
-      <device>0x0a6c</device>
-    </devices>
-    <feature>DIRECT3D_9_LAYERS</feature>
-    <featureStatus>BLOCKED_DRIVER_VERSION</featureStatus>
-    <driverVersion>8.17.12.5896</driverVersion>
-    <driverVersionComparator>LESS_THAN_OR_EQUAL</driverVersionComparator>
-  </gfxBlacklistEntry>
-  <gfxBlacklistEntry>
-    <os>WINNT 5.1</os>
-    <vendor>0x10de</vendor>
-    <feature>DIRECT3D_9_LAYERS</feature>
-    <featureStatus>BLOCKED_DRIVER_VERSION</featureStatus>
-    <driverVersion>7.0.0.0</driverVersion>
-    <driverVersionComparator>GREATER_THAN_OR_EQUAL</driverVersionComparator>
-  </gfxBlacklistEntry>
-</gfxItems>
-</blocklist>
+      <emItem  blockID="i8" id="{B13721C7-F507-4982-B2E5-502A71474FED}">
+                        <versionRange  minVersion=" " severity="1">
+                    </versionRange>
+                  </emItem>
+      <emItem  blockID="i38" id="{B7082FAA-CB62-4872-9106-E42DD88EDE45}">
+                        <versionRange  minVersion="0.1" maxVersion="3.3.0.*">
+                      <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
+                              <versionRange  minVersion="3.7a1" maxVersion="*" />
+                          </targetApplication>
+                    </versionRange>
+                                <versionRange  minVersion="3.3.1" maxVersion="*">
+                      <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
+                              <versionRange  minVersion="5.0a1" maxVersion="*" />
+                          </targetApplication>
+                    </versionRange>
+                  </emItem>
+      <emItem  blockID="i19" id="{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}">
+                        <versionRange  minVersion="1.1b1" maxVersion="1.1b1">
+                    </versionRange>
+                  </emItem>
+      <emItem  blockID="i16" id="{27182e60-b5f3-411c-b545-b44205977502}">
+                        <versionRange  minVersion="1.0" maxVersion="1.0">
+                    </versionRange>
+                  </emItem>
+      <emItem  blockID="i10" id="{8CE11043-9A15-4207-A565-0C94C42D590D}">
+                        </emItem>
+      <emItem  blockID="i1" id="mozilla_cc@internetdownloadmanager.com">
+                        <versionRange  minVersion="2.1" maxVersion="3.3">
+                      <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
+                              <versionRange  minVersion="3.0a1" maxVersion="*" />
+                          </targetApplication>
+                    </versionRange>
+                                <versionRange  minVersion=" " maxVersion="6.9.8">
+                      <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
+                              <versionRange  minVersion="3.7a1pre" maxVersion="*" />
+                          </targetApplication>
+                    </versionRange>
+                  </emItem>
+      <emItem  blockID="i18" id="msntoolbar@msn.com">
+                        <versionRange  minVersion=" " maxVersion="6.*">
+                    </versionRange>
+                  </emItem>
+      <emItem  blockID="i13" id="{E8E88AB0-7182-11DF-904E-6045E0D72085}">
+                        </emItem>
+      <emItem  blockID="i4" id="{4B3803EA-5230-4DC3-A7FC-33638F3D3542}">
+                        <versionRange  minVersion="1.2" maxVersion="1.2">
+                      <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
+                              <versionRange  minVersion="3.0a1" maxVersion="*" />
+                          </targetApplication>
+                    </versionRange>
+                  </emItem>
+      <emItem  blockID="i23" id="firefox@bandoo.com">
+                        <versionRange  minVersion="5.0" maxVersion="5.0" severity="1">
+                      <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
+                              <versionRange  minVersion="3.7a1pre" maxVersion="*" />
+                          </targetApplication>
+                    </versionRange>
+                  </emItem>
+      <emItem  blockID="i22" id="ShopperReports@ShopperReports.com">
+                        <versionRange  minVersion="3.1.22.0" maxVersion="3.1.22.0">
+                    </versionRange>
+                  </emItem>
+      <emItem  blockID="i2" id="fdm_ffext@freedownloadmanager.org">
+                        <versionRange  minVersion="1.0" maxVersion="1.3.1">
+                      <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
+                              <versionRange  minVersion="3.0a1" maxVersion="*" />
+                          </targetApplication>
+                    </versionRange>
+                  </emItem>
+      <emItem  blockID="i5" id="support@daemon-tools.cc">
+                        <versionRange  minVersion=" " maxVersion="1.0.0.5">
+                    </versionRange>
+                  </emItem>
+      <emItem  blockID="i6" id="{3f963a5b-e555-4543-90e2-c3908898db71}">
+                        <versionRange  minVersion=" " maxVersion="8.5">
+                    </versionRange>
+                  </emItem>
+      <emItem  blockID="i12" id="masterfiler@gmail.com">
+                        <versionRange  severity="3">
+                    </versionRange>
+                  </emItem>
+      <emItem  blockID="i20" id="{AB2CE124-6272-4b12-94A9-7303C7397BD1}">
+                        <versionRange  minVersion="0.1" maxVersion="5.2.0.7164" severity="1">
+                    </versionRange>
+                  </emItem>
+      <emItem  blockID="i11" id="yslow@yahoo-inc.com">
+                        <versionRange  minVersion="2.0.5" maxVersion="2.0.5">
+                      <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
+                              <versionRange  minVersion="3.5.7" maxVersion="*" />
+                          </targetApplication>
+                    </versionRange>
+                  </emItem>
+      <emItem  blockID="i17" id="{3252b9ae-c69a-4eaf-9502-dc9c1f6c009e}">
+                        <versionRange  minVersion="2.2" maxVersion="2.2">
+                    </versionRange>
+                  </emItem>
+      <emItem  blockID="i3" id="langpack-vi-VN@firefox.mozilla.org">
+                        <versionRange  minVersion="2.0" maxVersion="2.0">
+                    </versionRange>
+                  </emItem>
+      <emItem  blockID="i7" id="{2224e955-00e9-4613-a844-ce69fccaae91}">
+                        </emItem>
+      <emItem  blockID="i24" id="{6E19037A-12E3-4295-8915-ED48BC341614}">
+                        <versionRange  minVersion="0.1" maxVersion="1.3.328.4" severity="1">
+                      <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
+                              <versionRange  minVersion="3.7a1pre" maxVersion="*" />
+                          </targetApplication>
+                    </versionRange>
+                  </emItem>
+      <emItem  blockID="i15" id="personas@christopher.beard">
+                        <versionRange  minVersion="1.6" maxVersion="1.6">
+                      <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
+                              <versionRange  minVersion="3.6" maxVersion="3.6.*" />
+                          </targetApplication>
+                    </versionRange>
+                  </emItem>
+      <emItem  blockID="i21" id="support@update-firefox.com">
+                        </emItem>
+    </emItems>
+
+  <pluginItems>
+      <pluginItem  blockID="p26">
+      <match name="name" exp="^Yahoo Application State Plugin$" />      <match name="description" exp="^Yahoo Application State Plugin$" />      <match name="filename" exp="npYState.dll" />              <versionRange >
+                      <targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
+              <versionRange  minVersion="3.0a1" maxVersion="3.*" />
+            </targetApplication>
+                  </versionRange>
+          </pluginItem>
+      <pluginItem  blockID="p27">
+      <match name="name" exp="QuickTime Plug-in 7[.]1[.]" />            <match name="filename" exp="npqtplugin.?[.]dll" />              <versionRange >
+                      <targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
+              <versionRange  minVersion="3.0a1" maxVersion="3.*" />
+            </targetApplication>
+                  </versionRange>
+          </pluginItem>
+      <pluginItem  blockID="p28">
+                  <match name="filename" exp="NPFFAddOn.dll" />              <versionRange >
+                  </versionRange>
+          </pluginItem>
+      <pluginItem  blockID="p31">
+                  <match name="filename" exp="NPMySrch.dll" />              <versionRange >
+                  </versionRange>
+          </pluginItem>
+      <pluginItem  blockID="p32">
+                  <match name="filename" exp="npViewpoint.dll" />              <versionRange >
+                      <targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
+              <versionRange  minVersion="3.0" maxVersion="*" />
+            </targetApplication>
+                  </versionRange>
+          </pluginItem>
+      <pluginItem  blockID="p33">
+      <match name="name" exp="[0-6]\.0\.[01]\d{2}\.\d+" />            <match name="filename" exp="npdeploytk.dll" />              <versionRange  severity="1">
+                  </versionRange>
+          </pluginItem>
+      <pluginItem  blockID="p34">
+                  <match name="filename" exp="[Nn][Pp][Jj][Pp][Ii]1[56]0_[0-9]+\.[Dd][Ll][Ll]" />              <versionRange >
+                      <targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
+              <versionRange  minVersion="3.6a1pre" maxVersion="*" />
+            </targetApplication>
+                  </versionRange>
+          </pluginItem>
+    </pluginItems>
+
+  <gfxItems>
+    <gfxBlacklistEntry  blockID="g35">
+      <os>WINNT 6.1</os>
+      <vendor>0x10de</vendor>
+              <devices>
+                      <device>0x0a6c</device>
+                  </devices>
+            <feature>DIRECT2D</feature>
+      <featureStatus>BLOCKED_DRIVER_VERSION</featureStatus>
+      <driverVersion>8.17.12.5896</driverVersion>
+      <driverVersionComparator>LESS_THAN_OR_EQUAL</driverVersionComparator>
+    </gfxBlacklistEntry>
+    <gfxBlacklistEntry  blockID="g36">
+      <os>WINNT 6.1</os>
+      <vendor>0x10de</vendor>
+              <devices>
+                      <device>0x0a6c</device>
+                  </devices>
+            <feature>DIRECT3D_9_LAYERS</feature>
+      <featureStatus>BLOCKED_DRIVER_VERSION</featureStatus>
+      <driverVersion>8.17.12.5896</driverVersion>
+      <driverVersionComparator>LESS_THAN_OR_EQUAL</driverVersionComparator>
+    </gfxBlacklistEntry>
+    <gfxBlacklistEntry  blockID="g37">
+      <os>WINNT 5.1</os>
+      <vendor>0x10de</vendor>
+            <feature>DIRECT3D_9_LAYERS</feature>
+      <featureStatus>BLOCKED_DRIVER_VERSION</featureStatus>
+      <driverVersion>7.0.0.0</driverVersion>
+      <driverVersionComparator>GREATER_THAN_OR_EQUAL</driverVersionComparator>
+    </gfxBlacklistEntry>
+    </gfxItems>
+
+
+</blocklist>
\ No newline at end of file
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -1410,18 +1410,16 @@ function prepareForStartup() {
     if (!webNavigation)
       throw "no XBL binding for browser";
   } catch (e) {
     alert("Error launching browser window:" + e);
     window.close(); // Give up.
     return;
   }
 
-  messageManager.loadFrameScript("chrome://browser/content/content.js", true);
-
   // initialize observers and listeners
   // and give C++ access to gBrowser
   gBrowser.init();
   XULBrowserWindow.init();
   window.QueryInterface(Ci.nsIInterfaceRequestor)
         .getInterface(nsIWebNavigation)
         .QueryInterface(Ci.nsIDocShellTreeItem).treeOwner
         .QueryInterface(Ci.nsIInterfaceRequestor)
deleted file mode 100644
--- a/browser/base/content/content.js
+++ /dev/null
@@ -1,45 +0,0 @@
-# -*- Mode: javascript; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
-# ***** BEGIN LICENSE BLOCK *****
-# Version: MPL 1.1/GPL 2.0/LGPL 2.1
-#
-# The contents of this file are subject to the Mozilla Public License Version
-# 1.1 (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-# http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS IS" basis,
-# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-# for the specific language governing rights and limitations under the
-# License.
-#
-# The Original Code is multi-process front-end code.
-#
-# The Initial Developer of the Original Code is
-# the Mozilla Foundation
-# Portions created by the Initial Developer are Copyright (C) 2011
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-#   Felipe Gomes <felipc@gmail.com>
-#
-# Alternatively, the contents of this file may be used under the terms of
-# either the GNU General Public License Version 2 or later (the "GPL"), or
-# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-# in which case the provisions of the GPL or the LGPL are applicable instead
-# of those above. If you wish to allow use of your version of this file only
-# under the terms of either the GPL or the LGPL, and not to allow others to
-# use your version of this file under the terms of the MPL, indicate your
-# decision by deleting the provisions above and replace them with the notice
-# and other provisions required by the GPL or the LGPL. If you do not delete
-# the provisions above, a recipient may use your version of this file under
-# the terms of any one of the MPL, the GPL or the LGPL.
-#
-# ***** END LICENSE BLOCK *****
-
-const webNavigation = docShell.QueryInterface(Ci.nsIWebNavigation);
-
-addMessageListener("WebNavigation:LoadURI", function(message) {
-  let flags = message.json.flags || webNavigation.LOAD_FLAGS_NONE;
-
-  webNavigation.loadURI(message.json.uri, flags, null, null, null);
-});
--- a/browser/base/jar.mn
+++ b/browser/base/jar.mn
@@ -24,17 +24,16 @@ browser.jar:
         content/browser/aboutHome-snippet1.png        (content/aboutHome-snippet1.png)
         content/browser/aboutHome-snippet2.png        (content/aboutHome-snippet2.png)
         content/browser/aboutRobots-icon.png          (content/aboutRobots-icon.png)
         content/browser/aboutRobots-widget-left.png   (content/aboutRobots-widget-left.png)
 *       content/browser/browser.css                   (content/browser.css)
 *       content/browser/browser.js                    (content/browser.js)
 *       content/browser/browser.xul                   (content/browser.xul)
 *       content/browser/browser-tabPreviews.xml       (content/browser-tabPreviews.xml)
-*       content/browser/content.js                    (content/content.js)
 *       content/browser/fullscreen-video.xhtml        (content/fullscreen-video.xhtml)
         content/browser/highlighter.xhtml             (content/highlighter.xhtml)
 *       content/browser/inspector.html                (content/inspector.html)
 *       content/browser/scratchpad.xul                (content/scratchpad.xul)
 *       content/browser/scratchpad.js                 (content/scratchpad.js)
 *       content/browser/pageinfo/pageInfo.xul         (content/pageinfo/pageInfo.xul)
 *       content/browser/pageinfo/pageInfo.js          (content/pageinfo/pageInfo.js)
 *       content/browser/pageinfo/pageInfo.css         (content/pageinfo/pageInfo.css)
--- a/browser/components/places/tests/browser/browser_410196_paste_into_tags.js
+++ b/browser/components/places/tests/browser/browser_410196_paste_into_tags.js
@@ -19,22 +19,20 @@ Components.utils.import("resource://gre/
 const TEST_URL = "http://example.com/";
 const MOZURISPEC = "http://mozilla.com/";
 
 let gLibrary;
 let PlacesOrganizer;
 
 function test() {
   waitForExplicitFinish();
-  openLibrary(onLibraryReady);
+  gLibrary = openLibrary(onLibraryReady);
 }
 
-function onLibraryReady(library) {
-  gLibrary = library;
-
+function onLibraryReady() {
   ok(PlacesUtils, "PlacesUtils in scope");
   ok(PlacesUIUtils, "PlacesUIUtils in scope");
 
   PlacesOrganizer = gLibrary.PlacesOrganizer;
   ok(PlacesOrganizer, "Places organizer in scope");
 
   tests.makeHistVisit();
   tests.makeTag();
--- a/browser/components/places/tests/browser/browser_416459_cut.js
+++ b/browser/components/places/tests/browser/browser_416459_cut.js
@@ -1,23 +1,24 @@
 /* Any copyright is dedicated to the Public Domain.
  * http://creativecommons.org/publicdomain/zero/1.0/
  */
 
 const TEST_URL = "http://example.com/";
 
 let gLibrary;
 let gItemId;
+let PlacesOrganizer;
 
 function test() {
   waitForExplicitFinish();
   gLibrary = openLibrary(onLibraryReady);
 }
 
-function onLibraryReady(library) {
+function onLibraryReady() {
   PlacesOrganizer = gLibrary.PlacesOrganizer;
 
   // Sanity checks.
   ok(PlacesUtils, "PlacesUtils in scope");
   ok(PlacesUIUtils, "PlacesUIUtils in scope");
   ok(PlacesOrganizer, "PlacesOrganizer in scope");
 
   gItemId = PlacesUtils.bookmarks.insertBookmark(
--- a/browser/components/places/tests/browser/browser_library_batch_delete.js
+++ b/browser/components/places/tests/browser/browser_library_batch_delete.js
@@ -91,26 +91,23 @@ gTests.push({
 
 function test() {
   waitForExplicitFinish();
   registerCleanupFunction(function () {
     PlacesUtils.bookmarks
                .removeFolderChildren(PlacesUtils.unfiledBookmarksFolderId);
   });
 
-  openLibrary(function (library) {
-    gLibrary = library;
-    executeSoon(nextTest);
-  });
+  gLibrary = openLibrary(nextTest);
 }
 
 function nextTest() {
   if (gTests.length) {
     var test = gTests.shift();
     info("Start of test: " + test.desc);
     test.run();
   }
   else {
     // Close Library window.
     gLibrary.close();
-    executeSoon(finish);
+    finish();
   }
 }
--- a/browser/components/places/tests/browser/browser_library_left_pane_commands.js
+++ b/browser/components/places/tests/browser/browser_library_left_pane_commands.js
@@ -175,13 +175,10 @@ function nextTest() {
 
 function test() {
   waitForExplicitFinish();
   // Sanity checks.
   ok(PlacesUtils, "PlacesUtils is running in chrome context");
   ok(PlacesUIUtils, "PlacesUIUtils is running in chrome context");
 
   // Open Library.
-  openLibrary(function (library) {
-    gLibrary = library;
-    nextTest();
-  });
+  gLibrary = openLibrary(nextTest);
 }
--- a/browser/themes/winstripe/browser/browser.css
+++ b/browser/themes/winstripe/browser/browser.css
@@ -597,18 +597,18 @@ menuitem.bookmark-item {
 }
 
 #navigator-toolbox[iconsize=small] > #nav-bar {
   padding-top: 1px;
   padding-bottom: 1px;
 }
 
 #navigator-toolbox[iconsize=large][mode=icons] > #nav-bar {
-  padding-left: 2px;
-  padding-right: 2px;
+  -moz-padding-start: 0;
+  -moz-padding-end: 2px;
 }
 
 #nav-bar .toolbarbutton-1 > .toolbarbutton-menubutton-button,
 #nav-bar .toolbarbutton-1 > .toolbarbutton-menubutton-dropmarker,
 #nav-bar .toolbarbutton-1 {
   -moz-appearance: none;
   padding: 1px 5px;
   background: rgba(151,152,153,.05)
@@ -660,27 +660,28 @@ menuitem.bookmark-item {
 
 #nav-bar .toolbarbutton-1 > .toolbarbutton-menubutton-button:-moz-locale-dir(rtl),
 #nav-bar .toolbarbutton-1 > .toolbarbutton-menubutton-dropmarker:-moz-locale-dir(ltr) {
   border-top-left-radius: 0;
   border-bottom-left-radius: 0;
 }
 
 #nav-bar .toolbarbutton-1[disabled="true"] {
-  opacity: .8;
+  opacity: .4;
 }
 
 #nav-bar .toolbarbutton-1[disabled="true"] > .toolbarbutton-menubutton-button > .toolbarbutton-icon,
 #nav-bar .toolbarbutton-1[disabled="true"] > .toolbarbutton-icon {
-  opacity: .5;
+  opacity: 1;
 }
 
 #nav-bar .toolbarbutton-1 > .toolbarbutton-menubutton-button:not([disabled="true"]):not(:active):hover,
 #nav-bar .toolbarbutton-1:not([open="true"]):not(:active):hover > .toolbarbutton-menubutton-dropmarker:not([disabled="true"]),
-#nav-bar .toolbarbutton-1:not([type="menu-button"]):not([disabled="true"]):not([checked="true"]):not([open="true"]):not(:active):hover {
+#nav-bar .toolbarbutton-1:not([type="menu-button"]):not([disabled="true"]):not([checked="true"]):not([open="true"]):not(:active):hover,
+#navigator-toolbox[iconsize="large"][mode="icons"] > #nav-bar #back-button:not([disabled="true"]):not([open]):not(:active):hover > .toolbarbutton-icon {
   background-color: hsla(190,60%,70%,.5);
   border-color: hsla(190,50%,65%,.8) hsla(190,50%,50%,.8) hsla(190,50%,40%,.8);
   box-shadow: 0 0 0 1px rgba(255,255,255,.3) inset,
               0 0 0 1.5px rgba(255,255,255,.1) inset,
               0 0 3.5px hsl(190,90%,80%);
   -moz-transition: background-color .4s ease-in,
                    border-color .3s ease-in,
                    box-shadow .3s ease-in;
@@ -789,45 +790,57 @@ toolbar[mode="full"] .toolbarbutton-1 > 
 
 #nav-bar #back-button:-moz-locale-dir(rtl),
 #nav-bar #forward-button {
   border-top-left-radius: 0;
   border-bottom-left-radius: 0;
 }
 
 #navigator-toolbox[iconsize="large"][mode="icons"] > #nav-bar #back-button {
-  border-radius: 10000px;
-  padding: 0;
-  width: 30px;
-  height: 30px;
+  margin: -5px 0;
+  padding-top: 0;
+  padding-bottom: 0;
+  -moz-padding-start: 5px;
+  -moz-padding-end: 0;
   position: relative;
   z-index: 1;
-  margin-top: -2px;
-  margin-bottom: -2px;
+  border-radius: 0 10000px 10000px 0;
+  background: transparent;
+  border: none;
+  box-shadow: none;
+}
+
+#navigator-toolbox[iconsize="large"][mode="icons"] > #nav-bar #back-button:-moz-locale-dir(rtl) {
+  border-radius: 10000px 0 0 10000px;
+}
+
+#navigator-toolbox[iconsize="large"][mode="icons"] > #nav-bar #back-button > .toolbarbutton-icon {
+  border-radius: 10000px;
+  padding: 5px;
   border: none;
   background-image: -moz-linear-gradient(rgba(251,252,253,.97), rgba(246,247,248,.5) 49%, 
                                          rgba(231,232,233,.45) 51%, rgba(225,226,229,.2));
   box-shadow: 0 0 0 1px rgba(255,255,255,.3) inset,
               0 0 0 2px rgba(255,255,255,.1) inset,
               0 0 0 1px rgba(0,0,0,.15),
               0 1px 0 rgba(0,0,0,.4),
               0 1px 1px rgba(0,0,0,.3);
 }
 
-#navigator-toolbox[iconsize="large"][mode="icons"] > #nav-bar #back-button:not([disabled="true"]):not([open="true"]):not(:active):hover {
+#navigator-toolbox[iconsize="large"][mode="icons"] > #nav-bar #back-button:not([disabled="true"]):not([open="true"]):not(:active):hover > .toolbarbutton-icon {
   box-shadow: 0 0 0 1px rgba(255,255,255,.3) inset,
               0 0 0 2px rgba(255,255,255,.1) inset,
               0 0 0 1px hsla(190,50%,40%,.3),
               0 1px 0 rgba(0,0,0,.4),
               0 1px 1px rgba(0,0,0,.3),
               0 0 5px 1px hsl(190,90%,80%);
 }
 
-#navigator-toolbox[iconsize="large"][mode="icons"] > #nav-bar #back-button:not([disabled="true"]):hover:active,
-#navigator-toolbox[iconsize="large"][mode="icons"] > #nav-bar #back-button[open="true"] {
+#navigator-toolbox[iconsize="large"][mode="icons"] > #nav-bar #back-button:not([disabled="true"]):hover:active > .toolbarbutton-icon,
+#navigator-toolbox[iconsize="large"][mode="icons"] > #nav-bar #back-button[open="true"] > .toolbarbutton-icon {
   box-shadow: 0 0 6.5px rgba(0,0,0,.4) inset,
               0 0 2px rgba(0,0,0,.4) inset,
               0 0 0 1px rgba(0,0,0,.65),
               0 2px 0 rgba(255,255,255,.4);
 }
 
 #navigator-toolbox[iconsize="large"][mode="icons"] > #nav-bar[currentset*="unified-back-forward-button"],
 #navigator-toolbox[iconsize="large"][mode="icons"] > #nav-bar:not([currentset]) {
--- a/configure.in
+++ b/configure.in
@@ -2048,17 +2048,16 @@ case "$target" in
     MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
     MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
     # If we're building with --enable-profiling, we need a frame pointer.
     if test -z "$MOZ_PROFILING"; then
         MOZ_OPTIMIZE_FLAGS="-O3 -fomit-frame-pointer"
     else
         MOZ_OPTIMIZE_FLAGS="-O3 -fno-omit-frame-pointer"
     fi
-    MOZ_MEMORY=1
     _PEDANTIC=
     CFLAGS="$CFLAGS -fno-common"
     CXXFLAGS="$CXXFLAGS -fno-common"
     DLL_SUFFIX=".dylib"
     DSO_LDOPTS=''
     STRIP="$STRIP -x -S"
     _PLATFORM_DEFAULT_TOOLKIT='cairo-cocoa'
     TARGET_NSPR_MDCPUCFG='\"md/_darwin.cfg\"'
--- a/content/canvas/public/nsICanvasRenderingContextInternal.h
+++ b/content/canvas/public/nsICanvasRenderingContextInternal.h
@@ -117,16 +117,21 @@ public:
   NS_IMETHOD Reset() = 0;
 
   // Return the CanvasLayer for this context, creating
   // one for the given layer manager if not available.
   virtual already_AddRefed<CanvasLayer> GetCanvasLayer(nsDisplayListBuilder* aBuilder,
                                                        CanvasLayer *aOldLayer,
                                                        LayerManager *aManager) = 0;
 
+  // Return true if the canvas should be forced to be "inactive" to ensure
+  // it can be drawn to the screen even if it's too large to be blitted by
+  // an accelerated CanvasLayer.
+  virtual PRBool ShouldForceInactiveLayer(LayerManager *aManager) { return PR_FALSE; }
+
   virtual void MarkContextClean() = 0;
 
   // Redraw the dirty rectangle of this canvas.
   NS_IMETHOD Redraw(const gfxRect &dirty) = 0;
 
   // Passes a generic nsIPropertyBag options argument, along with the
   // previous one, if any.  Optional.
   NS_IMETHOD SetContextOptions(nsIPropertyBag *aNewOptions) { return NS_OK; }
--- a/content/canvas/src/nsCanvasRenderingContext2D.cpp
+++ b/content/canvas/src/nsCanvasRenderingContext2D.cpp
@@ -344,20 +344,21 @@ public:
                               const PRUnichar* aEncoderOptions,
                               nsIInputStream **aStream);
     NS_IMETHOD GetThebesSurface(gfxASurface **surface);
     mozilla::TemporaryRef<mozilla::gfx::SourceSurface> GetSurfaceSnapshot()
         { return nsnull; }
 
     NS_IMETHOD SetIsOpaque(PRBool isOpaque);
     NS_IMETHOD Reset();
-    already_AddRefed<CanvasLayer> GetCanvasLayer(nsDisplayListBuilder* aBuilder,
-                                                 CanvasLayer *aOldLayer,
-                                                 LayerManager *aManager);
-    void MarkContextClean();
+    virtual already_AddRefed<CanvasLayer> GetCanvasLayer(nsDisplayListBuilder* aBuilder,
+                                                         CanvasLayer *aOldLayer,
+                                                         LayerManager *aManager);
+    virtual PRBool ShouldForceInactiveLayer(LayerManager *aManager);
+    virtual void MarkContextClean();
     NS_IMETHOD SetIsIPC(PRBool isIPC);
     // this rect is in canvas device space
     NS_IMETHOD Redraw(const gfxRect &r);
     // this rect is in mThebes's current user space
     NS_IMETHOD RedrawUser(const gfxRect &r);
 
     // nsISupports interface + CC
     NS_DECL_CYCLE_COLLECTING_ISUPPORTS
@@ -1066,19 +1067,17 @@ nsCanvasRenderingContext2D::SetDimension
         if (height == 0 || width == 0) {
             mZero = PR_TRUE;
             height = 1;
             width = 1;
         }
 
         gfxASurface::gfxImageFormat format = GetImageFormat();
 
-        if (PR_GetEnv("MOZ_CANVAS_IMAGE_SURFACE")) {
-            surface = new gfxImageSurface(gfxIntSize(width, height), format);
-        } else {
+        if (!PR_GetEnv("MOZ_CANVAS_IMAGE_SURFACE")) {
             nsCOMPtr<nsIContent> content =
                 do_QueryInterface(static_cast<nsIDOMHTMLCanvasElement*>(mCanvasElement));
             nsIDocument* ownerDoc = nsnull;
             if (content)
                 ownerDoc = content->GetOwnerDoc();
             nsRefPtr<LayerManager> layerManager = nsnull;
 
             if (ownerDoc)
@@ -1088,18 +1087,25 @@ nsCanvasRenderingContext2D::SetDimension
             if (layerManager) {
               surface = layerManager->CreateOptimalSurface(gfxIntSize(width, height), format);
             } else {
               surface = gfxPlatform::GetPlatform()->
                 CreateOffscreenSurface(gfxIntSize(width, height), gfxASurface::ContentFromFormat(format));
             }
         }
 
-        if (surface && surface->CairoStatus() != 0)
-            surface = NULL;
+        if (!surface || surface->CairoStatus()) {
+            // If we couldn't create a surface of the type we want, fall back
+            // to an image surface. This lets us handle surface sizes that
+            // the underlying cairo backend might not handle.
+            surface = new gfxImageSurface(gfxIntSize(width, height), format);
+            if (!surface || surface->CairoStatus()) {
+                surface = nsnull;
+            }
+        }
     }
     if (surface) {
         if (gCanvasMemoryReporter == nsnull) {
             gCanvasMemoryReporter = new NS_MEMORY_REPORTER_NAME(CanvasMemory);
             NS_RegisterMemoryReporter(gCanvasMemoryReporter);
         }
 
         gCanvasMemoryUsed += width * height * 4;
@@ -4012,16 +4018,22 @@ nsCanvasRenderingContext2D::GetCanvasLay
     canvasLayer->SetContentFlags(flags);
     canvasLayer->Updated();
 
     mResetLayer = PR_FALSE;
 
     return canvasLayer.forget();
 }
 
+PRBool
+nsCanvasRenderingContext2D::ShouldForceInactiveLayer(LayerManager *aManager)
+{
+    return !aManager->CanUseCanvasLayerForSize(gfxIntSize(mWidth, mHeight));
+}
+
 void
 nsCanvasRenderingContext2D::MarkContextClean()
 {
     if (mInvalidateCount > 0) {
         mPredictManyRedrawCalls = mInvalidateCount > kCanvasMaxInvalidateCount;
     }
     mIsEntireFrameInvalid = PR_FALSE;
     mInvalidateCount = 0;
--- a/content/canvas/src/nsCanvasRenderingContext2DAzure.cpp
+++ b/content/canvas/src/nsCanvasRenderingContext2DAzure.cpp
@@ -189,89 +189,16 @@ public:
 
     mStops = aRT->CreateGradientStops(mRawStops.Elements(), mRawStops.Length());
 
     return mStops;
   }
 
   NS_DECL_ISUPPORTS
 
-protected:
-  nsCanvasGradientAzure(Type aType) : mType(aType)
-  {}
-
-  nsTArray<GradientStop> mRawStops;
-  RefPtr<GradientStops> mStops;
-  Type mType;
-};
-
-class nsCanvasRadialGradientAzure : public nsCanvasGradientAzure
-{
-public:
-  nsCanvasRadialGradientAzure(const Point &aBeginOrigin, Float aBeginRadius,
-                              const Point &aEndOrigin, Float aEndRadius)
-    : nsCanvasGradientAzure(RADIAL)
-    , mCenter(aEndOrigin)
-    , mRadius(aEndRadius)
-  {
-    mOffsetStart = aBeginRadius / mRadius;
-
-    mOffsetRatio = 1 - mOffsetStart;
-    mOrigin = ((mCenter * aBeginRadius) - (aBeginOrigin * mRadius)) /
-              (aBeginRadius - mRadius);
-  }
-
-
-  /* nsIDOMCanvasGradient */
-  NS_IMETHOD AddColorStop (float offset,
-                            const nsAString& colorstr)
-  {
-    if (!FloatValidate(offset) || offset < 0.0 || offset > 1.0) {
-      return NS_ERROR_DOM_INDEX_SIZE_ERR;
-    }
-
-    nscolor color;
-    nsCSSParser parser;
-    nsresult rv = parser.ParseColorString(nsString(colorstr),
-                                          nsnull, 0, &color);
-    if (NS_FAILED(rv)) {
-      return NS_ERROR_DOM_SYNTAX_ERR;
-    }
-
-    mStops = nsnull;
-
-    GradientStop newStop;
-
-    newStop.offset = offset * mOffsetRatio + mOffsetStart;
-    newStop.color = Color::FromABGR(color);
-
-    mRawStops.AppendElement(newStop);
-
-    return NS_OK;
-  }
-
-  // XXX - Temporary gradient code, this will be fixed soon as per bug 666097
-  Point mCenter;
-  Float mRadius;
-  Point mOrigin;
-
-  Float mOffsetStart;
-  Float mOffsetRatio;
-};
-
-class nsCanvasLinearGradientAzure : public nsCanvasGradientAzure
-{
-public:
-  nsCanvasLinearGradientAzure(const Point &aBegin, const Point &aEnd)
-    : nsCanvasGradientAzure(LINEAR)
-    , mBegin(aBegin)
-    , mEnd(aEnd)
-  {
-  }
-
   /* nsIDOMCanvasGradient */
   NS_IMETHOD AddColorStop (float offset,
                             const nsAString& colorstr)
   {
     if (!FloatValidate(offset) || offset < 0.0 || offset > 1.0) {
       return NS_ERROR_DOM_INDEX_SIZE_ERR;
     }
 
@@ -291,16 +218,54 @@ public:
     newStop.color = Color::FromABGR(color);
 
     mRawStops.AppendElement(newStop);
 
     return NS_OK;
   }
 
 protected:
+  nsCanvasGradientAzure(Type aType) : mType(aType)
+  {}
+
+  nsTArray<GradientStop> mRawStops;
+  RefPtr<GradientStops> mStops;
+  Type mType;
+};
+
+class nsCanvasRadialGradientAzure : public nsCanvasGradientAzure
+{
+public:
+  nsCanvasRadialGradientAzure(const Point &aBeginOrigin, Float aBeginRadius,
+                              const Point &aEndOrigin, Float aEndRadius)
+    : nsCanvasGradientAzure(RADIAL)
+    , mCenter1(aBeginOrigin)
+    , mCenter2(aEndOrigin)
+    , mRadius1(aBeginRadius)
+    , mRadius2(aEndRadius)
+  {
+  }
+
+  Point mCenter1;
+  Point mCenter2;
+  Float mRadius1;
+  Float mRadius2;
+};
+
+class nsCanvasLinearGradientAzure : public nsCanvasGradientAzure
+{
+public:
+  nsCanvasLinearGradientAzure(const Point &aBegin, const Point &aEnd)
+    : nsCanvasGradientAzure(LINEAR)
+    , mBegin(aBegin)
+    , mEnd(aEnd)
+  {
+  }
+
+protected:
   friend class nsCanvasRenderingContext2DAzure;
 
   // Beginning of linear gradient.
   Point mBegin;
   // End of linear gradient.
   Point mEnd;
 };
 
@@ -822,18 +787,18 @@ protected:
           LinearGradientPattern(gradient->mBegin, gradient->mEnd,
                                 gradient->GetGradientStopsForTarget(aRT));
       } else if (state.gradientStyles[aStyle] &&
                  state.gradientStyles[aStyle]->GetType() == nsCanvasGradientAzure::RADIAL) {
         nsCanvasRadialGradientAzure *gradient =
           static_cast<nsCanvasRadialGradientAzure*>(state.gradientStyles[aStyle].get());
 
         mPattern = new (mRadialGradientPattern.addr())
-          RadialGradientPattern(gradient->mCenter, gradient->mOrigin, gradient->mRadius,
-                                gradient->GetGradientStopsForTarget(aRT));
+          RadialGradientPattern(gradient->mCenter1, gradient->mCenter2, gradient->mRadius1,
+                                gradient->mRadius2, gradient->GetGradientStopsForTarget(aRT));
       } else if (state.patternStyles[aStyle]) {
         if (aCtx->mCanvasElement) {
           CanvasUtils::DoDrawImageSecurityCheck(aCtx->HTMLCanvasElement(),
                                                 state.patternStyles[aStyle]->mPrincipal,
                                                 state.patternStyles[aStyle]->mForceWriteOnly);
         }
 
         ExtendMode mode;
--- a/content/canvas/test/test_2d.gradient.radial.cone.top.html
+++ b/content/canvas/test/test_2d.gradient.radial.cone.top.html
@@ -1,27 +1,16 @@
 <!DOCTYPE HTML>
 <title>Canvas test: 2d.gradient.radial.cone.top</title>
 <script src="/MochiKit/packed.js"></script>
 <script src="/tests/SimpleTest/SimpleTest.js"></script>
 <link rel="stylesheet" href="/tests/SimpleTest/test.css">
 <body>
 <canvas id="c" width="100" height="50"><p class="fallback">FAIL (fallback content)</p></canvas>
 <script>
-
-function IsAzureEnabled() {
-  var enabled = false;
-
-  try {
-    netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
-    enabled = Components.classes["@mozilla.org/gfx/info;1"].getService(Components.interfaces.nsIGfxInfo).AzureEnabled;
-  } catch (e) { }
-
-  return enabled;
-}
 
 function isPixel(ctx, x,y, r,g,b,a, pos, colour, d) {
     var pixel = ctx.getImageData(x, y, 1, 1);
     var pr = pixel.data[0],
         pg = pixel.data[1],
         pb = pixel.data[2],
         pa = pixel.data[3];
     ok(r-d <= pr && pr <= r+d &&
@@ -54,36 +43,23 @@ ctx.fillStyle = '#f00';
 ctx.fillRect(0, 0, 100, 50);
 
 var g = ctx.createRadialGradient(230, 25, 100, 100, 25, 101);
 g.addColorStop(0, '#f00');
 g.addColorStop(1, '#0f0');
 ctx.fillStyle = g;
 ctx.fillRect(0, 0, 100, 50);
 
-if (IsAzureEnabled()) {
-  // XXX - See Bug 666097.
-  todo_isPixel(ctx, 1,1, 0,255,0,255, "1,1", "0,255,0,255", 0);
-  todo_isPixel(ctx, 50,1, 0,255,0,255, "50,1", "0,255,0,255", 0);
-  todo_isPixel(ctx, 98,1, 0,255,0,255, "98,1", "0,255,0,255", 0);
-  todo_isPixel(ctx, 1,25, 0,255,0,255, "1,25", "0,255,0,255", 0);
-  todo_isPixel(ctx, 50,25, 0,255,0,255, "50,25", "0,255,0,255", 0);
-  todo_isPixel(ctx, 98,25, 0,255,0,255, "98,25", "0,255,0,255", 0);
-  todo_isPixel(ctx, 1,48, 0,255,0,255, "1,48", "0,255,0,255", 0);
-  todo_isPixel(ctx, 50,48, 0,255,0,255, "50,48", "0,255,0,255", 0);
-  todo_isPixel(ctx, 98,48, 0,255,0,255, "98,48", "0,255,0,255", 0);
-} else {
-  isPixel(ctx, 1,1, 0,255,0,255, "1,1", "0,255,0,255", 0);
-  isPixel(ctx, 50,1, 0,255,0,255, "50,1", "0,255,0,255", 0);
-  isPixel(ctx, 98,1, 0,255,0,255, "98,1", "0,255,0,255", 0);
-  isPixel(ctx, 1,25, 0,255,0,255, "1,25", "0,255,0,255", 0);
-  isPixel(ctx, 50,25, 0,255,0,255, "50,25", "0,255,0,255", 0);
-  isPixel(ctx, 98,25, 0,255,0,255, "98,25", "0,255,0,255", 0);
-  isPixel(ctx, 1,48, 0,255,0,255, "1,48", "0,255,0,255", 0);
-  isPixel(ctx, 50,48, 0,255,0,255, "50,48", "0,255,0,255", 0);
-  isPixel(ctx, 98,48, 0,255,0,255, "98,48", "0,255,0,255", 0);
-}
+isPixel(ctx, 1,1, 0,255,0,255, "1,1", "0,255,0,255", 0);
+isPixel(ctx, 50,1, 0,255,0,255, "50,1", "0,255,0,255", 0);
+isPixel(ctx, 98,1, 0,255,0,255, "98,1", "0,255,0,255", 0);
+isPixel(ctx, 1,25, 0,255,0,255, "1,25", "0,255,0,255", 0);
+isPixel(ctx, 50,25, 0,255,0,255, "50,25", "0,255,0,255", 0);
+isPixel(ctx, 98,25, 0,255,0,255, "98,25", "0,255,0,255", 0);
+isPixel(ctx, 1,48, 0,255,0,255, "1,48", "0,255,0,255", 0);
+isPixel(ctx, 50,48, 0,255,0,255, "50,48", "0,255,0,255", 0);
+isPixel(ctx, 98,48, 0,255,0,255, "98,48", "0,255,0,255", 0);
 
 SimpleTest.finish();
 
 });
 </script>
 
--- a/content/canvas/test/test_canvas.html
+++ b/content/canvas/test/test_canvas.html
@@ -6394,38 +6394,25 @@ ctx.fillStyle = '#f00';
 ctx.fillRect(0, 0, 100, 50);
 
 var g = ctx.createRadialGradient(210, 25, 100, 230, 25, 100);
 g.addColorStop(0, '#0f0');
 g.addColorStop(1, '#f00');
 ctx.fillStyle = g;
 ctx.fillRect(0, 0, 100, 50);
 
-if (IsAzureEnabled()) {
-  // XXX - See Bug 666097.
-  todo_isPixel(ctx, 1, 1, 0, 255, 0, 255, 0);
-  todo_isPixel(ctx, 50, 1, 0, 255, 0, 255, 0);
-  todo_isPixel(ctx, 98, 1, 0, 255, 0, 255, 0);
-  todo_isPixel(ctx, 1, 25, 0, 255, 0, 255, 0);
-  todo_isPixel(ctx, 50, 25, 0, 255, 0, 255, 0);
-  todo_isPixel(ctx, 98, 25, 0, 255, 0, 255, 0);
-  todo_isPixel(ctx, 1, 48, 0, 255, 0, 255, 0);
-  todo_isPixel(ctx, 50, 48, 0, 255, 0, 255, 0);
-  todo_isPixel(ctx, 98, 48, 0, 255, 0, 255, 0);
-} else {
-  isPixel(ctx, 1, 1, 0, 255, 0, 255, 0);
-  isPixel(ctx, 50, 1, 0, 255, 0, 255, 0);
-  isPixel(ctx, 98, 1, 0, 255, 0, 255, 0);
-  isPixel(ctx, 1, 25, 0, 255, 0, 255, 0);
-  isPixel(ctx, 50, 25, 0, 255, 0, 255, 0);
-  isPixel(ctx, 98, 25, 0, 255, 0, 255, 0);
-  isPixel(ctx, 1, 48, 0, 255, 0, 255, 0);
-  isPixel(ctx, 50, 48, 0, 255, 0, 255, 0);
-  isPixel(ctx, 98, 48, 0, 255, 0, 255, 0);
-}
+isPixel(ctx, 1, 1, 0, 255, 0, 255, 0);
+isPixel(ctx, 50, 1, 0, 255, 0, 255, 0);
+isPixel(ctx, 98, 1, 0, 255, 0, 255, 0);
+isPixel(ctx, 1, 25, 0, 255, 0, 255, 0);
+isPixel(ctx, 50, 25, 0, 255, 0, 255, 0);
+isPixel(ctx, 98, 25, 0, 255, 0, 255, 0);
+isPixel(ctx, 1, 48, 0, 255, 0, 255, 0);
+isPixel(ctx, 50, 48, 0, 255, 0, 255, 0);
+isPixel(ctx, 98, 48, 0, 255, 0, 255, 0);
 
 }
 </script>
 
 <!-- [[[ test_2d.gradient.radial.cone.front.html ]]] -->
 
 <p>Canvas test: 2d.gradient.radial.cone.front</p>
 <canvas id="c235" width="100" height="50"><p class="fallback">FAIL (fallback content)</p></canvas>
@@ -6565,39 +6552,25 @@ ctx.fillStyle = '#f00';
 ctx.fillRect(0, 0, 100, 50);
 
 var g = ctx.createRadialGradient(230, 25, 100, 100, 25, 101);
 g.addColorStop(0, '#f00');
 g.addColorStop(1, '#0f0');
 ctx.fillStyle = g;
 ctx.fillRect(0, 0, 100, 50);
 
-
-if (IsAzureEnabled()) {
-  // XXX - See Bug 666097.
-  todo_isPixel(ctx, 1, 1, 0, 255, 0, 255, 0);
-  todo_isPixel(ctx, 50, 1, 0, 255, 0, 255, 0);
-  todo_isPixel(ctx, 98, 1, 0, 255, 0, 255, 0);
-  todo_isPixel(ctx, 1, 25, 0, 255, 0, 255, 0);
-  todo_isPixel(ctx, 50, 25, 0, 255, 0, 255, 0);
-  todo_isPixel(ctx, 98, 25, 0, 255, 0, 255, 0);
-  todo_isPixel(ctx, 1, 48, 0, 255, 0, 255, 0);
-  todo_isPixel(ctx, 50, 48, 0, 255, 0, 255, 0);
-  todo_isPixel(ctx, 98, 48, 0, 255, 0, 255, 0);
-} else {
-  isPixel(ctx, 1, 1, 0, 255, 0, 255, 0);
-  isPixel(ctx, 50, 1, 0, 255, 0, 255, 0);
-  isPixel(ctx, 98, 1, 0, 255, 0, 255, 0);
-  isPixel(ctx, 1, 25, 0, 255, 0, 255, 0);
-  isPixel(ctx, 50, 25, 0, 255, 0, 255, 0);
-  isPixel(ctx, 98, 25, 0, 255, 0, 255, 0);
-  isPixel(ctx, 1, 48, 0, 255, 0, 255, 0);
-  isPixel(ctx, 50, 48, 0, 255, 0, 255, 0);
-  isPixel(ctx, 98, 48, 0, 255, 0, 255, 0);
-}
+isPixel(ctx, 1, 1, 0, 255, 0, 255, 0);
+isPixel(ctx, 50, 1, 0, 255, 0, 255, 0);
+isPixel(ctx, 98, 1, 0, 255, 0, 255, 0);
+isPixel(ctx, 1, 25, 0, 255, 0, 255, 0);
+isPixel(ctx, 50, 25, 0, 255, 0, 255, 0);
+isPixel(ctx, 98, 25, 0, 255, 0, 255, 0);
+isPixel(ctx, 1, 48, 0, 255, 0, 255, 0);
+isPixel(ctx, 50, 48, 0, 255, 0, 255, 0);
+isPixel(ctx, 98, 48, 0, 255, 0, 255, 0);
 
 }
 </script>
 
 <!-- [[[ test_2d.gradient.radial.equal.html ]]] -->
 
 <p>Canvas test: 2d.gradient.radial.equal</p>
 <canvas id="c239" width="100" height="50"><p class="fallback">FAIL (fallback content)</p></canvas>
--- a/content/html/content/public/nsHTMLCanvasElement.h
+++ b/content/html/content/public/nsHTMLCanvasElement.h
@@ -165,16 +165,20 @@ public:
 
   /*
    * Helpers called by various users of Canvas
    */
 
   already_AddRefed<CanvasLayer> GetCanvasLayer(nsDisplayListBuilder* aBuilder,
                                                CanvasLayer *aOldLayer,
                                                LayerManager *aManager);
+  // Should return true if the canvas layer should always be marked inactive.
+  // We should return true here if we can't do accelerated compositing with
+  // a non-BasicCanvasLayer.
+  PRBool ShouldForceInactiveLayer(LayerManager *aManager);
 
   // Call this whenever we need future changes to the canvas
   // to trigger fresh invalidation requests. This needs to be called
   // whenever we render the canvas contents to the screen, or whenever we
   // take a snapshot of the canvas that needs to be "live" (e.g. -moz-element).
   void MarkContextClean();
 
   virtual nsXPCClassInfo* GetClassInfo();
@@ -188,16 +192,17 @@ protected:
                        bool& aFellBackToPNG);
   nsresult ToDataURLImpl(const nsAString& aMimeType,
                          nsIVariant* aEncoderOptions,
                          nsAString& aDataURL);
   nsresult MozGetAsFileImpl(const nsAString& aName,
                             const nsAString& aType,
                             nsIDOMFile** aResult);
   nsresult GetContextHelper(const nsAString& aContextId,
+                            PRBool aForceThebes,
                             nsICanvasRenderingContextInternal **aContext);
 
   nsString mCurrentContextId;
   nsCOMPtr<nsICanvasRenderingContextInternal> mCurrentContext;
   
 public:
   // Record whether this canvas should be write-only or not.
   // We set this when script paints an image from a different origin.
--- a/content/html/content/src/nsHTMLCanvasElement.cpp
+++ b/content/html/content/src/nsHTMLCanvasElement.cpp
@@ -375,21 +375,22 @@ nsHTMLCanvasElement::MozGetAsFileImpl(co
   nsRefPtr<nsDOMMemoryFile> file =
     new nsDOMMemoryFile(imgData, imgSize, aName, type);
 
   return CallQueryInterface(file, aResult);
 }
 
 nsresult
 nsHTMLCanvasElement::GetContextHelper(const nsAString& aContextId,
+                                      PRBool aForceThebes,
                                       nsICanvasRenderingContextInternal **aContext)
 {
   NS_ENSURE_ARG(aContext);
 
-  NS_LossyConvertUTF16toASCII ctxId(aContextId);
+  NS_ConvertUTF16toUTF8 ctxId(aContextId);
 
   // check that ctxId is clamped to A-Za-z0-9_-
   for (PRUint32 i = 0; i < ctxId.Length(); i++) {
     if ((ctxId[i] < 'A' || ctxId[i] > 'Z') &&
         (ctxId[i] < 'a' || ctxId[i] > 'z') &&
         (ctxId[i] < '0' || ctxId[i] > '9') &&
         (ctxId[i] != '-') &&
         (ctxId[i] != '_'))
@@ -397,16 +398,20 @@ nsHTMLCanvasElement::GetContextHelper(co
       // XXX ERRMSG we need to report an error to developers here! (bug 329026)
       return NS_OK;
     }
   }
 
   nsCString ctxString("@mozilla.org/content/canvas-rendering-context;1?id=");
   ctxString.Append(ctxId);
 
+  if (aForceThebes && ctxId.EqualsASCII("2d")) {
+    ctxString.AssignASCII("@mozilla.org/content/2dthebes-canvas-rendering-context;1");
+  }
+
   nsresult rv;
   nsCOMPtr<nsICanvasRenderingContextInternal> ctx =
     do_CreateInstance(ctxString.get(), &rv);
   if (rv == NS_ERROR_OUT_OF_MEMORY) {
     *aContext = nsnull;
     return NS_ERROR_OUT_OF_MEMORY;
   }
   if (NS_FAILED(rv)) {
@@ -428,18 +433,20 @@ nsHTMLCanvasElement::GetContextHelper(co
 
 NS_IMETHODIMP
 nsHTMLCanvasElement::GetContext(const nsAString& aContextId,
                                 const jsval& aContextOptions,
                                 nsISupports **aContext)
 {
   nsresult rv;
 
-  if (mCurrentContextId.IsEmpty()) {
-    rv = GetContextHelper(aContextId, getter_AddRefs(mCurrentContext));
+  PRBool forceThebes = PR_FALSE;
+
+  while (mCurrentContextId.IsEmpty()) {
+    rv = GetContextHelper(aContextId, forceThebes, getter_AddRefs(mCurrentContext));
     NS_ENSURE_SUCCESS(rv, rv);
     if (!mCurrentContext) {
       return NS_OK;
     }
 
     // Ensure that the context participates in CC.  Note that returning a
     // CC participant from QI doesn't addref.
     nsXPCOMCycleCollectionParticipant *cp = nsnull;
@@ -501,21 +508,28 @@ nsHTMLCanvasElement::GetContext(const ns
       }
 
       contextProps = newProps;
     }
 
     rv = UpdateContext(contextProps);
     if (NS_FAILED(rv)) {
       mCurrentContext = nsnull;
+      if (!forceThebes) {
+        // Try again with a Thebes context
+        forceThebes = PR_TRUE;
+        continue;
+      }
       return rv;
     }
 
     mCurrentContextId.Assign(aContextId);
-  } else if (!mCurrentContextId.Equals(aContextId)) {
+    break;
+  }
+  if (!mCurrentContextId.Equals(aContextId)) {
     //XXX eventually allow for more than one active context on a given canvas
     return NS_OK;
   }
 
   NS_ADDREF (*aContext = mCurrentContext);
   return NS_OK;
 }
 
@@ -530,17 +544,17 @@ nsHTMLCanvasElement::MozGetIPCContext(co
 
   // We only support 2d shmem contexts for now.
   if (!aContextId.Equals(NS_LITERAL_STRING("2d")))
     return NS_ERROR_INVALID_ARG;
 
   nsresult rv;
 
   if (mCurrentContextId.IsEmpty()) {
-    rv = GetContextHelper(aContextId, getter_AddRefs(mCurrentContext));
+    rv = GetContextHelper(aContextId, PR_FALSE, getter_AddRefs(mCurrentContext));
     NS_ENSURE_SUCCESS(rv, rv);
     if (!mCurrentContext) {
       return NS_OK;
     }
 
     mCurrentContext->SetIsIPC(PR_TRUE);
 
     rv = UpdateContext();
@@ -695,16 +709,22 @@ nsHTMLCanvasElement::GetCanvasLayer(nsDi
                                     LayerManager *aManager)
 {
   if (!mCurrentContext)
     return nsnull;
 
   return mCurrentContext->GetCanvasLayer(aBuilder, aOldLayer, aManager);
 }
 
+PRBool
+nsHTMLCanvasElement::ShouldForceInactiveLayer(LayerManager *aManager)
+{
+  return !mCurrentContext || mCurrentContext->ShouldForceInactiveLayer(aManager);
+}
+
 void
 nsHTMLCanvasElement::MarkContextClean()
 {
   if (!mCurrentContext)
     return;
 
   mCurrentContext->MarkContextClean();
 }
--- a/content/media/nsBuiltinDecoderReader.cpp
+++ b/content/media/nsBuiltinDecoderReader.cpp
@@ -305,34 +305,77 @@ nsresult nsBuiltinDecoderReader::DecodeT
         return NS_ERROR_FAILURE;
       }
     }
     LOG(PR_LOG_DEBUG, ("First video frame after decode is %lld", startTime));
   }
 
   if (HasAudio()) {
     // Decode audio forward to the seek target.
+    PRInt64 targetSample = 0;
+    if (!UsecsToSamples(aTarget, mInfo.mAudioRate, targetSample)) {
+      return NS_ERROR_FAILURE;
+    }
     PRBool eof = PR_FALSE;
     while (HasAudio() && !eof) {
       while (!eof && mAudioQueue.GetSize() == 0) {
         eof = !DecodeAudioData();
         {
           ReentrantMonitorAutoExit exitReaderMon(mReentrantMonitor);
           ReentrantMonitorAutoEnter decoderMon(mDecoder->GetReentrantMonitor());
           if (mDecoder->GetDecodeState() == nsBuiltinDecoderStateMachine::DECODER_STATE_SHUTDOWN) {
             return NS_ERROR_FAILURE;
           }
         }
       }
-      nsAutoPtr<SoundData> audio(mAudioQueue.PeekFront());
-      if (audio && audio->mTime + audio->mDuration <= aTarget) {
-        mAudioQueue.PopFront();
+      const SoundData* audio = mAudioQueue.PeekFront();
+      if (!audio)
+        break;
+      PRInt64 startSample = 0;
+      if (!UsecsToSamples(audio->mTime, mInfo.mAudioRate, startSample)) {
+        return NS_ERROR_FAILURE;
+      }
+      if (startSample + audio->mSamples <= targetSample) {
+        // Our seek target lies after the samples in this SoundData. Pop it
+        // off the queue, and keep decoding forwards.
+        delete mAudioQueue.PopFront();
         audio = nsnull;
-      } else {
-        audio.forget();
+        continue;
+      }
+
+      // The seek target lies somewhere in this SoundData's samples, strip off
+      // any samples which lie before the seek target, so we'll begin playback
+      // exactly at the seek target.
+      NS_ASSERTION(targetSample >= startSample, "Target must at or be after data start.");
+      NS_ASSERTION(startSample + audio->mSamples > targetSample, "Data must end after target.");
+
+      PRInt64 samplesToPrune = targetSample - startSample;
+      if (samplesToPrune > audio->mSamples) {
+        // We've messed up somehow. Don't try to trim samples, the |samples|
+        // variable below will overflow.
+        NS_WARNING("Can't prune more samples that we have!");
         break;
       }
+      PRUint32 samples = audio->mSamples - static_cast<PRUint32>(samplesToPrune);
+      PRUint32 channels = audio->mChannels;
+      nsAutoArrayPtr<SoundDataValue> audioData(new SoundDataValue[samples * channels]);
+      memcpy(audioData.get(),
+             audio->mAudioData.get() + (samplesToPrune * channels),
+             samples * channels * sizeof(SoundDataValue));
+      PRInt64 duration;
+      if (!SamplesToUsecs(samples, mInfo.mAudioRate, duration)) {
+        return NS_ERROR_FAILURE;
+      }
+      nsAutoPtr<SoundData> data(new SoundData(audio->mOffset,
+                                              aTarget,
+                                              duration,
+                                              samples,
+                                              audioData.forget(),
+                                              channels));
+      delete mAudioQueue.PopFront();
+      mAudioQueue.PushFront(data.forget());
+      break;
     }
   }
   return NS_OK;
 }
 
 
--- a/docshell/shistory/src/nsSHistory.cpp
+++ b/docshell/shistory/src/nsSHistory.cpp
@@ -1491,16 +1491,17 @@ nsSHistory::LoadEntry(PRInt32 aIndex, lo
         listener->OnHistoryGotoIndex(aIndex, nextURI, &canNavigate);
       }
     }
   }
 
   if (!canNavigate) {
     // If the listener asked us not to proceed with 
     // the operation, simply return.    
+    mRequestedIndex = -1;
     return NS_OK;  // XXX Maybe I can return some other error code?
   }
 
   nsCOMPtr<nsIURI> nexturi;
   PRInt32 pCount=0, nCount=0;
   nsCOMPtr<nsISHContainer> prevAsContainer(do_QueryInterface(prevEntry));
   nsCOMPtr<nsISHContainer> nextAsContainer(do_QueryInterface(nextEntry));
   if (prevAsContainer && nextAsContainer) {
--- a/dom/base/nsGlobalWindow.cpp
+++ b/dom/base/nsGlobalWindow.cpp
@@ -9084,16 +9084,18 @@ nsGlobalWindow::RunTimeout(nsTimeout *aT
   PR_INSERT_AFTER(&dummy_timeout, last_expired_timeout);
 
   // Don't let ClearWindowTimeouts throw away our stack-allocated
   // dummy timeout.
   dummy_timeout.AddRef();
   dummy_timeout.AddRef();
 
   last_insertion_point = mTimeoutInsertionPoint;
+  // If we ever start setting mTimeoutInsertionPoint to a non-dummy timeout,
+  // the logic in ResetTimersForNonBackgroundWindow will need to change.
   mTimeoutInsertionPoint = &dummy_timeout;
 
   for (timeout = FirstTimeout();
        timeout != &dummy_timeout && !IsFrozen();
        timeout = nextTimeout) {
     nextTimeout = timeout->Next();
 
     if (timeout->mFiringDepth != firingDepth) {
@@ -9421,17 +9423,26 @@ nsresult nsGlobalWindow::ResetTimersForN
                    NS_ERROR_NOT_INITIALIZED);
 
   if (IsFrozen() || mTimeoutsSuspendDepth) {
     return NS_OK;
   }
 
   TimeStamp now = TimeStamp::Now();
 
-  for (nsTimeout *timeout = FirstTimeout(); IsTimeout(timeout); ) {
+  // If mTimeoutInsertionPoint is non-null, we're in the middle of firing
+  // timers and the timers we're planning to fire all come before
+  // mTimeoutInsertionPoint; mTimeoutInsertionPoint itself is a dummy timeout
+  // with an mWhen that may be semi-bogus.  In that case, we don't need to do
+  // anything with mTimeoutInsertionPoint or anything before it, so should
+  // start at the timer after mTimeoutInsertionPoint, if there is one.
+  // Otherwise, start at the beginning of the list.
+  for (nsTimeout *timeout = mTimeoutInsertionPoint ?
+         mTimeoutInsertionPoint->Next() : FirstTimeout();
+       IsTimeout(timeout); ) {
     // It's important that this check be <= so that we guarantee that
     // taking NS_MAX with |now| won't make a quantity equal to
     // timeout->mWhen below.
     if (timeout->mWhen <= now) {
       timeout = timeout->Next();
       continue;
     }
 
--- a/dom/base/nsGlobalWindow.h
+++ b/dom/base/nsGlobalWindow.h
@@ -909,18 +909,24 @@ protected:
   nsCOMPtr<nsIDOMStorage>      mSessionStorage;
 
   nsCOMPtr<nsIXPConnectJSObjectHolder> mInnerWindowHolder;
   nsCOMPtr<nsIPrincipal> mOpenerScriptPrincipal; // strong; used to determine
                                                  // whether to clear scope
 
   // These member variable are used only on inner windows.
   nsRefPtr<nsEventListenerManager> mListenerManager;
+  // mTimeouts is generally sorted by mWhen, unless mTimeoutInsertionPoint is
+  // non-null.  In that case, the dummy timeout pointed to by
+  // mTimeoutInsertionPoint may have a later mWhen than some of the timeouts
+  // that come after it.
   PRCList                       mTimeouts;
   // If mTimeoutInsertionPoint is non-null, insertions should happen after it.
+  // This is a dummy timeout at the moment; if that ever changes, the logic in
+  // ResetTimersForNonBackgroundWindow needs to change.
   nsTimeout*                    mTimeoutInsertionPoint;
   PRUint32                      mTimeoutPublicIdCounter;
   PRUint32                      mTimeoutFiringDepth;
   nsRefPtr<nsLocation>          mLocation;
   nsRefPtr<nsHistory>           mHistory;
 
   // Holder of the dummy java plugin, used to expose window.java and
   // window.packages.
--- a/gfx/2d/2D.h
+++ b/gfx/2d/2D.h
@@ -241,32 +241,35 @@ class RadialGradientPattern : public Pat
 {
 public:
   /*
    * aBegin Start of the linear gradient
    * aEnd End of the linear gradient
    * aStops GradientStops object for this gradient, this should match the
    *        backend type of the draw target this pattern will be used with.
    */
-  RadialGradientPattern(const Point &aCenter,
-                        const Point &aOrigin,
-                        Float aRadius,
+  RadialGradientPattern(const Point &aCenter1,
+                        const Point &aCenter2,
+                        Float aRadius1,
+                        Float aRadius2,
                         GradientStops *aStops)
-    : mCenter(aCenter)
-    , mOrigin(aOrigin)
-    , mRadius(aRadius)
+    : mCenter1(aCenter1)
+    , mCenter2(aCenter2)
+    , mRadius1(aRadius1)
+    , mRadius2(aRadius2)
     , mStops(aStops)
   {
   }
 
   virtual PatternType GetType() const { return PATTERN_RADIAL_GRADIENT; }
 
-  Point mCenter;
-  Point mOrigin;
-  Float mRadius;
+  Point mCenter1;
+  Point mCenter2;
+  Float mRadius1;
+  Float mRadius2;
   RefPtr<GradientStops> mStops;
 };
 
 /*
  * This class is used for Surface Patterns, they wrap a surface and a
  * repetition mode for the surface. This may be used on the stack.
  */
 class SurfacePattern : public Pattern
--- a/gfx/2d/DrawTargetD2D.cpp
+++ b/gfx/2d/DrawTargetD2D.cpp
@@ -224,17 +224,17 @@ void
 DrawTargetD2D::DrawSurface(SourceSurface *aSurface,
                            const Rect &aDest,
                            const Rect &aSource,
                            const DrawSurfaceOptions &aSurfOptions,
                            const DrawOptions &aOptions)
 {
   RefPtr<ID2D1Bitmap> bitmap;
 
-  ID2D1RenderTarget *rt = GetRTForOperator(aOptions.mCompositionOp);
+  ID2D1RenderTarget *rt = GetRTForOperation(aOptions.mCompositionOp, ColorPattern(Color()));
   
   PrepareForDrawing(rt);
 
   Rect srcRect = aSource;
 
   switch (aSurface->GetType()) {
 
   case SURFACE_D2D1_BITMAP:
@@ -274,17 +274,17 @@ DrawTargetD2D::DrawSurface(SourceSurface
         srcSurf->mDrawTarget->mDependentTargets.push_back(this);
       }
     }
     break;
   }
 
   rt->DrawBitmap(bitmap, D2DRect(aDest), aOptions.mAlpha, D2DFilter(aSurfOptions.mFilter), D2DRect(srcRect));
 
-  FinalizeRTForOperator(aOptions.mCompositionOp, aDest);
+  FinalizeRTForOperation(aOptions.mCompositionOp, ColorPattern(Color()), aDest);
 }
 
 void
 DrawTargetD2D::DrawSurfaceWithShadow(SourceSurface *aSurface,
                                      const Point &aDest,
                                      const Color &aColor,
                                      const Point &aOffset,
                                      Float aSigma,
@@ -688,145 +688,145 @@ DrawTargetD2D::CopySurface(SourceSurface
                   D2DRect(srcRect));
 }
 
 void
 DrawTargetD2D::FillRect(const Rect &aRect,
                         const Pattern &aPattern,
                         const DrawOptions &aOptions)
 {
-  ID2D1RenderTarget *rt = GetRTForOperator(aOptions.mCompositionOp);
+  ID2D1RenderTarget *rt = GetRTForOperation(aOptions.mCompositionOp, aPattern);
 
   PrepareForDrawing(rt);
 
   RefPtr<ID2D1Brush> brush = CreateBrushForPattern(aPattern, aOptions.mAlpha);
 
   if (brush) {
     rt->FillRectangle(D2DRect(aRect), brush);
   }
 
-  FinalizeRTForOperator(aOptions.mCompositionOp, aRect);
+  FinalizeRTForOperation(aOptions.mCompositionOp, aPattern, aRect);
 }
 
 void
 DrawTargetD2D::StrokeRect(const Rect &aRect,
                           const Pattern &aPattern,
                           const StrokeOptions &aStrokeOptions,
                           const DrawOptions &aOptions)
 {
-  ID2D1RenderTarget *rt = GetRTForOperator(aOptions.mCompositionOp);
+  ID2D1RenderTarget *rt = GetRTForOperation(aOptions.mCompositionOp, aPattern);
 
   PrepareForDrawing(rt);
 
   RefPtr<ID2D1Brush> brush = CreateBrushForPattern(aPattern, aOptions.mAlpha);
 
   RefPtr<ID2D1StrokeStyle> strokeStyle = CreateStrokeStyleForOptions(aStrokeOptions);
 
   if (brush && strokeStyle) {
     rt->DrawRectangle(D2DRect(aRect), brush, aStrokeOptions.mLineWidth, strokeStyle);
   }
 
-  FinalizeRTForOperator(aOptions.mCompositionOp, aRect);
+  FinalizeRTForOperation(aOptions.mCompositionOp, aPattern, aRect);
 }
 
 void
 DrawTargetD2D::StrokeLine(const Point &aStart,
                           const Point &aEnd,
                           const Pattern &aPattern,
                           const StrokeOptions &aStrokeOptions,
                           const DrawOptions &aOptions)
 {
-  ID2D1RenderTarget *rt = GetRTForOperator(aOptions.mCompositionOp);
+  ID2D1RenderTarget *rt = GetRTForOperation(aOptions.mCompositionOp, aPattern);
 
   PrepareForDrawing(rt);
 
   RefPtr<ID2D1Brush> brush = CreateBrushForPattern(aPattern, aOptions.mAlpha);
 
   RefPtr<ID2D1StrokeStyle> strokeStyle = CreateStrokeStyleForOptions(aStrokeOptions);
 
   if (brush && strokeStyle) {
     rt->DrawLine(D2DPoint(aStart), D2DPoint(aEnd), brush, aStrokeOptions.mLineWidth, strokeStyle);
   }
 
-  FinalizeRTForOperator(aOptions.mCompositionOp, Rect(0, 0, Float(mSize.width), Float(mSize.height)));
+  FinalizeRTForOperation(aOptions.mCompositionOp, aPattern, Rect(0, 0, Float(mSize.width), Float(mSize.height)));
 }
 
 void
 DrawTargetD2D::Stroke(const Path *aPath,
                       const Pattern &aPattern,
                       const StrokeOptions &aStrokeOptions,
                       const DrawOptions &aOptions)
 {
   if (aPath->GetBackendType() != BACKEND_DIRECT2D) {
     gfxDebug() << *this << ": Ignoring drawing call for incompatible path.";
     return;
   }
 
   const PathD2D *d2dPath = static_cast<const PathD2D*>(aPath);
 
-  ID2D1RenderTarget *rt = GetRTForOperator(aOptions.mCompositionOp);
+  ID2D1RenderTarget *rt = GetRTForOperation(aOptions.mCompositionOp, aPattern);
 
   PrepareForDrawing(rt);
 
   RefPtr<ID2D1Brush> brush = CreateBrushForPattern(aPattern, aOptions.mAlpha);
 
   RefPtr<ID2D1StrokeStyle> strokeStyle = CreateStrokeStyleForOptions(aStrokeOptions);
 
   if (brush && strokeStyle) {
     rt->DrawGeometry(d2dPath->mGeometry, brush, aStrokeOptions.mLineWidth, strokeStyle);
   }
 
-  FinalizeRTForOperator(aOptions.mCompositionOp, Rect(0, 0, Float(mSize.width), Float(mSize.height)));
+  FinalizeRTForOperation(aOptions.mCompositionOp, aPattern, Rect(0, 0, Float(mSize.width), Float(mSize.height)));
 }
 
 void
 DrawTargetD2D::Fill(const Path *aPath,
                     const Pattern &aPattern,
                     const DrawOptions &aOptions)
 {
   if (aPath->GetBackendType() != BACKEND_DIRECT2D) {
     gfxDebug() << *this << ": Ignoring drawing call for incompatible path.";
     return;
   }
 
   const PathD2D *d2dPath = static_cast<const PathD2D*>(aPath);
 
-  ID2D1RenderTarget *rt = GetRTForOperator(aOptions.mCompositionOp);
+  ID2D1RenderTarget *rt = GetRTForOperation(aOptions.mCompositionOp, aPattern);
 
   PrepareForDrawing(rt);
 
   RefPtr<ID2D1Brush> brush = CreateBrushForPattern(aPattern, aOptions.mAlpha);
 
   if (brush) {
     rt->FillGeometry(d2dPath->mGeometry, brush);
   }
 
   Rect bounds;
   if (aOptions.mCompositionOp != OP_OVER) {
     D2D1_RECT_F d2dbounds;
     d2dPath->mGeometry->GetBounds(D2D1::IdentityMatrix(), &d2dbounds);
     bounds = ToRect(d2dbounds);
   }
-  FinalizeRTForOperator(aOptions.mCompositionOp, bounds);
+  FinalizeRTForOperation(aOptions.mCompositionOp, aPattern, bounds);
 }
 
 void
 DrawTargetD2D::FillGlyphs(ScaledFont *aFont,
                           const GlyphBuffer &aBuffer,
                           const Pattern &aPattern,
                           const DrawOptions &aOptions)
 {
   if (aFont->GetType() != FONT_DWRITE) {
     gfxDebug() << *this << ": Ignoring drawing call for incompatible font.";
     return;
   }
 
   ScaledFontDWrite *font = static_cast<ScaledFontDWrite*>(aFont);
 
-  ID2D1RenderTarget *rt = GetRTForOperator(aOptions.mCompositionOp);
+  ID2D1RenderTarget *rt = GetRTForOperation(aOptions.mCompositionOp, aPattern);
 
   PrepareForDrawing(rt);
 
   RefPtr<ID2D1Brush> brush = CreateBrushForPattern(aPattern, aOptions.mAlpha);
 
   DWRITE_GLYPH_RUN glyphRun;
 
   glyphRun.bidiLevel = 0;
@@ -852,17 +852,17 @@ DrawTargetD2D::FillGlyphs(ScaledFont *aF
   glyphRun.glyphAdvances = &advances.front();
   glyphRun.glyphIndices = &indices.front();
   glyphRun.glyphOffsets = &offsets.front();
 
   if (brush) {
     rt->DrawGlyphRun(D2D1::Point2F(), &glyphRun, brush);
   }
 
-  FinalizeRTForOperator(aOptions.mCompositionOp, Rect(0, 0, (Float)mSize.width, (Float)mSize.height));
+  FinalizeRTForOperation(aOptions.mCompositionOp, aPattern, Rect(0, 0, (Float)mSize.width, (Float)mSize.height));
 }
 
 void
 DrawTargetD2D::PushClip(const Path *aPath)
 {
   if (aPath->GetBackendType() != BACKEND_DIRECT2D) {
     gfxDebug() << *this << ": Ignoring clipping call for incompatible path.";
     return;
@@ -981,23 +981,23 @@ DrawTargetD2D::CreatePathBuilder(FillRul
   if (aFillRule == FILL_WINDING) {
     sink->SetFillMode(D2D1_FILL_MODE_WINDING);
   }
 
   return new PathBuilderD2D(sink, path, aFillRule);
 }
 
 TemporaryRef<GradientStops>
-DrawTargetD2D::CreateGradientStops(GradientStop *aStops, uint32_t aNumStops) const
+DrawTargetD2D::CreateGradientStops(GradientStop *rawStops, uint32_t aNumStops) const
 {
   D2D1_GRADIENT_STOP *stops = new D2D1_GRADIENT_STOP[aNumStops];
 
   for (uint32_t i = 0; i < aNumStops; i++) {
-    stops[i].position = aStops[i].offset;
-    stops[i].color = D2DColor(aStops[i].color);
+    stops[i].position = rawStops[i].offset;
+    stops[i].color = D2DColor(rawStops[i].color);
   }
 
   RefPtr<ID2D1GradientStopCollection> stopCollection;
 
   HRESULT hr = mRT->CreateGradientStopCollection(stops, aNumStops, byRef(stopCollection));
 
   if (FAILED(hr)) {
     gfxWarning() << "Failed to create GradientStopCollection. Code: " << hr;
@@ -1285,19 +1285,19 @@ DrawTargetD2D::GetBlendStateForOperator(
 
   return mPrivateData->mBlendStates[aOperator];
 }
 
 /* This function prepares the temporary RT for drawing and returns it when a
  * drawing operation other than OVER is required.
  */
 ID2D1RenderTarget*
-DrawTargetD2D::GetRTForOperator(CompositionOp aOperator)
+DrawTargetD2D::GetRTForOperation(CompositionOp aOperator, const Pattern &aPattern)
 {
-  if (aOperator == OP_OVER) {
+  if (aOperator == OP_OVER && !IsPatternSupportedByD2D(aPattern)) {
     return mRT;
   }
 
   PopAllClips();
 
   if (mTempRT) {
     mTempRT->Clear(D2D1::ColorF(0, 0));
     return mTempRT;
@@ -1326,19 +1326,19 @@ DrawTargetD2D::GetRTForOperator(Composit
 /* This function blends back the content of a drawing operation (drawn to an
  * empty surface with OVER, so the surface now contains the source operation
  * contents) to the rendertarget using the requested composition operation.
  * In order to respect clip for operations which are unbound by their mask,
  * the old content of the surface outside the clipped area may be blended back
  * to the surface.
  */
 void
-DrawTargetD2D::FinalizeRTForOperator(CompositionOp aOperator, const Rect &aBounds)
+DrawTargetD2D::FinalizeRTForOperation(CompositionOp aOperator, const Pattern &aPattern, const Rect &aBounds)
 {
-  if (aOperator == OP_OVER) {
+  if (aOperator == OP_OVER && !IsPatternSupportedByD2D(aPattern)) {
     return;
   }
 
   if (!mTempRT) {
     return;
   }
 
   for (unsigned int i = 0; i < mPushedClips.size(); i++) {
@@ -1372,23 +1372,36 @@ DrawTargetD2D::FinalizeRTForOperator(Com
   viewport.MaxDepth = 1;
   viewport.MinDepth = 0;
   viewport.Height = mSize.height;
   viewport.Width = mSize.width;
   viewport.TopLeftX = 0;
   viewport.TopLeftY = 0;
 
   mDevice->RSSetViewports(1, &viewport);
-  mPrivateData->mEffect->GetVariableByName("tex")->AsShaderResource()->SetResource(mSRView);
   mPrivateData->mEffect->GetVariableByName("QuadDesc")->AsVector()->
     SetFloatVector(ShaderConstantRectD3D10(-1.0f, 1.0f, 2.0f, -2.0f));
-  mPrivateData->mEffect->GetVariableByName("TexCoords")->AsVector()->
-    SetFloatVector(ShaderConstantRectD3D10(0, 0, 1.0f, 1.0f));
+
+  if (!IsPatternSupportedByD2D(aPattern)) {
+    mPrivateData->mEffect->GetVariableByName("TexCoords")->AsVector()->
+      SetFloatVector(ShaderConstantRectD3D10(0, 0, 1.0f, 1.0f));
+    mPrivateData->mEffect->GetVariableByName("tex")->AsShaderResource()->SetResource(mSRView);
+    mPrivateData->mEffect->GetTechniqueByName("SampleTexture")->GetPassByIndex(0)->Apply(0);
+  } else if (aPattern.GetType() == PATTERN_RADIAL_GRADIENT) {
+    const RadialGradientPattern *pat = static_cast<const RadialGradientPattern*>(&aPattern);
 
-  mPrivateData->mEffect->GetTechniqueByName("SampleTexture")->GetPassByIndex(0)->Apply(0);
+    if (pat->mCenter1 == pat->mCenter2 && pat->mRadius1 == pat->mRadius2) {
+      // Draw nothing!
+      return;
+    }
+
+    mPrivateData->mEffect->GetVariableByName("mask")->AsShaderResource()->SetResource(mSRView);
+
+    SetupEffectForRadialGradient(pat);
+  }
 
   mDevice->OMSetBlendState(GetBlendStateForOperator(aOperator), NULL, 0xffffffff);
   
   mDevice->Draw(4, 0);
 }
 
 TemporaryRef<ID2D1Geometry>
 DrawTargetD2D::GetClippedGeometry()
@@ -1499,16 +1512,22 @@ DrawTargetD2D::PopAllClips()
   
     mClipsArePushed = false;
   }
 }
 
 TemporaryRef<ID2D1Brush>
 DrawTargetD2D::CreateBrushForPattern(const Pattern &aPattern, Float aAlpha)
 {
+  if (IsPatternSupportedByD2D(aPattern)) {
+    RefPtr<ID2D1SolidColorBrush> colBrush;
+    mRT->CreateSolidColorBrush(D2D1::ColorF(1.0f, 1.0f, 1.0f, 1.0f), byRef(colBrush));
+    return colBrush;
+  }
+
   if (aPattern.GetType() == PATTERN_COLOR) {
     RefPtr<ID2D1SolidColorBrush> colBrush;
     Color color = static_cast<const ColorPattern*>(&aPattern)->mColor;
     mRT->CreateSolidColorBrush(D2D1::ColorF(color.r, color.g,
                                             color.b, color.a),
                                D2D1::BrushProperties(aAlpha),
                                byRef(colBrush));
     return colBrush;
@@ -1537,23 +1556,25 @@ DrawTargetD2D::CreateBrushForPattern(con
 
     GradientStopsD2D *stops = static_cast<GradientStopsD2D*>(pat->mStops.get());
 
     if (!stops) {
       gfxDebug() << "No stops specified for gradient pattern.";
       return NULL;
     }
 
-    mRT->CreateRadialGradientBrush(D2D1::RadialGradientBrushProperties(D2DPoint(pat->mCenter),
-                                                                       D2DPoint(pat->mOrigin - pat->mCenter),
-                                                                       pat->mRadius,
-                                                                       pat->mRadius),
-                                   D2D1::BrushProperties(aAlpha),
-                                   stops->mStopCollection,
-                                   byRef(gradBrush));
+    // This will not be a complex radial gradient brush.
+    mRT->CreateRadialGradientBrush(
+      D2D1::RadialGradientBrushProperties(D2DPoint(pat->mCenter1),
+                                          D2D1::Point2F(),
+                                          pat->mRadius2, pat->mRadius2),
+      D2D1::BrushProperties(aAlpha),
+      stops->mStopCollection,
+      byRef(gradBrush));
+
     return gradBrush;
   } else if (aPattern.GetType() == PATTERN_SURFACE) {
     RefPtr<ID2D1BitmapBrush> bmBrush;
     const SurfacePattern *pat =
       static_cast<const SurfacePattern*>(&aPattern);
 
     if (!pat->mSurface) {
       gfxDebug() << "No source surface specified for surface pattern";
@@ -1682,16 +1703,143 @@ DrawTargetD2D::CreateStrokeStyleForOptio
 
   if (FAILED(hr)) {
     gfxWarning() << "Failed to create Direct2D stroke style.";
   }
 
   return style;
 }
 
+TemporaryRef<ID3D10Texture1D>
+DrawTargetD2D::CreateGradientTexture(const GradientStopsD2D *aStops)
+{
+  CD3D10_TEXTURE1D_DESC desc(DXGI_FORMAT_B8G8R8A8_UNORM, 4096, 1, 1);
+
+  std::vector<D2D1_GRADIENT_STOP> rawStops;
+  rawStops.resize(aStops->mStopCollection->GetGradientStopCount());
+  aStops->mStopCollection->GetGradientStops(&rawStops.front(), rawStops.size());
+
+  std::vector<unsigned char> textureData;
+  textureData.resize(4096 * 4);
+  unsigned char *texData = &textureData.front();
+
+  float prevColorPos = 0;
+  float nextColorPos = 1.0f;
+  D2D1_COLOR_F prevColor = rawStops[0].color;
+  D2D1_COLOR_F nextColor = prevColor;
+
+  if (rawStops.size() >= 2) {
+    nextColor = rawStops[1].color;
+    nextColorPos = rawStops[1].position;
+  }
+
+  uint32_t stopPosition = 2;
+
+  // Not the most optimized way but this will do for now.
+  for (int i = 0; i < 4096; i++) {
+    // The 4095 seems a little counter intuitive, but we want the gradient
+    // color at offset 0 at the first pixel, and at offset 1.0f at the last
+    // pixel.
+    float pos = float(i) / 4095;
+
+    if (pos > nextColorPos) {
+      prevColor = nextColor;
+      prevColorPos = nextColorPos;
+      if (rawStops.size() > stopPosition) {
+        nextColor = rawStops[stopPosition].color;
+        nextColorPos = rawStops[stopPosition++].position;
+      } else {
+        nextColorPos = 1.0f;
+      }
+    }
+
+    float interp = (pos - prevColorPos) / (nextColorPos - prevColorPos);
+
+    Color newColor(prevColor.r + (nextColor.r - prevColor.r) * interp,
+                    prevColor.g + (nextColor.g - prevColor.g) * interp,
+                    prevColor.b + (nextColor.b - prevColor.b) * interp,
+                    prevColor.a + (nextColor.a - prevColor.a) * interp);
+
+    texData[i * 4] = (char)(255.0f * newColor.b);
+    texData[i * 4 + 1] = (char)(255.0f * newColor.g);
+    texData[i * 4 + 2] = (char)(255.0f * newColor.r);
+    texData[i * 4 + 3] = (char)(255.0f * newColor.a);
+  }
+
+  D3D10_SUBRESOURCE_DATA data;
+  data.pSysMem = &textureData.front();
+
+  RefPtr<ID3D10Texture1D> tex;
+  mDevice->CreateTexture1D(&desc, &data, byRef(tex));
+
+  return tex;
+}
+
+void
+DrawTargetD2D::SetupEffectForRadialGradient(const RadialGradientPattern *aPattern)
+{
+  mPrivateData->mEffect->GetTechniqueByName("SampleRadialGradient")->GetPassByIndex(0)->Apply(0);
+  mPrivateData->mEffect->GetVariableByName("MaskTexCoords")->AsVector()->
+    SetFloatVector(ShaderConstantRectD3D10(0, 0, 1.0f, 1.0f));
+
+  float dimensions[] = { float(mSize.width), float(mSize.height), 0, 0 };
+  mPrivateData->mEffect->GetVariableByName("dimensions")->AsVector()->
+    SetFloatVector(dimensions);
+
+  const GradientStopsD2D *stops =
+    static_cast<const GradientStopsD2D*>(aPattern->mStops.get());
+
+  RefPtr<ID3D10Texture1D> tex = CreateGradientTexture(stops);
+
+  RefPtr<ID3D10ShaderResourceView> srView;
+  mDevice->CreateShaderResourceView(tex, NULL, byRef(srView));
+
+  mPrivateData->mEffect->GetVariableByName("tex")->AsShaderResource()->SetResource(srView);
+
+  Point dc = aPattern->mCenter2 - aPattern->mCenter1;
+  float dr = aPattern->mRadius2 - aPattern->mRadius1;
+
+  float diffv[] = { dc.x, dc.y, dr, 0 };
+  mPrivateData->mEffect->GetVariableByName("diff")->AsVector()->
+    SetFloatVector(diffv);
+
+  float center1[] = { aPattern->mCenter1.x, aPattern->mCenter1.y, dr, 0 };
+  mPrivateData->mEffect->GetVariableByName("center1")->AsVector()->
+    SetFloatVector(center1);
+
+  mPrivateData->mEffect->GetVariableByName("radius1")->AsScalar()->
+    SetFloat(aPattern->mRadius1);
+  mPrivateData->mEffect->GetVariableByName("sq_radius1")->AsScalar()->
+    SetFloat(pow(aPattern->mRadius1, 2));
+
+  Matrix invTransform = mTransform;
+
+  if (!invTransform.Invert()) {
+    // Bail if the matrix is singular.
+    return;
+  }
+  float matrix[] = { invTransform._11, invTransform._12, 0, 0,
+                      invTransform._21, invTransform._22, 0, 0,
+                      invTransform._31, invTransform._32, 1.0f, 0,
+                      0, 0, 0, 1.0f };
+
+  mPrivateData->mEffect->GetVariableByName("DeviceSpaceToUserSpace")->
+    AsMatrix()->SetMatrix(matrix);
+
+  float A = dc.x * dc.x + dc.y * dc.y - dr * dr;
+  if (A == 0) {
+    mPrivateData->mEffect->GetTechniqueByName("SampleRadialGradient")->
+      GetPassByIndex(1)->Apply(0);
+  } else {
+    mPrivateData->mEffect->GetVariableByName("A")->AsScalar()->SetFloat(A);
+    mPrivateData->mEffect->GetTechniqueByName("SampleRadialGradient")->
+      GetPassByIndex(0)->Apply(0);
+  }
+}
+
 ID2D1Factory*
 DrawTargetD2D::factory()
 {
   if (mFactory) {
     return mFactory;
   }
 
   D2D1CreateFactoryFunc createD2DFactory;
--- a/gfx/2d/DrawTargetD2D.h
+++ b/gfx/2d/DrawTargetD2D.h
@@ -45,16 +45,17 @@
 
 #include <vector>
 #include <sstream>
 
 namespace mozilla {
 namespace gfx {
 
 class SourceSurfaceD2DTarget;
+class GradientStopsD2D;
 
 struct PrivateD3D10DataD2D
 {
   RefPtr<ID3D10Effect> mEffect;
   RefPtr<ID3D10InputLayout> mInputLayout;
   RefPtr<ID3D10Buffer> mVB;
   RefPtr<ID3D10BlendState> mBlendStates[OP_COUNT];
 };
@@ -149,27 +150,32 @@ private:
   bool InitD2DRenderTarget();
   void PrepareForDrawing(ID2D1RenderTarget *aRT);
 
   // This function will mark the surface as changing, and make sure any
   // copy-on-write snapshots are notified.
   void MarkChanged();
 
   ID3D10BlendState *GetBlendStateForOperator(CompositionOp aOperator);
-  ID2D1RenderTarget *GetRTForOperator(CompositionOp aOperator);
-  void FinalizeRTForOperator(CompositionOp aOperator, const Rect &aBounds);
-  void EnsureViews();
+  ID2D1RenderTarget *GetRTForOperation(CompositionOp aOperator, const Pattern &aPattern);
+  void FinalizeRTForOperation(CompositionOp aOperator, const Pattern &aPattern, const Rect &aBounds);  void EnsureViews();
   void PopAllClips();
 
   TemporaryRef<ID2D1RenderTarget> CreateRTForTexture(ID3D10Texture2D *aTexture);
   TemporaryRef<ID2D1Geometry> GetClippedGeometry();
 
   TemporaryRef<ID2D1Brush> CreateBrushForPattern(const Pattern &aPattern, Float aAlpha = 1.0f);
   TemporaryRef<ID2D1StrokeStyle> CreateStrokeStyleForOptions(const StrokeOptions &aStrokeOptions);
 
+  TemporaryRef<ID3D10Texture1D> CreateGradientTexture(const GradientStopsD2D *aStops);
+
+  void SetupEffectForRadialGradient(const RadialGradientPattern *aPattern);
+
+  static const uint32_t test = 4;
+
   IntSize mSize;
 
   RefPtr<ID3D10Device1> mDevice;
   RefPtr<ID3D10Texture2D> mTexture;
   mutable RefPtr<ID2D1RenderTarget> mRT;
 
   // Temporary texture and render target used for supporting alternative operators.
   RefPtr<ID3D10Texture2D> mTempTexture;
--- a/gfx/2d/HelpersD2D.h
+++ b/gfx/2d/HelpersD2D.h
@@ -146,16 +146,39 @@ static inline int BytesPerPixel(SurfaceF
   switch (aFormat) {
   case FORMAT_A8:
     return 1;
   default:
     return 4;
   }
 }
 
+static bool IsPatternSupportedByD2D(const Pattern &aPattern)
+{
+  if (aPattern.GetType() != PATTERN_RADIAL_GRADIENT) {
+    return false;
+  }
+
+  const RadialGradientPattern *pat =
+    static_cast<const RadialGradientPattern*>(&aPattern);
+  
+  if (pat->mRadius1 != 0) {
+    return true;
+  }
+
+  Point diff = pat->mCenter2 - pat->mCenter1;
+
+  if (sqrt(diff.x * diff.x + diff.y * diff.y) >= pat->mRadius2) {
+    // Inner point lies outside the circle.
+    return true;
+  }
+
+  return false;
+}
+
 /**
  * This structure is used to pass rectangles to our shader constant. We can use
  * this for passing rectangular areas to SetVertexShaderConstant. In the format
  * of a 4 component float(x,y,width,height). Our vertex shader can then use
  * this to construct rectangular positions from the 0,0-1,1 quad that we source
  * it with.
  */
 struct ShaderConstantRectD3D10
--- a/gfx/2d/ShadersD2D.fx
+++ b/gfx/2d/ShadersD2D.fx
@@ -19,23 +19,42 @@ cbuffer cb0
 cbuffer cb1
 {
     float4 BlurOffsetsH[3];
     float4 BlurOffsetsV[3];
     float4 BlurWeights[3];
     float4 ShadowColor;
 }
 
+cbuffer cb2
+{
+    float3x3 DeviceSpaceToUserSpace;
+    float2 dimensions;
+    // Precalculate as much as we can!
+    float3 diff;
+    float2 center1;
+    float A;
+    float radius1;
+    float sq_radius1;
+}
+
 struct VS_OUTPUT
 {
     float4 Position : SV_Position;
     float2 TexCoord : TEXCOORD0;
     float2 MaskTexCoord : TEXCOORD1;
 };
 
+struct VS_RADIAL_OUTPUT
+{
+    float4 Position : SV_Position;
+    float2 MaskTexCoord : TEXCOORD0;
+    float2 PixelCoord : TEXCOORD1;
+};
+
 Texture2D tex;
 Texture2D mask;
 
 sampler sSampler = sampler_state {
     Filter = MIN_MAG_MIP_LINEAR;
     Texture = tex;
     AddressU = Clamp;
     AddressV = Clamp;
@@ -89,26 +108,107 @@ VS_OUTPUT SampleTextureVS(float3 pos : P
     Output.Position.z = 0;
     Output.TexCoord.x = pos.x * TexCoords.z + TexCoords.x;
     Output.TexCoord.y = pos.y * TexCoords.w + TexCoords.y;
     Output.MaskTexCoord.x = pos.x * MaskTexCoords.z + MaskTexCoords.x;
     Output.MaskTexCoord.y = pos.y * MaskTexCoords.w + MaskTexCoords.y;
     return Output;
 }
 
+VS_RADIAL_OUTPUT SampleRadialVS(float3 pos : POSITION)
+{
+    VS_RADIAL_OUTPUT Output;
+    Output.Position.w = 1.0f;
+    Output.Position.x = pos.x * QuadDesc.z + QuadDesc.x;
+    Output.Position.y = pos.y * QuadDesc.w + QuadDesc.y;
+    Output.Position.z = 0;
+    Output.MaskTexCoord.x = pos.x * MaskTexCoords.z + MaskTexCoords.x;
+    Output.MaskTexCoord.y = pos.y * MaskTexCoords.w + MaskTexCoords.y;
+
+    // For the radial gradient pixel shader we need to pass in the pixel's
+    // coordinates in user space for the color to be correctly determined.
+
+    Output.PixelCoord.x = ((Output.Position.x + 1.0f) / 2.0f) * dimensions.x;
+    Output.PixelCoord.y = ((1.0f - Output.Position.y) / 2.0f) * dimensions.y;
+    Output.PixelCoord.xy = mul(float3(Output.PixelCoord.x, Output.PixelCoord.y, 1.0f), DeviceSpaceToUserSpace).xy;
+    return Output;
+}
+
 float4 SampleTexturePS( VS_OUTPUT In) : SV_Target
 {
     return tex.Sample(sSampler, In.TexCoord);
 };
 
 float4 SampleMaskTexturePS( VS_OUTPUT In) : SV_Target
 {
     return tex.Sample(sSampler, In.TexCoord) * mask.Sample(sMaskSampler, In.MaskTexCoord).a;
 };
 
+float4 SampleRadialGradientPS( VS_RADIAL_OUTPUT In) : SV_Target
+{
+    // Radial gradient painting is defined as the set of circles whose centers
+    // are described by C(t) = (C2 - C1) * t + C1; with radii
+    // R(t) = (R2 - R1) * t + R1; for R(t) > 0. This shader solves the
+    // quadratic equation that arises when calculating t for pixel (x, y).
+    //
+    // A more extensive derrivation can be found in the pixman radial gradient
+    // code.
+ 
+    float2 p = In.PixelCoord;
+    float3 dp = float3(p - center1, radius1);
+
+    // dpx * dcx + dpy * dcy + r * dr
+    float B = dot(dp, diff);
+
+    float C = pow(dp.x, 2) + pow(dp.y, 2) - sq_radius1;
+
+    float det = pow(B, 2) - A * C;
+
+    if (det < 0) {
+      return float4(0, 0, 0, 0);
+    }
+
+    float sqrt_det = sqrt(abs(det));
+
+    float2 t = (B + float2(sqrt_det, -sqrt_det)) / A;
+
+    float2 isValid = step(float2(-radius1, -radius1), t * diff.z);
+
+    if (max(isValid.x, isValid.y) <= 0) {
+      return float4(0, 0, 0, 0);
+    }
+
+    float upper_t = lerp(t.y, t.x, isValid.x);
+
+    // Multiply the output color by the input mask for the operation.
+    return tex.Sample(sSampler, float2(upper_t, 0.5)) * mask.Sample(sMaskSampler, In.MaskTexCoord).a;
+};
+
+float4 SampleRadialGradientA0PS( VS_RADIAL_OUTPUT In) : SV_Target
+{
+    // This simpler shader is used for the degenerate case where A is 0,
+    // i.e. we're actually solving a linear equation.
+
+    float2 p = In.PixelCoord;
+    float3 dp = float3(p - center1, radius1);
+
+    // dpx * dcx + dpy * dcy + r * dr
+    float B = dot(dp, diff);
+
+    float C = pow(dp.x, 2) + pow(dp.y, 2) - pow(radius1, 2);
+
+    float t = 0.5 * C / B;
+
+    if (-radius1 >= t * diff.z) {
+      return float4(0, 0, 0, 0);
+    }
+
+    return tex.Sample(sSampler, float2(t, 0.5)) * mask.Sample(sMaskSampler, In.MaskTexCoord).a;
+};
+
 float4 SampleShadowHPS( VS_OUTPUT In) : SV_Target
 {
     float outputStrength = 0;
 
     outputStrength += BlurWeights[0].x * tex.Sample(sShadowSampler, float2(In.TexCoord.x + BlurOffsetsH[0].x, In.TexCoord.y)).a;
     outputStrength += BlurWeights[0].y * tex.Sample(sShadowSampler, float2(In.TexCoord.x + BlurOffsetsH[0].y, In.TexCoord.y)).a;
     outputStrength += BlurWeights[0].z * tex.Sample(sShadowSampler, float2(In.TexCoord.x + BlurOffsetsH[0].z, In.TexCoord.y)).a;
     outputStrength += BlurWeights[0].w * tex.Sample(sShadowSampler, float2(In.TexCoord.x + BlurOffsetsH[0].w, In.TexCoord.y)).a;
@@ -161,16 +261,34 @@ technique10 SampleTexture
     {
         SetRasterizerState(TextureRast);
         SetVertexShader(CompileShader(vs_4_0_level_9_3, SampleTextureVS()));
         SetGeometryShader(NULL);
         SetPixelShader(CompileShader(ps_4_0_level_9_3, SampleTexturePS()));
     }
 }
 
+technique10 SampleRadialGradient
+{
+    pass P0
+    {
+        SetRasterizerState(TextureRast);
+        SetVertexShader(CompileShader(vs_4_0_level_9_3, SampleRadialVS()));
+        SetGeometryShader(NULL);
+        SetPixelShader(CompileShader(ps_4_0_level_9_3, SampleRadialGradientPS()));
+    }
+    pass P1
+    {
+        SetRasterizerState(TextureRast);
+        SetVertexShader(CompileShader(vs_4_0_level_9_3, SampleRadialVS()));
+        SetGeometryShader(NULL);
+        SetPixelShader(CompileShader(ps_4_0_level_9_3, SampleRadialGradientA0PS()));
+    }
+}
+
 technique10 SampleMaskedTexture
 {
     pass P0
     {
         SetRasterizerState(TextureRast);
         SetVertexShader(CompileShader(vs_4_0_level_9_3, SampleTextureVS()));
         SetGeometryShader(NULL);
         SetPixelShader(CompileShader(ps_4_0_level_9_3, SampleMaskTexturePS()));
--- a/gfx/2d/ShadersD2D.h
+++ b/gfx/2d/ShadersD2D.h
@@ -1,30 +1,41 @@
 #if 0
 //
 // FX Version: fx_4_0
 // Child effect (requires effect pool): false
 //
-// 2 local buffer(s)
+// 3 local buffer(s)
 //
 cbuffer cb0
 {
     float4  QuadDesc;                   // Offset:    0, size:   16
     float4  TexCoords;                  // Offset:   16, size:   16
     float4  MaskTexCoords;              // Offset:   32, size:   16
 }
 
 cbuffer cb1
 {
     float4  BlurOffsetsH[3];            // Offset:    0, size:   48
     float4  BlurOffsetsV[3];            // Offset:   48, size:   48
     float4  BlurWeights[3];             // Offset:   96, size:   48
     float4  ShadowColor;                // Offset:  144, size:   16
 }
 
+cbuffer cb2
+{
+    float3x3 DeviceSpaceToUserSpace;    // Offset:    0, size:   44
+    float2  dimensions;                 // Offset:   48, size:    8
+    float3  diff;                       // Offset:   64, size:   12
+    float2  center1;                    // Offset:   80, size:    8
+    float   A;                          // Offset:   88, size:    4
+    float   radius1;                    // Offset:   92, size:    4
+    float   sq_radius1;                 // Offset:   96, size:    4
+}
+
 //
 // 8 local object(s)
 //
 Texture2D tex;
 Texture2D mask;
 SamplerState sSampler
 {
     Filter   = uint(MIN_MAG_MIP_LINEAR /* 21 */);
@@ -65,17 +76,17 @@ BlendState ShadowBlendV
     BlendOp[0] = uint(ADD /* 1 */);
     SrcBlendAlpha[0] = uint(ONE /* 2 */);
     DestBlendAlpha[0] = uint(INV_SRC_ALPHA /* 6 */);
     BlendOpAlpha[0] = uint(ADD /* 1 */);
     RenderTargetWriteMask[0] = byte(0x0f);
 };
 
 //
-// 3 technique(s)
+// 4 technique(s)
 //
 technique10 SampleTexture
 {
     pass P0
     {
         RasterizerState = TextureRast;
         VertexShader = asm {
             //
@@ -214,16 +225,527 @@ technique10 SampleTexture
             ret 
             // Approximately 2 instruction slots used
                     
         };
     }
 
 }
 
+technique10 SampleRadialGradient
+{
+    pass P0
+    {
+        RasterizerState = TextureRast;
+        VertexShader = asm {
+            //
+            // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
+            //
+            //
+            // Buffer Definitions: 
+            //
+            // cbuffer cb0
+            // {
+            //
+            //   float4 QuadDesc;                   // Offset:    0 Size:    16
+            //   float4 TexCoords;                  // Offset:   16 Size:    16 [unused]
+            //   float4 MaskTexCoords;              // Offset:   32 Size:    16
+            //
+            // }
+            //
+            // cbuffer cb2
+            // {
+            //
+            //   float3x3 DeviceSpaceToUserSpace;   // Offset:    0 Size:    44
+            //   float2 dimensions;                 // Offset:   48 Size:     8
+            //   float3 diff;                       // Offset:   64 Size:    12 [unused]
+            //   float2 center1;                    // Offset:   80 Size:     8 [unused]
+            //   float A;                           // Offset:   88 Size:     4 [unused]
+            //   float radius1;                     // Offset:   92 Size:     4 [unused]
+            //   float sq_radius1;                  // Offset:   96 Size:     4 [unused]
+            //
+            // }
+            //
+            //
+            // Resource Bindings:
+            //
+            // Name                                 Type  Format         Dim Slot Elements
+            // ------------------------------ ---------- ------- ----------- ---- --------
+            // cb0                               cbuffer      NA          NA    0        1
+            // cb2                               cbuffer      NA          NA    1        1
+            //
+            //
+            //
+            // Input signature:
+            //
+            // Name                 Index   Mask Register SysValue Format   Used
+            // -------------------- ----- ------ -------- -------- ------ ------
+            // POSITION                 0   xyz         0     NONE  float   xy  
+            //
+            //
+            // Output signature:
+            //
+            // Name                 Index   Mask Register SysValue Format   Used
+            // -------------------- ----- ------ -------- -------- ------ ------
+            // SV_Position              0   xyzw        0      POS  float   xyzw
+            // TEXCOORD                 0   xy          1     NONE  float   xy  
+            // TEXCOORD                 1     zw        1     NONE  float     zw
+            //
+            //
+            // Constant buffer to DX9 shader constant mappings:
+            //
+            // Target Reg Buffer  Start Reg # of Regs        Data Conversion
+            // ---------- ------- --------- --------- ----------------------
+            // c1         cb0             0         1  ( FLT, FLT, FLT, FLT)
+            // c2         cb0             2         1  ( FLT, FLT, FLT, FLT)
+            // c3         cb1             0         2  ( FLT, FLT, FLT, FLT)
+            // c5         cb1             3         1  ( FLT, FLT, FLT, FLT)
+            //
+            //
+            // Runtime generated constant mappings:
+            //
+            // Target Reg                               Constant Description
+            // ---------- --------------------------------------------------
+            // c0                              Vertex Shader position offset
+            //
+            //
+            // Level9 shader bytecode:
+            //
+                vs_2_x
+                def c6, 1, 0.5, 0, 0
+                dcl_texcoord v0
+                mad oT0.xy, v0, c2.zwzw, c2
+                mad r0.xy, v0, c1.zwzw, c1
+                add r0.z, r0.x, c6.x
+                mul r0.z, r0.z, c5.x
+                mul r1.x, r0.z, c6.y
+                add r0.z, -r0.y, c6.x
+                add oPos.xy, r0, c0
+                mul r0.x, r0.z, c5.y
+                mul r1.y, r0.x, c6.y
+                mov r1.z, c6.x
+                dp3 oT0.w, r1, c3
+                dp3 oT0.z, r1, c4
+                mov oPos.zw, c6.xyzx
+            
+            // approximately 13 instruction slots used
+            vs_4_0
+            dcl_constantbuffer cb0[3], immediateIndexed
+            dcl_constantbuffer cb1[4], immediateIndexed
+            dcl_input v0.xy
+            dcl_output_siv o0.xyzw, position
+            dcl_output o1.xy
+            dcl_output o1.zw
+            dcl_temps 2
+            mov o0.zw, l(0,0,0,1.000000)
+            mad r0.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx
+            mov o0.xy, r0.xyxx
+            add r0.x, r0.x, l(1.000000)
+            add r0.y, -r0.y, l(1.000000)
+            mul r0.xy, r0.xyxx, cb1[3].xyxx
+            mul r1.xy, r0.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
+            mov r1.z, l(1.000000)
+            dp3 o1.z, r1.xyzx, cb1[0].xyzx
+            dp3 o1.w, r1.xyzx, cb1[1].xyzx
+            mad o1.xy, v0.xyxx, cb0[2].zwzz, cb0[2].xyxx
+            ret 
+            // Approximately 12 instruction slots used
+                    
+        };
+        GeometryShader = NULL;
+        PixelShader = asm {
+            //
+            // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
+            //
+            //
+            // Buffer Definitions: 
+            //
+            // cbuffer cb2
+            // {
+            //
+            //   float3x3 DeviceSpaceToUserSpace;   // Offset:    0 Size:    44 [unused]
+            //   float2 dimensions;                 // Offset:   48 Size:     8 [unused]
+            //   float3 diff;                       // Offset:   64 Size:    12
+            //   float2 center1;                    // Offset:   80 Size:     8
+            //   float A;                           // Offset:   88 Size:     4
+            //   float radius1;                     // Offset:   92 Size:     4
+            //   float sq_radius1;                  // Offset:   96 Size:     4
+            //
+            // }
+            //
+            //
+            // Resource Bindings:
+            //
+            // Name                                 Type  Format         Dim Slot Elements
+            // ------------------------------ ---------- ------- ----------- ---- --------
+            // sSampler                          sampler      NA          NA    0        1
+            // sMaskSampler                      sampler      NA          NA    1        1
+            // tex                               texture  float4          2d    0        1
+            // mask                              texture  float4          2d    1        1
+            // cb2                               cbuffer      NA          NA    0        1
+            //
+            //
+            //
+            // Input signature:
+            //
+            // Name                 Index   Mask Register SysValue Format   Used
+            // -------------------- ----- ------ -------- -------- ------ ------
+            // SV_Position              0   xyzw        0      POS  float       
+            // TEXCOORD                 0   xy          1     NONE  float   xy  
+            // TEXCOORD                 1     zw        1     NONE  float     zw
+            //
+            //
+            // Output signature:
+            //
+            // Name                 Index   Mask Register SysValue Format   Used
+            // -------------------- ----- ------ -------- -------- ------ ------
+            // SV_Target                0   xyzw        0   TARGET  float   xyzw
+            //
+            //
+            // Constant buffer to DX9 shader constant mappings:
+            //
+            // Target Reg Buffer  Start Reg # of Regs        Data Conversion
+            // ---------- ------- --------- --------- ----------------------
+            // c0         cb0             4         3  ( FLT, FLT, FLT, FLT)
+            //
+            //
+            // Sampler/Resource to DX9 shader sampler mappings:
+            //
+            // Target Sampler Source Sampler  Source Resource
+            // -------------- --------------- ----------------
+            // s0             s0              t0               
+            // s1             s1              t1               
+            //
+            //
+            // Level9 shader bytecode:
+            //
+                ps_2_x
+                def c3, 0.5, 0, 0, 0
+                def c4, 1, -1, 0, -0
+                dcl t0
+                dcl_2d s0
+                dcl_2d s1
+                add r0.xy, t0.wzzw, -c1
+                dp2add r0.w, r0, r0, -c2.x
+                mul r0.w, r0.w, c1.z
+                mov r0.z, c1.w
+                dp3 r0.x, r0, c0
+                mad r0.y, r0.x, r0.x, -r0.w
+                abs r0.z, r0.y
+                rsq r0.z, r0.z
+                rcp r1.x, r0.z
+                mov r1.yz, -r1.x
+                add r0.xzw, r0.x, r1.xyyz
+                rcp r1.x, c1.z
+                mul r0.xzw, r0, r1.x
+                mov r1.w, c1.w
+                mad r1.xyz, r0.xzww, c0.z, r1.w
+                cmp r2.x, r1.x, r0.x, r0.w
+                cmp r0.xzw, r1.xyyz, c4.xyxy, c4.zyzw
+                mov r2.y, c3.x
+                texld r1, t0, s1
+                texld r2, r2, s0
+                mul r1, r1.w, r2
+                add r0.w, r0.w, r0.x
+                cmp r0.x, r0.w, r0.x, r0.z
+                cmp r1, -r0.x, c4.z, r1
+                cmp r0, r0.y, r1, c4.z
+                mov oC0, r0
+            
+            // approximately 27 instruction slots used (2 texture, 25 arithmetic)
+            ps_4_0
+            dcl_constantbuffer cb0[7], immediateIndexed
+            dcl_sampler s0, mode_default
+            dcl_sampler s1, mode_default
+            dcl_resource_texture2d (float,float,float,float) t0
+            dcl_resource_texture2d (float,float,float,float) t1
+            dcl_input_ps linear v1.xy
+            dcl_input_ps linear v1.zw
+            dcl_output o0.xyzw
+            dcl_temps 3
+            add r0.xy, v1.zwzz, -cb0[5].xyxx
+            mov r0.z, cb0[5].w
+            dp3 r0.z, r0.xyzx, cb0[4].xyzx
+            dp2 r0.x, r0.xyxx, r0.xyxx
+            add r0.x, r0.x, -cb0[6].x
+            mul r0.x, r0.x, cb0[5].z
+            mad r0.x, r0.z, r0.z, -r0.x
+            lt r0.y, r0.x, l(0.000000)
+            sqrt r1.x, |r0.x|
+            mov r1.y, -r1.x
+            add r0.xz, r0.zzzz, r1.xxyx
+            div r0.xz, r0.xxzx, cb0[5].zzzz
+            mul r1.xy, r0.xzxx, cb0[4].zzzz
+            ge r1.xy, r1.xyxx, -cb0[5].wwww
+            and r1.xy, r1.xyxx, l(0x3f800000, 0x3f800000, 0, 0)
+            add r0.x, -r0.z, r0.x
+            mad r2.x, r1.x, r0.x, r0.z
+            mov r2.y, l(0.500000)
+            sample r2.xyzw, r2.xyxx, t0.xyzw, s0
+            if_nz r0.y
+              mov o0.xyzw, l(0,0,0,0)
+              ret 
+            endif 
+            max r0.x, r1.y, r1.x
+            ge r0.x, l(0.000000), r0.x
+            if_nz r0.x
+              mov o0.xyzw, l(0,0,0,0)
+              ret 
+            endif 
+            sample r0.xyzw, v1.xyxx, t1.xyzw, s1
+            mul o0.xyzw, r0.wwww, r2.xyzw
+            ret 
+            // Approximately 32 instruction slots used
+                    
+        };
+    }
+
+    pass P1
+    {
+        RasterizerState = TextureRast;
+        VertexShader = asm {
+            //
+            // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
+            //
+            //
+            // Buffer Definitions: 
+            //
+            // cbuffer cb0
+            // {
+            //
+            //   float4 QuadDesc;                   // Offset:    0 Size:    16
+            //   float4 TexCoords;                  // Offset:   16 Size:    16 [unused]
+            //   float4 MaskTexCoords;              // Offset:   32 Size:    16
+            //
+            // }
+            //
+            // cbuffer cb2
+            // {
+            //
+            //   float3x3 DeviceSpaceToUserSpace;   // Offset:    0 Size:    44
+            //   float2 dimensions;                 // Offset:   48 Size:     8
+            //   float3 diff;                       // Offset:   64 Size:    12 [unused]
+            //   float2 center1;                    // Offset:   80 Size:     8 [unused]
+            //   float A;                           // Offset:   88 Size:     4 [unused]
+            //   float radius1;                     // Offset:   92 Size:     4 [unused]
+            //   float sq_radius1;                  // Offset:   96 Size:     4 [unused]
+            //
+            // }
+            //
+            //
+            // Resource Bindings:
+            //
+            // Name                                 Type  Format         Dim Slot Elements
+            // ------------------------------ ---------- ------- ----------- ---- --------
+            // cb0                               cbuffer      NA          NA    0        1
+            // cb2                               cbuffer      NA          NA    1        1
+            //
+            //
+            //
+            // Input signature:
+            //
+            // Name                 Index   Mask Register SysValue Format   Used
+            // -------------------- ----- ------ -------- -------- ------ ------
+            // POSITION                 0   xyz         0     NONE  float   xy  
+            //
+            //
+            // Output signature:
+            //
+            // Name                 Index   Mask Register SysValue Format   Used
+            // -------------------- ----- ------ -------- -------- ------ ------
+            // SV_Position              0   xyzw        0      POS  float   xyzw
+            // TEXCOORD                 0   xy          1     NONE  float   xy  
+            // TEXCOORD                 1     zw        1     NONE  float     zw
+            //
+            //
+            // Constant buffer to DX9 shader constant mappings:
+            //
+            // Target Reg Buffer  Start Reg # of Regs        Data Conversion
+            // ---------- ------- --------- --------- ----------------------
+            // c1         cb0             0         1  ( FLT, FLT, FLT, FLT)
+            // c2         cb0             2         1  ( FLT, FLT, FLT, FLT)
+            // c3         cb1             0         2  ( FLT, FLT, FLT, FLT)
+            // c5         cb1             3         1  ( FLT, FLT, FLT, FLT)
+            //
+            //
+            // Runtime generated constant mappings:
+            //
+            // Target Reg                               Constant Description
+            // ---------- --------------------------------------------------
+            // c0                              Vertex Shader position offset
+            //
+            //
+            // Level9 shader bytecode:
+            //
+                vs_2_x
+                def c6, 1, 0.5, 0, 0
+                dcl_texcoord v0
+                mad oT0.xy, v0, c2.zwzw, c2
+                mad r0.xy, v0, c1.zwzw, c1
+                add r0.z, r0.x, c6.x
+                mul r0.z, r0.z, c5.x
+                mul r1.x, r0.z, c6.y
+                add r0.z, -r0.y, c6.x
+                add oPos.xy, r0, c0
+                mul r0.x, r0.z, c5.y
+                mul r1.y, r0.x, c6.y
+                mov r1.z, c6.x
+                dp3 oT0.w, r1, c3
+                dp3 oT0.z, r1, c4
+                mov oPos.zw, c6.xyzx
+            
+            // approximately 13 instruction slots used
+            vs_4_0
+            dcl_constantbuffer cb0[3], immediateIndexed
+            dcl_constantbuffer cb1[4], immediateIndexed
+            dcl_input v0.xy
+            dcl_output_siv o0.xyzw, position
+            dcl_output o1.xy
+            dcl_output o1.zw
+            dcl_temps 2
+            mov o0.zw, l(0,0,0,1.000000)
+            mad r0.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx
+            mov o0.xy, r0.xyxx
+            add r0.x, r0.x, l(1.000000)
+            add r0.y, -r0.y, l(1.000000)
+            mul r0.xy, r0.xyxx, cb1[3].xyxx
+            mul r1.xy, r0.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
+            mov r1.z, l(1.000000)
+            dp3 o1.z, r1.xyzx, cb1[0].xyzx
+            dp3 o1.w, r1.xyzx, cb1[1].xyzx
+            mad o1.xy, v0.xyxx, cb0[2].zwzz, cb0[2].xyxx
+            ret 
+            // Approximately 12 instruction slots used
+                    
+        };
+        GeometryShader = NULL;
+        PixelShader = asm {
+            //
+            // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
+            //
+            //
+            // Buffer Definitions: 
+            //
+            // cbuffer cb2
+            // {
+            //
+            //   float3x3 DeviceSpaceToUserSpace;   // Offset:    0 Size:    44 [unused]
+            //   float2 dimensions;                 // Offset:   48 Size:     8 [unused]
+            //   float3 diff;                       // Offset:   64 Size:    12
+            //   float2 center1;                    // Offset:   80 Size:     8
+            //   float A;                           // Offset:   88 Size:     4 [unused]
+            //   float radius1;                     // Offset:   92 Size:     4
+            //   float sq_radius1;                  // Offset:   96 Size:     4 [unused]
+            //
+            // }
+            //
+            //
+            // Resource Bindings:
+            //
+            // Name                                 Type  Format         Dim Slot Elements
+            // ------------------------------ ---------- ------- ----------- ---- --------
+            // sSampler                          sampler      NA          NA    0        1
+            // sMaskSampler                      sampler      NA          NA    1        1
+            // tex                               texture  float4          2d    0        1
+            // mask                              texture  float4          2d    1        1
+            // cb2                               cbuffer      NA          NA    0        1
+            //
+            //
+            //
+            // Input signature:
+            //
+            // Name                 Index   Mask Register SysValue Format   Used
+            // -------------------- ----- ------ -------- -------- ------ ------
+            // SV_Position              0   xyzw        0      POS  float       
+            // TEXCOORD                 0   xy          1     NONE  float   xy  
+            // TEXCOORD                 1     zw        1     NONE  float     zw
+            //
+            //
+            // Output signature:
+            //
+            // Name                 Index   Mask Register SysValue Format   Used
+            // -------------------- ----- ------ -------- -------- ------ ------
+            // SV_Target                0   xyzw        0   TARGET  float   xyzw
+            //
+            //
+            // Constant buffer to DX9 shader constant mappings:
+            //
+            // Target Reg Buffer  Start Reg # of Regs        Data Conversion
+            // ---------- ------- --------- --------- ----------------------
+            // c0         cb0             4         2  ( FLT, FLT, FLT, FLT)
+            //
+            //
+            // Sampler/Resource to DX9 shader sampler mappings:
+            //
+            // Target Sampler Source Sampler  Source Resource
+            // -------------- --------------- ----------------
+            // s0             s0              t0               
+            // s1             s1              t1               
+            //
+            //
+            // Level9 shader bytecode:
+            //
+                ps_2_x
+                def c2, 0.5, 0, 0, 0
+                dcl t0
+                dcl_2d s0
+                dcl_2d s1
+                mul r0.w, c1.w, c1.w
+                add r0.xy, t0.wzzw, -c1
+                dp2add r0.w, r0, r0, -r0.w
+                mul r0.w, r0.w, c2.x
+                mov r0.z, c1.w
+                dp3 r0.x, r0, c0
+                rcp r0.x, r0.x
+                mul r0.x, r0.x, r0.w
+                mov r0.y, c2.x
+                texld r1, t0, s1
+                texld r2, r0, s0
+                mov r0.w, c1.w
+                mad r0.x, r0.x, -c0.z, -r0.w
+                mul r1, r1.w, r2
+                cmp r0, r0.x, c2.y, r1
+                mov oC0, r0
+            
+            // approximately 17 instruction slots used (2 texture, 15 arithmetic)
+            ps_4_0
+            dcl_constantbuffer cb0[6], immediateIndexed
+            dcl_sampler s0, mode_default
+            dcl_sampler s1, mode_default
+            dcl_resource_texture2d (float,float,float,float) t0
+            dcl_resource_texture2d (float,float,float,float) t1
+            dcl_input_ps linear v1.xy
+            dcl_input_ps linear v1.zw
+            dcl_output o0.xyzw
+            dcl_temps 2
+            add r0.xy, v1.zwzz, -cb0[5].xyxx
+            mov r0.z, cb0[5].w
+            dp3 r0.z, r0.xyzx, cb0[4].xyzx
+            dp2 r0.x, r0.xyxx, r0.xyxx
+            mad r0.x, -cb0[5].w, cb0[5].w, r0.x
+            mul r0.x, r0.x, l(0.500000)
+            div r0.x, r0.x, r0.z
+            mul r0.z, r0.x, cb0[4].z
+            ge r0.z, -cb0[5].w, r0.z
+            mov r0.y, l(0.500000)
+            sample r1.xyzw, r0.xyxx, t0.xyzw, s0
+            if_nz r0.z
+              mov o0.xyzw, l(0,0,0,0)
+              ret 
+            endif 
+            sample r0.xyzw, v1.xyxx, t1.xyzw, s1
+            mul o0.xyzw, r0.wwww, r1.xyzw
+            ret 
+            // Approximately 18 instruction slots used
+                    
+        };
+    }
+
+}
+
 technique10 SampleMaskedTexture
 {
     pass P0
     {
         RasterizerState = TextureRast;
         VertexShader = asm {
             //
             // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
@@ -1090,36 +1612,36 @@ technique10 SampleTextureWithShadow
     }
 
 }
 
 #endif
 
 const BYTE d2deffect[] =
 {
-     68,  88,  66,  67, 244, 198, 
-    222,  61,  43,  19,  42,  56, 
-    130, 197, 151, 242, 151,  57, 
-    208,  42,   1,   0,   0,   0, 
-    175,  67,   0,   0,   1,   0, 
+     68,  88,  66,  67,  85,  69, 
+      6,  83,  35, 167, 246, 209, 
+    147,  86, 117,  76, 228, 140, 
+    253, 202,   1,   0,   0,   0, 
+    169, 101,   0,   0,   1,   0, 
       0,   0,  36,   0,   0,   0, 
-     70,  88,  49,  48, 131,  67, 
+     70,  88,  49,  48, 125, 101, 
       0,   0,   1,  16, 255, 254, 
-      2,   0,   0,   0,   7,   0, 
+      3,   0,   0,   0,  14,   0, 
       0,   0,   8,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      3,   0,   0,   0, 203,  61, 
+      4,   0,   0,   0,  69,  94, 
       0,   0,   0,   0,   0,   0, 
       2,   0,   0,   0,   0,   0, 
       0,   0,   2,   0,   0,   0, 
       1,   0,   0,   0,   3,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  10,   0, 
-      0,   0,  10,   0,   0,   0, 
+      0,   0,   0,   0,  14,   0, 
+      0,   0,  14,   0,   0,   0, 
       0,   0,   0,   0,  99,  98, 
      48,   0, 102, 108, 111,  97, 
     116,  52,   0,   8,   0,   0, 
       0,   1,   0,   0,   0,   0, 
       0,   0,   0,  16,   0,   0, 
       0,  16,   0,   0,   0,  16, 
       0,   0,   0,  10,  33,   0, 
       0,  81, 117,  97, 100,  68, 
@@ -1136,259 +1658,724 @@ const BYTE d2deffect[] =
      66, 108, 117, 114,  79, 102, 
     102, 115, 101, 116, 115,  72, 
       0,  66, 108, 117, 114,  79, 
     102, 102, 115, 101, 116, 115, 
      86,   0,  66, 108, 117, 114, 
      87, 101, 105, 103, 104, 116, 
     115,   0,  83, 104,  97, 100, 
     111, 119,  67, 111, 108, 111, 
-    114,   0,  84, 101, 120, 116, 
-    117, 114, 101,  50,  68,   0, 
-    158,   0,   0,   0,   2,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-     12,   0,   0,   0, 116, 101, 
-    120,   0, 109,  97, 115, 107, 
-      0,  83,  97, 109, 112, 108, 
-    101, 114,  83, 116,  97, 116, 
-    101,   0, 205,   0,   0,   0, 
-      2,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
+    114,   0,  99,  98,  50,   0, 
+    102, 108, 111,  97, 116,  51, 
+    120,  51,   0, 162,   0,   0, 
+      0,   1,   0,   0,   0,   0, 
+      0,   0,   0,  44,   0,   0, 
+      0,  48,   0,   0,   0,  36, 
+      0,   0,   0,  11,  91,   0, 
+      0,  68, 101, 118, 105,  99, 
+    101,  83, 112,  97,  99, 101, 
+     84, 111,  85, 115, 101, 114, 
+     83, 112,  97,  99, 101,   0, 
+    102, 108, 111,  97, 116,  50, 
+      0, 222,   0,   0,   0,   1, 
+      0,   0,   0,   0,   0,   0, 
+      0,   8,   0,   0,   0,  16, 
+      0,   0,   0,   8,   0,   0, 
+      0,  10,  17,   0,   0, 100, 
+    105, 109, 101, 110, 115, 105, 
+    111, 110, 115,   0, 102, 108, 
+    111,  97, 116,  51,   0,  12, 
+      1,   0,   0,   1,   0,   0, 
+      0,   0,   0,   0,   0,  12, 
+      0,   0,   0,  16,   0,   0, 
+      0,  12,   0,   0,   0,  10, 
+     25,   0,   0, 100, 105, 102, 
+    102,   0,  99, 101, 110, 116, 
+    101, 114,  49,   0, 102, 108, 
+    111,  97, 116,   0,  60,   1, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   4,   0, 
+      0,   0,  16,   0,   0,   0, 
+      4,   0,   0,   0,   9,   9, 
+      0,   0,  65,   0, 114,  97, 
+    100, 105, 117, 115,  49,   0, 
+    115, 113,  95, 114,  97, 100, 
+    105, 117, 115,  49,   0,  84, 
+    101, 120, 116, 117, 114, 101, 
+     50,  68,   0, 115,   1,   0, 
+      0,   2,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,  12,   0,   0, 
+      0, 116, 101, 120,   0, 109, 
+     97, 115, 107,   0,  83,  97, 
+    109, 112, 108, 101, 114,  83, 
+    116,  97, 116, 101,   0, 162, 
+      1,   0,   0,   2,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,  21, 
+      0,   0,   0, 115,  83,  97, 
+    109, 112, 108, 101, 114,   0, 
+      1,   0,   0,   0,   2,   0, 
       0,   0,  21,   0,   0,   0, 
-    115,  83,  97, 109, 112, 108, 
-    101, 114,   0,   1,   0,   0, 
-      0,   2,   0,   0,   0,  21, 
-      0,   0,   0,   1,   0,   0, 
-      0,   2,   0,   0,   0,   3, 
-      0,   0,   0,   1,   0,   0, 
-      0,   2,   0,   0,   0,   3, 
-      0,   0,   0, 115,  77,  97, 
-    115, 107,  83,  97, 109, 112, 
-    108, 101, 114,   0,   1,   0, 
-      0,   0,   2,   0,   0,   0, 
-     21,   0,   0,   0,   1,   0, 
-      0,   0,   2,   0,   0,   0, 
-      3,   0,   0,   0,   1,   0, 
-      0,   0,   2,   0,   0,   0, 
-      3,   0,   0,   0, 115,  83, 
-    104,  97, 100, 111, 119,  83, 
+      1,   0,   0,   0,   2,   0, 
+      0,   0,   3,   0,   0,   0, 
+      1,   0,   0,   0,   2,   0, 
+      0,   0,   3,   0,   0,   0, 
+    115,  77,  97, 115, 107,  83, 
      97, 109, 112, 108, 101, 114, 
       0,   1,   0,   0,   0,   2, 
       0,   0,   0,  21,   0,   0, 
       0,   1,   0,   0,   0,   2, 
-      0,   0,   0,   4,   0,   0, 
+      0,   0,   0,   3,   0,   0, 
       0,   1,   0,   0,   0,   2, 
-      0,   0,   0,   4,   0,   0, 
-      0,   4,   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,   0,   0,   1, 
-      0,   0,   0,   0,   0,   0, 
-      0,  82,  97, 115, 116, 101, 
-    114, 105, 122, 101, 114,  83, 
-    116,  97, 116, 101,   0, 171, 
-      1,   0,   0,   2,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   4, 
-      0,   0,   0,  84, 101, 120, 
-    116, 117, 114, 101,  82,  97, 
-    115, 116,   0,   1,   0,   0, 
-      0,   2,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
+      0,   0,   0,   3,   0,   0, 
+      0, 115,  83, 104,  97, 100, 
+    111, 119,  83,  97, 109, 112, 
+    108, 101, 114,   0,   1,   0, 
+      0,   0,   2,   0,   0,   0, 
+     21,   0,   0,   0,   1,   0, 
+      0,   0,   2,   0,   0,   0, 
+      4,   0,   0,   0,   1,   0, 
+      0,   0,   2,   0,   0,   0, 
+      4,   0,   0,   0,   4,   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, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,  82,  97, 
+    115, 116, 101, 114, 105, 122, 
+    101, 114,  83, 116,  97, 116, 
+    101,   0, 128,   2,   0,   0, 
+      2,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   4,   0,   0,   0, 
+     84, 101, 120, 116, 117, 114, 
+    101,  82,  97, 115, 116,   0, 
+      1,   0,   0,   0,   2,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   2,   0, 
+      0,   0,   1,   0,   0,   0, 
+     66, 108, 101, 110, 100,  83, 
+    116,  97, 116, 101,   0, 208, 
+      2,   0,   0,   2,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   2, 
+      0,   0,   0,  83, 104,  97, 
+    100, 111, 119,  66, 108, 101, 
+    110, 100,  72,   0,   1,   0, 
+      0,   0,   2,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   3,   0,   0,   0, 
+     15,   0,   0,   0,  83, 104, 
+     97, 100, 111, 119,  66, 108, 
+    101, 110, 100,  86,   0,   1, 
+      0,   0,   0,   2,   0,   0, 
+      0,   1,   0,   0,   0,   1, 
+      0,   0,   0,   2,   0,   0, 
+      0,   2,   0,   0,   0,   1, 
+      0,   0,   0,   2,   0,   0, 
+      0,   6,   0,   0,   0,   1, 
+      0,   0,   0,   2,   0,   0, 
+      0,   1,   0,   0,   0,   1, 
+      0,   0,   0,   2,   0,   0, 
       0,   2,   0,   0,   0,   1, 
-      0,   0,   0,  66, 108, 101, 
-    110, 100,  83, 116,  97, 116, 
-    101,   0, 251,   1,   0,   0, 
-      2,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   2,   0,   0, 
+      0,   6,   0,   0,   0,   1, 
+      0,   0,   0,   2,   0,   0, 
+      0,   1,   0,   0,   0,   1, 
+      0,   0,   0,   3,   0,   0, 
+      0,  15,   0,   0,   0,  83, 
+     97, 109, 112, 108, 101,  84, 
+    101, 120, 116, 117, 114, 101, 
+      0,  80,  48,   0,  36,   4, 
+      0,   0,  68,  88,  66,  67, 
+    116, 139,  68,  62,  73, 113, 
+     92,   4,  72,  76, 225, 161, 
+     30, 132, 222, 233,   1,   0, 
+      0,   0,  36,   4,   0,   0, 
+      6,   0,   0,   0,  56,   0, 
+      0,   0, 248,   0,   0,   0, 
+    244,   1,   0,   0, 112,   2, 
+      0,   0, 128,   3,   0,   0, 
+    180,   3,   0,   0,  65, 111, 
+    110,  57, 184,   0,   0,   0, 
+    184,   0,   0,   0,   0,   2, 
+    254, 255, 132,   0,   0,   0, 
+     52,   0,   0,   0,   1,   0, 
+     36,   0,   0,   0,  48,   0, 
+      0,   0,  48,   0,   0,   0, 
+     36,   0,   1,   0,  48,   0, 
+      0,   0,   0,   0,   3,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   1,   2, 
+    254, 255,  81,   0,   0,   5, 
+      4,   0,  15, 160,   0,   0, 
+      0,   0,   0,   0, 128,  63, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  31,   0,   0,   2, 
+      5,   0,   0, 128,   0,   0, 
+     15, 144,   4,   0,   0,   4, 
+      0,   0,   3, 224,   0,   0, 
+    228, 144,   2,   0, 238, 160, 
+      2,   0, 228, 160,   4,   0, 
+      0,   4,   0,   0,  12, 224, 
+      0,   0,  20, 144,   3,   0, 
+    180, 160,   3,   0,  20, 160, 
+      4,   0,   0,   4,   0,   0, 
+      3, 128,   0,   0, 228, 144, 
+      1,   0, 238, 160,   1,   0, 
+    228, 160,   2,   0,   0,   3, 
+      0,   0,   3, 192,   0,   0, 
+    228, 128,   0,   0, 228, 160, 
+      1,   0,   0,   2,   0,   0, 
+     12, 192,   4,   0,  68, 160, 
+    255, 255,   0,   0,  83,  72, 
+     68,  82, 244,   0,   0,   0, 
+     64,   0,   1,   0,  61,   0, 
+      0,   0,  89,   0,   0,   4, 
+     70, 142,  32,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+     95,   0,   0,   3,  50,  16, 
+     16,   0,   0,   0,   0,   0, 
+    103,   0,   0,   4, 242,  32, 
+     16,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0, 101,   0, 
+      0,   3,  50,  32,  16,   0, 
+      1,   0,   0,   0, 101,   0, 
+      0,   3, 194,  32,  16,   0, 
+      1,   0,   0,   0,  50,   0, 
+      0,  11,  50,  32,  16,   0, 
+      0,   0,   0,   0,  70,  16, 
+     16,   0,   0,   0,   0,   0, 
+    230, 138,  32,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     70, 128,  32,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     54,   0,   0,   8, 194,  32, 
+     16,   0,   0,   0,   0,   0, 
+      2,  64,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+    128,  63,  50,   0,   0,  11, 
+     50,  32,  16,   0,   1,   0, 
+      0,   0,  70,  16,  16,   0, 
+      0,   0,   0,   0, 230, 138, 
+     32,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,  70, 128, 
+     32,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,  50,   0, 
+      0,  11, 194,  32,  16,   0, 
+      1,   0,   0,   0,   6,  20, 
+     16,   0,   0,   0,   0,   0, 
+    166, 142,  32,   0,   0,   0, 
       0,   0,   2,   0,   0,   0, 
-     83, 104,  97, 100, 111, 119, 
-     66, 108, 101, 110, 100,  72, 
-      0,   1,   0,   0,   0,   2, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0,   3, 
-      0,   0,   0,  15,   0,   0, 
-      0,  83, 104,  97, 100, 111, 
-    119,  66, 108, 101, 110, 100, 
-     86,   0,   1,   0,   0,   0, 
-      2,   0,   0,   0,   1,   0, 
-      0,   0,   1,   0,   0,   0, 
-      2,   0,   0,   0,   2,   0, 
-      0,   0,   1,   0,   0,   0, 
-      2,   0,   0,   0,   6,   0, 
+      6, 132,  32,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+     62,   0,   0,   1,  83,  84, 
+     65,  84, 116,   0,   0,   0, 
+      5,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      4,   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,   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,   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, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  82,  68,  69,  70, 
+      8,   1,   0,   0,   1,   0, 
+      0,   0,  64,   0,   0,   0, 
+      1,   0,   0,   0,  28,   0, 
+      0,   0,   0,   4, 254, 255, 
+      0,   1,   0,   0, 212,   0, 
+      0,   0,  60,   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, 
-      2,   0,   0,   0,   1,   0, 
-      0,   0,   1,   0,   0,   0, 
-      2,   0,   0,   0,   2,   0, 
+      0,   0,   0,   0,  99,  98, 
+     48,   0,  60,   0,   0,   0, 
+      3,   0,   0,   0,  88,   0, 
+      0,   0,  48,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0, 160,   0,   0,   0, 
+      0,   0,   0,   0,  16,   0, 
+      0,   0,   2,   0,   0,   0, 
+    172,   0,   0,   0,   0,   0, 
+      0,   0, 188,   0,   0,   0, 
+     16,   0,   0,   0,  16,   0, 
+      0,   0,   2,   0,   0,   0, 
+    172,   0,   0,   0,   0,   0, 
+      0,   0, 198,   0,   0,   0, 
+     32,   0,   0,   0,  16,   0, 
+      0,   0,   2,   0,   0,   0, 
+    172,   0,   0,   0,   0,   0, 
+      0,   0,  81, 117,  97, 100, 
+     68, 101, 115,  99,   0, 171, 
+    171, 171,   1,   0,   3,   0, 
+      1,   0,   4,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     84, 101, 120,  67, 111, 111, 
+    114, 100, 115,   0,  77,  97, 
+    115, 107,  84, 101, 120,  67, 
+    111, 111, 114, 100, 115,   0, 
+     77, 105,  99, 114, 111, 115, 
+    111, 102, 116,  32,  40,  82, 
+     41,  32,  72,  76,  83,  76, 
+     32,  83, 104,  97, 100, 101, 
+    114,  32,  67, 111, 109, 112, 
+    105, 108, 101, 114,  32,  57, 
+     46,  50,  57,  46,  57,  53, 
+     50,  46,  51,  49,  49,  49, 
+      0, 171, 171, 171,  73,  83, 
+     71,  78,  44,   0,   0,   0, 
+      1,   0,   0,   0,   8,   0, 
+      0,   0,  32,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,   7,   3, 
+      0,   0,  80,  79,  83,  73, 
+     84,  73,  79,  78,   0, 171, 
+    171, 171,  79,  83,  71,  78, 
+    104,   0,   0,   0,   3,   0, 
+      0,   0,   8,   0,   0,   0, 
+     80,   0,   0,   0,   0,   0, 
       0,   0,   1,   0,   0,   0, 
-      2,   0,   0,   0,   6,   0, 
-      0,   0,   1,   0,   0,   0, 
-      2,   0,   0,   0,   1,   0, 
+      3,   0,   0,   0,   0,   0, 
+      0,   0,  15,   0,   0,   0, 
+     92,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   1,   0, 
+      0,   0,   3,  12,   0,   0, 
+     92,   0,   0,   0,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   1,   0, 
+      0,   0,  12,   3,   0,   0, 
+     83,  86,  95,  80, 111, 115, 
+    105, 116, 105, 111, 110,   0, 
+     84,  69,  88,  67,  79,  79, 
+     82,  68,   0, 171, 171, 171, 
+    154,   3,   0,   0,   0,   0, 
       0,   0,   1,   0,   0,   0, 
-      3,   0,   0,   0,  15,   0, 
-      0,   0,  83,  97, 109, 112, 
-    108, 101,  84, 101, 120, 116, 
-    117, 114, 101,   0,  80,  48, 
-      0,  36,   4,   0,   0,  68, 
-     88,  66,  67, 116, 139,  68, 
-     62,  73, 113,  92,   4,  72, 
-     76, 225, 161,  30, 132, 222, 
-    233,   1,   0,   0,   0,  36, 
-      4,   0,   0,   6,   0,   0, 
-      0,  56,   0,   0,   0, 248, 
-      0,   0,   0, 244,   1,   0, 
-      0, 112,   2,   0,   0, 128, 
-      3,   0,   0, 180,   3,   0, 
-      0,  65, 111, 110,  57, 184, 
-      0,   0,   0, 184,   0,   0, 
-      0,   0,   2, 254, 255, 132, 
-      0,   0,   0,  52,   0,   0, 
-      0,   1,   0,  36,   0,   0, 
-      0,  48,   0,   0,   0,  48, 
-      0,   0,   0,  36,   0,   1, 
-      0,  48,   0,   0,   0,   0, 
-      0,   3,   0,   1,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   2, 254, 255,  81, 
-      0,   0,   5,   4,   0,  15, 
-    160,   0,   0,   0,   0,   0, 
-      0, 128,  63,   0,   0,   0, 
-      0,   0,   0,   0,   0,  31, 
-      0,   0,   2,   5,   0,   0, 
-    128,   0,   0,  15, 144,   4, 
-      0,   0,   4,   0,   0,   3, 
-    224,   0,   0, 228, 144,   2, 
-      0, 238, 160,   2,   0, 228, 
-    160,   4,   0,   0,   4,   0, 
-      0,  12, 224,   0,   0,  20, 
-    144,   3,   0, 180, 160,   3, 
-      0,  20, 160,   4,   0,   0, 
+      2,   0,   0,   0,   0,   0, 
+      0,   0, 212,   2,   0,   0, 
+     68,  88,  66,  67,  22, 206, 
+     82, 103, 196, 235,  84, 233, 
+    156,  39, 210, 152,  32, 145, 
+    169, 162,   1,   0,   0,   0, 
+    212,   2,   0,   0,   6,   0, 
+      0,   0,  56,   0,   0,   0, 
+    164,   0,   0,   0,  16,   1, 
+      0,   0, 140,   1,   0,   0, 
+     48,   2,   0,   0, 160,   2, 
+      0,   0,  65, 111, 110,  57, 
+    100,   0,   0,   0, 100,   0, 
+      0,   0,   0,   2, 255, 255, 
+     60,   0,   0,   0,  40,   0, 
+      0,   0,   0,   0,  40,   0, 
+      0,   0,  40,   0,   0,   0, 
+     40,   0,   1,   0,  36,   0, 
+      0,   0,  40,   0,   0,   0, 
+      0,   0,   1,   2, 255, 255, 
+     31,   0,   0,   2,   0,   0, 
+      0, 128,   0,   0,  15, 176, 
+     31,   0,   0,   2,   0,   0, 
+      0, 144,   0,   8,  15, 160, 
+     66,   0,   0,   3,   0,   0, 
+     15, 128,   0,   0, 228, 176, 
+      0,   8, 228, 160,   1,   0, 
+      0,   2,   0,   8,  15, 128, 
+      0,   0, 228, 128, 255, 255, 
+      0,   0,  83,  72,  68,  82, 
+    100,   0,   0,   0,  64,   0, 
+      0,   0,  25,   0,   0,   0, 
+     90,   0,   0,   3,   0,  96, 
+     16,   0,   0,   0,   0,   0, 
+     88,  24,   0,   4,   0, 112, 
+     16,   0,   0,   0,   0,   0, 
+     85,  85,   0,   0,  98,  16, 
+      0,   3,  50,  16,  16,   0, 
+      1,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      0,   0,   0,   0,  69,   0, 
+      0,   9, 242,  32,  16,   0, 
+      0,   0,   0,   0,  70,  16, 
+     16,   0,   1,   0,   0,   0, 
+     70, 126,  16,   0,   0,   0, 
+      0,   0,   0,  96,  16,   0, 
+      0,   0,   0,   0,  62,   0, 
+      0,   1,  83,  84,  65,  84, 
+    116,   0,   0,   0,   2,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   2,   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, 
+      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, 
+      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,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     82,  68,  69,  70, 156,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   2,   0, 
+      0,   0,  28,   0,   0,   0, 
+      0,   4, 255, 255,   0,   1, 
+      0,   0, 105,   0,   0,   0, 
+     92,   0,   0,   0,   3,   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, 101,   0,   0,   0, 
+      2,   0,   0,   0,   5,   0, 
+      0,   0,   4,   0,   0,   0, 
+    255, 255, 255, 255,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+     12,   0,   0,   0, 115,  83, 
+     97, 109, 112, 108, 101, 114, 
+      0, 116, 101, 120,   0,  77, 
+    105,  99, 114, 111, 115, 111, 
+    102, 116,  32,  40,  82,  41, 
+     32,  72,  76,  83,  76,  32, 
+     83, 104,  97, 100, 101, 114, 
+     32,  67, 111, 109, 112, 105, 
+    108, 101, 114,  32,  57,  46, 
+     50,  57,  46,  57,  53,  50, 
+     46,  51,  49,  49,  49,   0, 
+    171, 171,  73,  83,  71,  78, 
+    104,   0,   0,   0,   3,   0, 
+      0,   0,   8,   0,   0,   0, 
+     80,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+      3,   0,   0,   0,   0,   0, 
+      0,   0,  15,   0,   0,   0, 
+     92,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   1,   0, 
+      0,   0,   3,   3,   0,   0, 
+     92,   0,   0,   0,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   1,   0, 
+      0,   0,  12,   0,   0,   0, 
+     83,  86,  95,  80, 111, 115, 
+    105, 116, 105, 111, 110,   0, 
+     84,  69,  88,  67,  79,  79, 
+     82,  68,   0, 171, 171, 171, 
+     79,  83,  71,  78,  44,   0, 
+      0,   0,   1,   0,   0,   0, 
+      8,   0,   0,   0,  32,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+     15,   0,   0,   0,  83,  86, 
+     95,  84,  97, 114, 103, 101, 
+    116,   0, 171, 171, 214,   7, 
+      0,   0,   0,   0,   0,   0, 
+     83,  97, 109, 112, 108, 101, 
+     82,  97, 100, 105,  97, 108, 
+     71, 114,  97, 100, 105, 101, 
+    110, 116,   0,   4,   7,   0, 
+      0,  68,  88,  66,  67, 171, 
+      7,  14, 215, 173,  41,  24, 
+    247, 237,   1,  38,  39, 209, 
+    221, 241, 232,   1,   0,   0, 
+      0,   4,   7,   0,   0,   6, 
+      0,   0,   0,  56,   0,   0, 
+      0, 148,   1,   0,   0, 104, 
+      3,   0,   0, 228,   3,   0, 
+      0,  96,   6,   0,   0, 148, 
+      6,   0,   0,  65, 111, 110, 
+     57,  84,   1,   0,   0,  84, 
+      1,   0,   0,   0,   2, 254, 
+    255, 252,   0,   0,   0,  88, 
+      0,   0,   0,   4,   0,  36, 
+      0,   0,   0,  84,   0,   0, 
+      0,  84,   0,   0,   0,  36, 
+      0,   1,   0,  84,   0,   0, 
+      0,   0,   0,   1,   0,   1, 
+      0,   0,   0,   0,   0,   0, 
+      0,   2,   0,   1,   0,   2, 
+      0,   0,   0,   0,   0,   1, 
+      0,   0,   0,   2,   0,   3, 
+      0,   0,   0,   0,   0,   1, 
+      0,   3,   0,   1,   0,   5, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   1,   2, 254, 
+    255,  81,   0,   0,   5,   6, 
+      0,  15, 160,   0,   0, 128, 
+     63,   0,   0,   0,  63,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,  31,   0,   0,   2,   5, 
+      0,   0, 128,   0,   0,  15, 
+    144,   4,   0,   0,   4,   0, 
+      0,   3, 224,   0,   0, 228, 
+    144,   2,   0, 238, 160,   2, 
+      0, 228, 160,   4,   0,   0, 
       4,   0,   0,   3, 128,   0, 
       0, 228, 144,   1,   0, 238, 
     160,   1,   0, 228, 160,   2, 
-      0,   0,   3,   0,   0,   3, 
-    192,   0,   0, 228, 128,   0, 
-      0, 228, 160,   1,   0,   0, 
-      2,   0,   0,  12, 192,   4, 
-      0,  68, 160, 255, 255,   0, 
-      0,  83,  72,  68,  82, 244, 
-      0,   0,   0,  64,   0,   1, 
-      0,  61,   0,   0,   0,  89, 
+      0,   0,   3,   0,   0,   4, 
+    128,   0,   0,   0, 128,   6, 
+      0,   0, 160,   5,   0,   0, 
+      3,   0,   0,   4, 128,   0, 
+      0, 170, 128,   5,   0,   0, 
+    160,   5,   0,   0,   3,   1, 
+      0,   1, 128,   0,   0, 170, 
+    128,   6,   0,  85, 160,   2, 
+      0,   0,   3,   0,   0,   4, 
+    128,   0,   0,  85, 129,   6, 
+      0,   0, 160,   2,   0,   0, 
+      3,   0,   0,   3, 192,   0, 
+      0, 228, 128,   0,   0, 228, 
+    160,   5,   0,   0,   3,   0, 
+      0,   1, 128,   0,   0, 170, 
+    128,   5,   0,  85, 160,   5, 
+      0,   0,   3,   1,   0,   2, 
+    128,   0,   0,   0, 128,   6, 
+      0,  85, 160,   1,   0,   0, 
+      2,   1,   0,   4, 128,   6, 
+      0,   0, 160,   8,   0,   0, 
+      3,   0,   0,   8, 224,   1, 
+      0, 228, 128,   3,   0, 228, 
+    160,   8,   0,   0,   3,   0, 
+      0,   4, 224,   1,   0, 228, 
+    128,   4,   0, 228, 160,   1, 
+      0,   0,   2,   0,   0,  12, 
+    192,   6,   0,  36, 160, 255, 
+    255,   0,   0,  83,  72,  68, 
+     82, 204,   1,   0,   0,  64, 
+      0,   1,   0, 115,   0,   0, 
+      0,  89,   0,   0,   4,  70, 
+    142,  32,   0,   0,   0,   0, 
+      0,   3,   0,   0,   0,  89, 
       0,   0,   4,  70, 142,  32, 
-      0,   0,   0,   0,   0,   3, 
+      0,   1,   0,   0,   0,   4, 
       0,   0,   0,  95,   0,   0, 
       3,  50,  16,  16,   0,   0, 
       0,   0,   0, 103,   0,   0, 
       4, 242,  32,  16,   0,   0, 
       0,   0,   0,   1,   0,   0, 
       0, 101,   0,   0,   3,  50, 
      32,  16,   0,   1,   0,   0, 
       0, 101,   0,   0,   3, 194, 
      32,  16,   0,   1,   0,   0, 
-      0,  50,   0,   0,  11,  50, 
-     32,  16,   0,   0,   0,   0, 
-      0,  70,  16,  16,   0,   0, 
-      0,   0,   0, 230, 138,  32, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,  70, 128,  32, 
-      0,   0,   0,   0,   0,   0, 
+      0, 104,   0,   0,   2,   2, 
       0,   0,   0,  54,   0,   0, 
       8, 194,  32,  16,   0,   0, 
       0,   0,   0,   2,  64,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0, 128,  63,  50, 
-      0,   0,  11,  50,  32,  16, 
-      0,   1,   0,   0,   0,  70, 
+      0,   0,  11,  50,   0,  16, 
+      0,   0,   0,   0,   0,  70, 
      16,  16,   0,   0,   0,   0, 
       0, 230, 138,  32,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
       0,  70, 128,  32,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,  50,   0,   0,  11, 194, 
+      0,   0,   0,   0,   0,   0, 
+      0,  54,   0,   0,   5,  50, 
+     32,  16,   0,   0,   0,   0, 
+      0,  70,   0,  16,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      7,  18,   0,  16,   0,   0, 
+      0,   0,   0,  10,   0,  16, 
+      0,   0,   0,   0,   0,   1, 
+     64,   0,   0,   0,   0, 128, 
+     63,   0,   0,   0,   8,  34, 
+      0,  16,   0,   0,   0,   0, 
+      0,  26,   0,  16, 128,  65, 
+      0,   0,   0,   0,   0,   0, 
+      0,   1,  64,   0,   0,   0, 
+      0, 128,  63,  56,   0,   0, 
+      8,  50,   0,  16,   0,   0, 
+      0,   0,   0,  70,   0,  16, 
+      0,   0,   0,   0,   0,  70, 
+    128,  32,   0,   1,   0,   0, 
+      0,   3,   0,   0,   0,  56, 
+      0,   0,  10,  50,   0,  16, 
+      0,   1,   0,   0,   0,  70, 
+      0,  16,   0,   0,   0,   0, 
+      0,   2,  64,   0,   0,   0, 
+      0,   0,  63,   0,   0,   0, 
+     63,   0,   0,   0,   0,   0, 
+      0,   0,   0,  54,   0,   0, 
+      5,  66,   0,  16,   0,   1, 
+      0,   0,   0,   1,  64,   0, 
+      0,   0,   0, 128,  63,  16, 
+      0,   0,   8,  66,  32,  16, 
+      0,   1,   0,   0,   0,  70, 
+      2,  16,   0,   1,   0,   0, 
+      0,  70, 130,  32,   0,   1, 
+      0,   0,   0,   0,   0,   0, 
+      0,  16,   0,   0,   8, 130, 
      32,  16,   0,   1,   0,   0, 
-      0,   6,  20,  16,   0,   0, 
-      0,   0,   0, 166, 142,  32, 
-      0,   0,   0,   0,   0,   2, 
-      0,   0,   0,   6, 132,  32, 
-      0,   0,   0,   0,   0,   2, 
-      0,   0,   0,  62,   0,   0, 
-      1,  83,  84,  65,  84, 116, 
-      0,   0,   0,   5,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   4,   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,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
+      0,  70,   2,  16,   0,   1, 
+      0,   0,   0,  70, 130,  32, 
+      0,   1,   0,   0,   0,   1, 
+      0,   0,   0,  50,   0,   0, 
+     11,  50,  32,  16,   0,   1, 
+      0,   0,   0,  70,  16,  16, 
+      0,   0,   0,   0,   0, 230, 
+    138,  32,   0,   0,   0,   0, 
+      0,   2,   0,   0,   0,  70, 
+    128,  32,   0,   0,   0,   0, 
+      0,   2,   0,   0,   0,  62, 
+      0,   0,   1,  83,  84,  65, 
+     84, 116,   0,   0,   0,  12, 
+      0,   0,   0,   2,   0,   0, 
+      0,   0,   0,   0,   0,   4, 
+      0,   0,   0,   6,   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,   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, 
+      0,   0,   0,   3,   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,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,  82,  68,  69,  70, 116, 
+      2,   0,   0,   2,   0,   0, 
+      0, 100,   0,   0,   0,   2, 
+      0,   0,   0,  28,   0,   0, 
+      0,   0,   4, 254, 255,   0, 
+      1,   0,   0,  67,   2,   0, 
+      0,  92,   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,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,  82, 
-     68,  69,  70,   8,   1,   0, 
-      0,   1,   0,   0,   0,  64, 
-      0,   0,   0,   1,   0,   0, 
-      0,  28,   0,   0,   0,   0, 
-      4, 254, 255,   0,   1,   0, 
-      0, 212,   0,   0,   0,  60, 
-      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,  96,   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,  99,  98,  48,   0,  60, 
-      0,   0,   0,   3,   0,   0, 
-      0,  88,   0,   0,   0,  48, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0, 160, 
-      0,   0,   0,   0,   0,   0, 
-      0,  16,   0,   0,   0,   2, 
-      0,   0,   0, 172,   0,   0, 
-      0,   0,   0,   0,   0, 188, 
+      0,   0,   0,   1,   0,   0, 
+      0,   0,   0,   0,   0,  99, 
+     98,  48,   0,  99,  98,  50, 
+      0,  92,   0,   0,   0,   3, 
+      0,   0,   0, 148,   0,   0, 
+      0,  48,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,  96,   0,   0,   0,   7, 
+      0,   0,   0,  16,   1,   0, 
+      0, 112,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0, 220,   0,   0,   0,   0, 
+      0,   0,   0,  16,   0,   0, 
+      0,   2,   0,   0,   0, 232, 
+      0,   0,   0,   0,   0,   0, 
+      0, 248,   0,   0,   0,  16, 
+      0,   0,   0,  16,   0,   0, 
+      0,   0,   0,   0,   0, 232, 
+      0,   0,   0,   0,   0,   0, 
+      0,   2,   1,   0,   0,  32, 
       0,   0,   0,  16,   0,   0, 
-      0,  16,   0,   0,   0,   2, 
-      0,   0,   0, 172,   0,   0, 
-      0,   0,   0,   0,   0, 198, 
-      0,   0,   0,  32,   0,   0, 
-      0,  16,   0,   0,   0,   2, 
-      0,   0,   0, 172,   0,   0, 
-      0,   0,   0,   0,   0,  81, 
-    117,  97, 100,  68, 101, 115, 
-     99,   0, 171, 171, 171,   1, 
-      0,   3,   0,   1,   0,   4, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,  84, 101, 120, 
-     67, 111, 111, 114, 100, 115, 
-      0,  77,  97, 115, 107,  84, 
+      0,   2,   0,   0,   0, 232, 
+      0,   0,   0,   0,   0,   0, 
+      0,  81, 117,  97, 100,  68, 
+    101, 115,  99,   0, 171, 171, 
+    171,   1,   0,   3,   0,   1, 
+      0,   4,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,  84, 
     101, 120,  67, 111, 111, 114, 
-    100, 115,   0,  77, 105,  99, 
-    114, 111, 115, 111, 102, 116, 
-     32,  40,  82,  41,  32,  72, 
-     76,  83,  76,  32,  83, 104, 
-     97, 100, 101, 114,  32,  67, 
-    111, 109, 112, 105, 108, 101, 
-    114,  32,  57,  46,  50,  57, 
-     46,  57,  53,  50,  46,  51, 
-     49,  49,  49,   0, 171, 171, 
-    171,  73,  83,  71,  78,  44, 
+    100, 115,   0,  77,  97, 115, 
+    107,  84, 101, 120,  67, 111, 
+    111, 114, 100, 115,   0, 184, 
+      1,   0,   0,   0,   0,   0, 
+      0,  44,   0,   0,   0,   2, 
+      0,   0,   0, 208,   1,   0, 
+      0,   0,   0,   0,   0, 224, 
+      1,   0,   0,  48,   0,   0, 
+      0,   8,   0,   0,   0,   2, 
+      0,   0,   0, 236,   1,   0, 
+      0,   0,   0,   0,   0, 252, 
+      1,   0,   0,  64,   0,   0, 
+      0,  12,   0,   0,   0,   0, 
+      0,   0,   0,   4,   2,   0, 
+      0,   0,   0,   0,   0,  20, 
+      2,   0,   0,  80,   0,   0, 
+      0,   8,   0,   0,   0,   0, 
+      0,   0,   0, 236,   1,   0, 
+      0,   0,   0,   0,   0,  28, 
+      2,   0,   0,  88,   0,   0, 
+      0,   4,   0,   0,   0,   0, 
+      0,   0,   0,  32,   2,   0, 
+      0,   0,   0,   0,   0,  48, 
+      2,   0,   0,  92,   0,   0, 
+      0,   4,   0,   0,   0,   0, 
+      0,   0,   0,  32,   2,   0, 
+      0,   0,   0,   0,   0,  56, 
+      2,   0,   0,  96,   0,   0, 
+      0,   4,   0,   0,   0,   0, 
+      0,   0,   0,  32,   2,   0, 
+      0,   0,   0,   0,   0,  68, 
+    101, 118, 105,  99, 101,  83, 
+    112,  97,  99, 101,  84, 111, 
+     85, 115, 101, 114,  83, 112, 
+     97,  99, 101,   0, 171,   3, 
+      0,   3,   0,   3,   0,   3, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0, 100, 105, 109, 
+    101, 110, 115, 105, 111, 110, 
+    115,   0, 171,   1,   0,   3, 
+      0,   1,   0,   2,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0, 100, 105, 102, 102,   0, 
+    171, 171, 171,   1,   0,   3, 
+      0,   1,   0,   3,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,  99, 101, 110, 116, 101, 
+    114,  49,   0,  65,   0, 171, 
+    171,   0,   0,   3,   0,   1, 
+      0,   1,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0, 114, 
+     97, 100, 105, 117, 115,  49, 
+      0, 115, 113,  95, 114,  97, 
+    100, 105, 117, 115,  49,   0, 
+     77, 105,  99, 114, 111, 115, 
+    111, 102, 116,  32,  40,  82, 
+     41,  32,  72,  76,  83,  76, 
+     32,  83, 104,  97, 100, 101, 
+    114,  32,  67, 111, 109, 112, 
+    105, 108, 101, 114,  32,  57, 
+     46,  50,  57,  46,  57,  53, 
+     50,  46,  51,  49,  49,  49, 
+      0,  73,  83,  71,  78,  44, 
       0,   0,   0,   1,   0,   0, 
       0,   8,   0,   0,   0,  32, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   3, 
       0,   0,   0,   0,   0,   0, 
       0,   7,   3,   0,   0,  80, 
      79,  83,  73,  84,  73,  79, 
      78,   0, 171, 171, 171,  79, 
@@ -1405,455 +2392,399 @@ const BYTE d2deffect[] =
      12,   0,   0,  92,   0,   0, 
       0,   1,   0,   0,   0,   0, 
       0,   0,   0,   3,   0,   0, 
       0,   1,   0,   0,   0,  12, 
       3,   0,   0,  83,  86,  95, 
      80, 111, 115, 105, 116, 105, 
     111, 110,   0,  84,  69,  88, 
      67,  79,  79,  82,  68,   0, 
-    171, 171, 171, 197,   2,   0, 
+    171, 171, 171, 203,  10,   0, 
       0,   0,   0,   0,   0,   1, 
       0,   0,   0,   2,   0,   0, 
-      0,   0,   0,   0,   0, 212, 
-      2,   0,   0,  68,  88,  66, 
-     67,  22, 206,  82, 103, 196, 
-    235,  84, 233, 156,  39, 210, 
-    152,  32, 145, 169, 162,   1, 
-      0,   0,   0, 212,   2,   0, 
+      0,   0,   0,   0,   0, 176, 
+      9,   0,   0,  68,  88,  66, 
+     67, 240, 161, 162, 174,  38, 
+    162, 195, 139, 184, 115, 158, 
+    154, 113,  22, 188,  37,   1, 
+      0,   0,   0, 176,   9,   0, 
       0,   6,   0,   0,   0,  56, 
-      0,   0,   0, 164,   0,   0, 
-      0,  16,   1,   0,   0, 140, 
-      1,   0,   0,  48,   2,   0, 
-      0, 160,   2,   0,   0,  65, 
-    111, 110,  57, 100,   0,   0, 
-      0, 100,   0,   0,   0,   0, 
-      2, 255, 255,  60,   0,   0, 
-      0,  40,   0,   0,   0,   0, 
-      0,  40,   0,   0,   0,  40, 
-      0,   0,   0,  40,   0,   1, 
-      0,  36,   0,   0,   0,  40, 
+      0,   0,   0, 112,   2,   0, 
+      0,  44,   6,   0,   0, 168, 
+      6,   0,   0,  12,   9,   0, 
+      0, 124,   9,   0,   0,  65, 
+    111, 110,  57,  48,   2,   0, 
+      0,  48,   2,   0,   0,   0, 
+      2, 255, 255, 248,   1,   0, 
+      0,  56,   0,   0,   0,   1, 
+      0,  44,   0,   0,   0,  56, 
+      0,   0,   0,  56,   0,   2, 
+      0,  36,   0,   0,   0,  56, 
       0,   0,   0,   0,   0,   1, 
-      2, 255, 255,  31,   0,   0, 
-      2,   0,   0,   0, 128,   0, 
-      0,  15, 176,  31,   0,   0, 
-      2,   0,   0,   0, 144,   0, 
-      8,  15, 160,  66,   0,   0, 
-      3,   0,   0,  15, 128,   0, 
-      0, 228, 176,   0,   8, 228, 
-    160,   1,   0,   0,   2,   0, 
-      8,  15, 128,   0,   0, 228, 
-    128, 255, 255,   0,   0,  83, 
-     72,  68,  82, 100,   0,   0, 
-      0,  64,   0,   0,   0,  25, 
-      0,   0,   0,  90,   0,   0, 
-      3,   0,  96,  16,   0,   0, 
-      0,   0,   0,  88,  24,   0, 
-      4,   0, 112,  16,   0,   0, 
+      1,   1,   0,   0,   0,   4, 
+      0,   3,   0,   0,   0,   0, 
+      0,   0,   0,   1,   2, 255, 
+    255,  81,   0,   0,   5,   3, 
+      0,  15, 160,   0,   0,   0, 
+     63,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,  81,   0,   0,   5,   4, 
+      0,  15, 160,   0,   0, 128, 
+     63,   0,   0, 128, 191,   0, 
+      0,   0,   0,   0,   0,   0, 
+    128,  31,   0,   0,   2,   0, 
+      0,   0, 128,   0,   0,  15, 
+    176,  31,   0,   0,   2,   0, 
+      0,   0, 144,   0,   8,  15, 
+    160,  31,   0,   0,   2,   0, 
+      0,   0, 144,   1,   8,  15, 
+    160,   2,   0,   0,   3,   0, 
+      0,   3, 128,   0,   0, 235, 
+    176,   1,   0, 228, 161,  90, 
+      0,   0,   4,   0,   0,   8, 
+    128,   0,   0, 228, 128,   0, 
+      0, 228, 128,   2,   0,   0, 
+    161,   5,   0,   0,   3,   0, 
+      0,   8, 128,   0,   0, 255, 
+    128,   1,   0, 170, 160,   1, 
+      0,   0,   2,   0,   0,   4, 
+    128,   1,   0, 255, 160,   8, 
+      0,   0,   3,   0,   0,   1, 
+    128,   0,   0, 228, 128,   0, 
+      0, 228, 160,   4,   0,   0, 
+      4,   0,   0,   2, 128,   0, 
+      0,   0, 128,   0,   0,   0, 
+    128,   0,   0, 255, 129,  35, 
+      0,   0,   2,   0,   0,   4, 
+    128,   0,   0,  85, 128,   7, 
+      0,   0,   2,   0,   0,   4, 
+    128,   0,   0, 170, 128,   6, 
+      0,   0,   2,   1,   0,   1, 
+    128,   0,   0, 170, 128,   1, 
+      0,   0,   2,   1,   0,   6, 
+    128,   1,   0,   0, 129,   2, 
+      0,   0,   3,   0,   0,  13, 
+    128,   0,   0,   0, 128,   1, 
+      0, 148, 128,   6,   0,   0, 
+      2,   1,   0,   1, 128,   1, 
+      0, 170, 160,   5,   0,   0, 
+      3,   0,   0,  13, 128,   0, 
+      0, 228, 128,   1,   0,   0, 
+    128,   1,   0,   0,   2,   1, 
+      0,   8, 128,   1,   0, 255, 
+    160,   4,   0,   0,   4,   1, 
+      0,   7, 128,   0,   0, 248, 
+    128,   0,   0, 170, 160,   1, 
+      0, 255, 128,  88,   0,   0, 
+      4,   2,   0,   1, 128,   1, 
+      0,   0, 128,   0,   0,   0, 
+    128,   0,   0, 255, 128,  88, 
+      0,   0,   4,   0,   0,  13, 
+    128,   1,   0, 148, 128,   4, 
+      0,  68, 160,   4,   0, 230, 
+    160,   1,   0,   0,   2,   2, 
+      0,   2, 128,   3,   0,   0, 
+    160,  66,   0,   0,   3,   1, 
+      0,  15, 128,   0,   0, 228, 
+    176,   1,   8, 228, 160,  66, 
+      0,   0,   3,   2,   0,  15, 
+    128,   2,   0, 228, 128,   0, 
+      8, 228, 160,   5,   0,   0, 
+      3,   1,   0,  15, 128,   1, 
+      0, 255, 128,   2,   0, 228, 
+    128,   2,   0,   0,   3,   0, 
+      0,   8, 128,   0,   0, 255, 
+    128,   0,   0,   0, 128,  88, 
+      0,   0,   4,   0,   0,   1, 
+    128,   0,   0, 255, 128,   0, 
+      0,   0, 128,   0,   0, 170, 
+    128,  88,   0,   0,   4,   1, 
+      0,  15, 128,   0,   0,   0, 
+    129,   4,   0, 170, 160,   1, 
+      0, 228, 128,  88,   0,   0, 
+      4,   0,   0,  15, 128,   0, 
+      0,  85, 128,   1,   0, 228, 
+    128,   4,   0, 170, 160,   1, 
+      0,   0,   2,   0,   8,  15, 
+    128,   0,   0, 228, 128, 255, 
+    255,   0,   0,  83,  72,  68, 
+     82, 180,   3,   0,   0,  64, 
+      0,   0,   0, 237,   0,   0, 
+      0,  89,   0,   0,   4,  70, 
+    142,  32,   0,   0,   0,   0, 
+      0,   7,   0,   0,   0,  90, 
+      0,   0,   3,   0,  96,  16, 
+      0,   0,   0,   0,   0,  90, 
+      0,   0,   3,   0,  96,  16, 
+      0,   1,   0,   0,   0,  88, 
+     24,   0,   4,   0, 112,  16, 
+      0,   0,   0,   0,   0,  85, 
+     85,   0,   0,  88,  24,   0, 
+      4,   0, 112,  16,   0,   1, 
       0,   0,   0,  85,  85,   0, 
       0,  98,  16,   0,   3,  50, 
      16,  16,   0,   1,   0,   0, 
+      0,  98,  16,   0,   3, 194, 
+     16,  16,   0,   1,   0,   0, 
       0, 101,   0,   0,   3, 242, 
      32,  16,   0,   0,   0,   0, 
-      0,  69,   0,   0,   9, 242, 
-     32,  16,   0,   0,   0,   0, 
-      0,  70,  16,  16,   0,   1, 
-      0,   0,   0,  70, 126,  16, 
-      0,   0,   0,   0,   0,   0, 
-     96,  16,   0,   0,   0,   0, 
+      0, 104,   0,   0,   2,   3, 
+      0,   0,   0,   0,   0,   0, 
+      9,  50,   0,  16,   0,   0, 
+      0,   0,   0, 230,  26,  16, 
+      0,   1,   0,   0,   0,  70, 
+    128,  32, 128,  65,   0,   0, 
+      0,   0,   0,   0,   0,   5, 
+      0,   0,   0,  54,   0,   0, 
+      6,  66,   0,  16,   0,   0, 
+      0,   0,   0,  58, 128,  32, 
+      0,   0,   0,   0,   0,   5, 
+      0,   0,   0,  16,   0,   0, 
+      8,  66,   0,  16,   0,   0, 
+      0,   0,   0,  70,   2,  16, 
+      0,   0,   0,   0,   0,  70, 
+    130,  32,   0,   0,   0,   0, 
+      0,   4,   0,   0,   0,  15, 
+      0,   0,   7,  18,   0,  16, 
+      0,   0,   0,   0,   0,  70, 
+      0,  16,   0,   0,   0,   0, 
+      0,  70,   0,  16,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      9,  18,   0,  16,   0,   0, 
+      0,   0,   0,  10,   0,  16, 
+      0,   0,   0,   0,   0,  10, 
+    128,  32, 128,  65,   0,   0, 
+      0,   0,   0,   0,   0,   6, 
+      0,   0,   0,  56,   0,   0, 
+      8,  18,   0,  16,   0,   0, 
+      0,   0,   0,  10,   0,  16, 
+      0,   0,   0,   0,   0,  42, 
+    128,  32,   0,   0,   0,   0, 
+      0,   5,   0,   0,   0,  50, 
+      0,   0,  10,  18,   0,  16, 
+      0,   0,   0,   0,   0,  42, 
+      0,  16,   0,   0,   0,   0, 
+      0,  42,   0,  16,   0,   0, 
+      0,   0,   0,  10,   0,  16, 
+    128,  65,   0,   0,   0,   0, 
+      0,   0,   0,  49,   0,   0, 
+      7,  34,   0,  16,   0,   0, 
+      0,   0,   0,  10,   0,  16, 
+      0,   0,   0,   0,   0,   1, 
+     64,   0,   0,   0,   0,   0, 
+      0,  75,   0,   0,   6,  18, 
+      0,  16,   0,   1,   0,   0, 
+      0,  10,   0,  16, 128, 129, 
+      0,   0,   0,   0,   0,   0, 
+      0,  54,   0,   0,   6,  34, 
+      0,  16,   0,   1,   0,   0, 
+      0,  10,   0,  16, 128,  65, 
+      0,   0,   0,   1,   0,   0, 
+      0,   0,   0,   0,   7,  82, 
+      0,  16,   0,   0,   0,   0, 
+      0, 166,  10,  16,   0,   0, 
+      0,   0,   0,   6,   1,  16, 
+      0,   1,   0,   0,   0,  14, 
+      0,   0,   8,  82,   0,  16, 
+      0,   0,   0,   0,   0,   6, 
+      2,  16,   0,   0,   0,   0, 
+      0, 166, 138,  32,   0,   0, 
+      0,   0,   0,   5,   0,   0, 
+      0,  56,   0,   0,   8,  50, 
+      0,  16,   0,   1,   0,   0, 
+      0, 134,   0,  16,   0,   0, 
+      0,   0,   0, 166, 138,  32, 
+      0,   0,   0,   0,   0,   4, 
+      0,   0,   0,  29,   0,   0, 
+      9,  50,   0,  16,   0,   1, 
+      0,   0,   0,  70,   0,  16, 
+      0,   1,   0,   0,   0, 246, 
+    143,  32, 128,  65,   0,   0, 
+      0,   0,   0,   0,   0,   5, 
+      0,   0,   0,   1,   0,   0, 
+     10,  50,   0,  16,   0,   1, 
+      0,   0,   0,  70,   0,  16, 
+      0,   1,   0,   0,   0,   2, 
+     64,   0,   0,   0,   0, 128, 
+     63,   0,   0, 128,  63,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   8,  18, 
+      0,  16,   0,   0,   0,   0, 
+      0,  42,   0,  16, 128,  65, 
+      0,   0,   0,   0,   0,   0, 
+      0,  10,   0,  16,   0,   0, 
+      0,   0,   0,  50,   0,   0, 
+      9,  18,   0,  16,   0,   2, 
+      0,   0,   0,  10,   0,  16, 
+      0,   1,   0,   0,   0,  10, 
+      0,  16,   0,   0,   0,   0, 
+      0,  42,   0,  16,   0,   0, 
+      0,   0,   0,  54,   0,   0, 
+      5,  34,   0,  16,   0,   2, 
+      0,   0,   0,   1,  64,   0, 
+      0,   0,   0,   0,  63,  69, 
+      0,   0,   9, 242,   0,  16, 
+      0,   2,   0,   0,   0,  70, 
+      0,  16,   0,   2,   0,   0, 
+      0,  70, 126,  16,   0,   0, 
+      0,   0,   0,   0,  96,  16, 
+      0,   0,   0,   0,   0,  31, 
+      0,   4,   3,  26,   0,  16, 
+      0,   0,   0,   0,   0,  54, 
+      0,   0,   8, 242,  32,  16, 
+      0,   0,   0,   0,   0,   2, 
+     64,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,  62,   0,   0,   1,  21, 
+      0,   0,   1,  52,   0,   0, 
+      7,  18,   0,  16,   0,   0, 
+      0,   0,   0,  26,   0,  16, 
+      0,   1,   0,   0,   0,  10, 
+      0,  16,   0,   1,   0,   0, 
+      0,  29,   0,   0,   7,  18, 
+      0,  16,   0,   0,   0,   0, 
+      0,   1,  64,   0,   0,   0, 
+      0,   0,   0,  10,   0,  16, 
+      0,   0,   0,   0,   0,  31, 
+      0,   4,   3,  10,   0,  16, 
+      0,   0,   0,   0,   0,  54, 
+      0,   0,   8, 242,  32,  16, 
+      0,   0,   0,   0,   0,   2, 
+     64,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,  62,   0,   0,   1,  21, 
+      0,   0,   1,  69,   0,   0, 
+      9, 242,   0,  16,   0,   0, 
+      0,   0,   0,  70,  16,  16, 
+      0,   1,   0,   0,   0,  70, 
+    126,  16,   0,   1,   0,   0, 
+      0,   0,  96,  16,   0,   1, 
+      0,   0,   0,  56,   0,   0, 
+      7, 242,  32,  16,   0,   0, 
+      0,   0,   0, 246,  15,  16, 
+      0,   0,   0,   0,   0,  70, 
+     14,  16,   0,   2,   0,   0, 
       0,  62,   0,   0,   1,  83, 
      84,  65,  84, 116,   0,   0, 
-      0,   2,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   2,   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,   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,   0,   0,   0, 
+      0,  32,   0,   0,   0,   3, 
+      0,   0,   0,   0,   0,   0, 
+      0,   3,   0,   0,   0,  16, 
+      0,   0,   0,   0,   0,   0, 
+      0,   1,   0,   0,   0,   3, 
+      0,   0,   0,   2,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   2,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   4, 
       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,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,  82,  68,  69, 
-     70, 156,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   2,   0,   0,   0,  28, 
+     70,  92,   2,   0,   0,   1, 
+      0,   0,   0, 224,   0,   0, 
+      0,   5,   0,   0,   0,  28, 
       0,   0,   0,   0,   4, 255, 
-    255,   0,   1,   0,   0, 105, 
-      0,   0,   0,  92,   0,   0, 
+    255,   0,   1,   0,   0,  43, 
+      2,   0,   0, 188,   0,   0, 
       0,   3,   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, 101, 
-      0,   0,   0,   2,   0,   0, 
-      0,   5,   0,   0,   0,   4, 
-      0,   0,   0, 255, 255, 255, 
-    255,   0,   0,   0,   0,   1, 
-      0,   0,   0,  12,   0,   0, 
-      0, 115,  83,  97, 109, 112, 
-    108, 101, 114,   0, 116, 101, 
-    120,   0,  77, 105,  99, 114, 
-    111, 115, 111, 102, 116,  32, 
-     40,  82,  41,  32,  72,  76, 
-     83,  76,  32,  83, 104,  97, 
-    100, 101, 114,  32,  67, 111, 
-    109, 112, 105, 108, 101, 114, 
-     32,  57,  46,  50,  57,  46, 
-     57,  53,  50,  46,  51,  49, 
-     49,  49,   0, 171, 171,  73, 
-     83,  71,  78, 104,   0,   0, 
-      0,   3,   0,   0,   0,   8, 
-      0,   0,   0,  80,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
+      0,   0,   0,   0,   0, 197, 
       0,   0,   0,   3,   0,   0, 
-      0,   0,   0,   0,   0,  15, 
-      0,   0,   0,  92,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   3,   0,   0, 
-      0,   1,   0,   0,   0,   3, 
-      3,   0,   0,  92,   0,   0, 
-      0,   1,   0,   0,   0,   0, 
-      0,   0,   0,   3,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   1,   0,   0,   0,   1, 
+      0,   0,   0,   0,   0,   0, 
+      0, 210,   0,   0,   0,   2, 
+      0,   0,   0,   5,   0,   0, 
+      0,   4,   0,   0,   0, 255, 
+    255, 255, 255,   0,   0,   0, 
       0,   1,   0,   0,   0,  12, 
-      0,   0,   0,  83,  86,  95, 
-     80, 111, 115, 105, 116, 105, 
-    111, 110,   0,  84,  69,  88, 
-     67,  79,  79,  82,  68,   0, 
-    171, 171, 171,  79,  83,  71, 
-     78,  44,   0,   0,   0,   1, 
-      0,   0,   0,   8,   0,   0, 
-      0,  32,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   3,   0,   0,   0,   0, 
-      0,   0,   0,  15,   0,   0, 
-      0,  83,  86,  95,  84,  97, 
-    114, 103, 101, 116,   0, 171, 
-    171,   1,   7,   0,   0,   0, 
-      0,   0,   0,  83,  97, 109, 
-    112, 108, 101,  77,  97, 115, 
-    107, 101, 100,  84, 101, 120, 
-    116, 117, 114, 101,   0,  36, 
-      4,   0,   0,  68,  88,  66, 
-     67, 116, 139,  68,  62,  73, 
-    113,  92,   4,  72,  76, 225, 
-    161,  30, 132, 222, 233,   1, 
-      0,   0,   0,  36,   4,   0, 
-      0,   6,   0,   0,   0,  56, 
-      0,   0,   0, 248,   0,   0, 
-      0, 244,   1,   0,   0, 112, 
-      2,   0,   0, 128,   3,   0, 
-      0, 180,   3,   0,   0,  65, 
-    111, 110,  57, 184,   0,   0, 
-      0, 184,   0,   0,   0,   0, 
-      2, 254, 255, 132,   0,   0, 
-      0,  52,   0,   0,   0,   1, 
-      0,  36,   0,   0,   0,  48, 
-      0,   0,   0,  48,   0,   0, 
-      0,  36,   0,   1,   0,  48, 
-      0,   0,   0,   0,   0,   3, 
-      0,   1,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      2, 254, 255,  81,   0,   0, 
-      5,   4,   0,  15, 160,   0, 
-      0,   0,   0,   0,   0, 128, 
-     63,   0,   0,   0,   0,   0, 
-      0,   0,   0,  31,   0,   0, 
-      2,   5,   0,   0, 128,   0, 
-      0,  15, 144,   4,   0,   0, 
-      4,   0,   0,   3, 224,   0, 
-      0, 228, 144,   2,   0, 238, 
-    160,   2,   0, 228, 160,   4, 
-      0,   0,   4,   0,   0,  12, 
-    224,   0,   0,  20, 144,   3, 
-      0, 180, 160,   3,   0,  20, 
-    160,   4,   0,   0,   4,   0, 
-      0,   3, 128,   0,   0, 228, 
-    144,   1,   0, 238, 160,   1, 
-      0, 228, 160,   2,   0,   0, 
-      3,   0,   0,   3, 192,   0, 
-      0, 228, 128,   0,   0, 228, 
-    160,   1,   0,   0,   2,   0, 
-      0,  12, 192,   4,   0,  68, 
-    160, 255, 255,   0,   0,  83, 
-     72,  68,  82, 244,   0,   0, 
-      0,  64,   0,   1,   0,  61, 
-      0,   0,   0,  89,   0,   0, 
-      4,  70, 142,  32,   0,   0, 
-      0,   0,   0,   3,   0,   0, 
-      0,  95,   0,   0,   3,  50, 
-     16,  16,   0,   0,   0,   0, 
-      0, 103,   0,   0,   4, 242, 
-     32,  16,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0, 101, 
-      0,   0,   3,  50,  32,  16, 
-      0,   1,   0,   0,   0, 101, 
-      0,   0,   3, 194,  32,  16, 
-      0,   1,   0,   0,   0,  50, 
-      0,   0,  11,  50,  32,  16, 
-      0,   0,   0,   0,   0,  70, 
-     16,  16,   0,   0,   0,   0, 
-      0, 230, 138,  32,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,  70, 128,  32,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,  54,   0,   0,   8, 194, 
-     32,  16,   0,   0,   0,   0, 
-      0,   2,  64,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0, 128,  63,  50,   0,   0, 
-     11,  50,  32,  16,   0,   1, 
-      0,   0,   0,  70,  16,  16, 
-      0,   0,   0,   0,   0, 230, 
-    138,  32,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0,  70, 
-    128,  32,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0,  50, 
-      0,   0,  11, 194,  32,  16, 
-      0,   1,   0,   0,   0,   6, 
-     20,  16,   0,   0,   0,   0, 
-      0, 166, 142,  32,   0,   0, 
-      0,   0,   0,   2,   0,   0, 
-      0,   6, 132,  32,   0,   0, 
-      0,   0,   0,   2,   0,   0, 
-      0,  62,   0,   0,   1,  83, 
-     84,  65,  84, 116,   0,   0, 
-      0,   5,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   4,   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,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
+      0,   0,   0, 214,   0,   0, 
+      0,   2,   0,   0,   0,   5, 
+      0,   0,   0,   4,   0,   0, 
+      0, 255, 255, 255, 255,   1, 
+      0,   0,   0,   1,   0,   0, 
+      0,  12,   0,   0,   0, 219, 
       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,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,  82,  68,  69, 
-     70,   8,   1,   0,   0,   1, 
-      0,   0,   0,  64,   0,   0, 
-      0,   1,   0,   0,   0,  28, 
-      0,   0,   0,   0,   4, 254, 
-    255,   0,   1,   0,   0, 212, 
-      0,   0,   0,  60,   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,  99, 
-     98,  48,   0,  60,   0,   0, 
-      0,   3,   0,   0,   0,  88, 
-      0,   0,   0,  48,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0, 160,   0,   0, 
-      0,   0,   0,   0,   0,  16, 
-      0,   0,   0,   2,   0,   0, 
-      0, 172,   0,   0,   0,   0, 
-      0,   0,   0, 188,   0,   0, 
-      0,  16,   0,   0,   0,  16, 
-      0,   0,   0,   2,   0,   0, 
-      0, 172,   0,   0,   0,   0, 
-      0,   0,   0, 198,   0,   0, 
-      0,  32,   0,   0,   0,  16, 
-      0,   0,   0,   2,   0,   0, 
-      0, 172,   0,   0,   0,   0, 
-      0,   0,   0,  81, 117,  97, 
-    100,  68, 101, 115,  99,   0, 
-    171, 171, 171,   1,   0,   3, 
-      0,   1,   0,   4,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,  84, 101, 120,  67, 111, 
-    111, 114, 100, 115,   0,  77, 
-     97, 115, 107,  84, 101, 120, 
-     67, 111, 111, 114, 100, 115, 
-      0,  77, 105,  99, 114, 111, 
-    115, 111, 102, 116,  32,  40, 
-     82,  41,  32,  72,  76,  83, 
-     76,  32,  83, 104,  97, 100, 
-    101, 114,  32,  67, 111, 109, 
-    112, 105, 108, 101, 114,  32, 
-     57,  46,  50,  57,  46,  57, 
-     53,  50,  46,  51,  49,  49, 
-     49,   0, 171, 171, 171,  73, 
-     83,  71,  78,  44,   0,   0, 
-      0,   1,   0,   0,   0,   8, 
-      0,   0,   0,  32,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   3,   0,   0, 
-      0,   0,   0,   0,   0,   7, 
-      3,   0,   0,  80,  79,  83, 
-     73,  84,  73,  79,  78,   0, 
-    171, 171, 171,  79,  83,  71, 
-     78, 104,   0,   0,   0,   3, 
-      0,   0,   0,   8,   0,   0, 
-      0,  80,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,   3,   0,   0,   0,   0, 
-      0,   0,   0,  15,   0,   0, 
-      0,  92,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   3,   0,   0,   0,   1, 
-      0,   0,   0,   3,  12,   0, 
-      0,  92,   0,   0,   0,   1, 
-      0,   0,   0,   0,   0,   0, 
-      0,   3,   0,   0,   0,   1, 
-      0,   0,   0,  12,   3,   0, 
-      0,  83,  86,  95,  80, 111, 
-    115, 105, 116, 105, 111, 110, 
-      0,  84,  69,  88,  67,  79, 
-     79,  82,  68,   0, 171, 171, 
-    171, 245,   9,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,   2,   0,   0,   0,   0, 
-      0,   0,   0, 208,   3,   0, 
-      0,  68,  88,  66,  67, 145, 
-     96, 208, 189, 244, 147,  57, 
-    205, 242, 133,  35, 176,  39, 
-    143, 121, 235,   1,   0,   0, 
-      0, 208,   3,   0,   0,   6, 
-      0,   0,   0,  56,   0,   0, 
-      0, 224,   0,   0,   0, 188, 
-      1,   0,   0,  56,   2,   0, 
-      0,  44,   3,   0,   0, 156, 
-      3,   0,   0,  65, 111, 110, 
-     57, 160,   0,   0,   0, 160, 
-      0,   0,   0,   0,   2, 255, 
-    255, 116,   0,   0,   0,  44, 
-      0,   0,   0,   0,   0,  44, 
-      0,   0,   0,  44,   0,   0, 
-      0,  44,   0,   2,   0,  36, 
-      0,   0,   0,  44,   0,   0, 
-      0,   0,   0,   1,   1,   1, 
-      0,   1,   2, 255, 255,  31, 
-      0,   0,   2,   0,   0,   0, 
-    128,   0,   0,  15, 176,  31, 
-      0,   0,   2,   0,   0,   0, 
-    144,   0,   8,  15, 160,  31, 
-      0,   0,   2,   0,   0,   0, 
-    144,   1,   8,  15, 160,   1, 
-      0,   0,   2,   0,   0,   3, 
-    128,   0,   0, 235, 176,  66, 
-      0,   0,   3,   1,   0,  15, 
-    128,   0,   0, 228, 176,   0, 
-      8, 228, 160,  66,   0,   0, 
-      3,   0,   0,  15, 128,   0, 
-      0, 228, 128,   1,   8, 228, 
-    160,   5,   0,   0,   3,   0, 
-      0,  15, 128,   0,   0, 255, 
-    128,   1,   0, 228, 128,   1, 
-      0,   0,   2,   0,   8,  15, 
-    128,   0,   0, 228, 128, 255, 
-    255,   0,   0,  83,  72,  68, 
-     82, 212,   0,   0,   0,  64, 
-      0,   0,   0,  53,   0,   0, 
-      0,  90,   0,   0,   3,   0, 
-     96,  16,   0,   0,   0,   0, 
-      0,  90,   0,   0,   3,   0, 
-     96,  16,   0,   1,   0,   0, 
-      0,  88,  24,   0,   4,   0, 
-    112,  16,   0,   0,   0,   0, 
-      0,  85,  85,   0,   0,  88, 
-     24,   0,   4,   0, 112,  16, 
-      0,   1,   0,   0,   0,  85, 
-     85,   0,   0,  98,  16,   0, 
-      3,  50,  16,  16,   0,   1, 
-      0,   0,   0,  98,  16,   0, 
-      3, 194,  16,  16,   0,   1, 
-      0,   0,   0, 101,   0,   0, 
-      3, 242,  32,  16,   0,   0, 
-      0,   0,   0, 104,   0,   0, 
-      2,   2,   0,   0,   0,  69, 
-      0,   0,   9, 242,   0,  16, 
-      0,   0,   0,   0,   0,  70, 
-     16,  16,   0,   1,   0,   0, 
-      0,  70, 126,  16,   0,   0, 
-      0,   0,   0,   0,  96,  16, 
-      0,   0,   0,   0,   0,  69, 
-      0,   0,   9, 242,   0,  16, 
-      0,   1,   0,   0,   0, 230, 
-     26,  16,   0,   1,   0,   0, 
-      0,  70, 126,  16,   0,   1, 
-      0,   0,   0,   0,  96,  16, 
-      0,   1,   0,   0,   0,  56, 
-      0,   0,   7, 242,  32,  16, 
-      0,   0,   0,   0,   0,  70, 
-     14,  16,   0,   0,   0,   0, 
-      0, 246,  15,  16,   0,   1, 
-      0,   0,   0,  62,   0,   0, 
-      1,  83,  84,  65,  84, 116, 
-      0,   0,   0,   4,   0,   0, 
-      0,   2,   0,   0,   0,   0, 
-      0,   0,   0,   3,   0,   0, 
-      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,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   2, 
-      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,   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, 
-      0,   0,   0,   0,   0,  82, 
-     68,  69,  70, 236,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   4,   0,   0, 
-      0,  28,   0,   0,   0,   0, 
-      4, 255, 255,   0,   1,   0, 
-      0, 187,   0,   0,   0, 156, 
-      0,   0,   0,   3,   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, 165,   0,   0,   0,   3, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,   1,   0,   0,   0,   0, 
-      0,   0,   0, 178,   0,   0, 
-      0,   2,   0,   0,   0,   5, 
-      0,   0,   0,   4,   0,   0, 
-      0, 255, 255, 255, 255,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,  12,   0,   0,   0, 182, 
-      0,   0,   0,   2,   0,   0, 
-      0,   5,   0,   0,   0,   4, 
-      0,   0,   0, 255, 255, 255, 
-    255,   1,   0,   0,   0,   1, 
-      0,   0,   0,  12,   0,   0, 
       0, 115,  83,  97, 109, 112, 
     108, 101, 114,   0, 115,  77, 
      97, 115, 107,  83,  97, 109, 
     112, 108, 101, 114,   0, 116, 
     101, 120,   0, 109,  97, 115, 
-    107,   0,  77, 105,  99, 114, 
+    107,   0,  99,  98,  50,   0, 
+    171, 219,   0,   0,   0,   7, 
+      0,   0,   0, 248,   0,   0, 
+      0, 112,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0, 160,   1,   0,   0,   0, 
+      0,   0,   0,  44,   0,   0, 
+      0,   0,   0,   0,   0, 184, 
+      1,   0,   0,   0,   0,   0, 
+      0, 200,   1,   0,   0,  48, 
+      0,   0,   0,   8,   0,   0, 
+      0,   0,   0,   0,   0, 212, 
+      1,   0,   0,   0,   0,   0, 
+      0, 228,   1,   0,   0,  64, 
+      0,   0,   0,  12,   0,   0, 
+      0,   2,   0,   0,   0, 236, 
+      1,   0,   0,   0,   0,   0, 
+      0, 252,   1,   0,   0,  80, 
+      0,   0,   0,   8,   0,   0, 
+      0,   2,   0,   0,   0, 212, 
+      1,   0,   0,   0,   0,   0, 
+      0,   4,   2,   0,   0,  88, 
+      0,   0,   0,   4,   0,   0, 
+      0,   2,   0,   0,   0,   8, 
+      2,   0,   0,   0,   0,   0, 
+      0,  24,   2,   0,   0,  92, 
+      0,   0,   0,   4,   0,   0, 
+      0,   2,   0,   0,   0,   8, 
+      2,   0,   0,   0,   0,   0, 
+      0,  32,   2,   0,   0,  96, 
+      0,   0,   0,   4,   0,   0, 
+      0,   2,   0,   0,   0,   8, 
+      2,   0,   0,   0,   0,   0, 
+      0,  68, 101, 118, 105,  99, 
+    101,  83, 112,  97,  99, 101, 
+     84, 111,  85, 115, 101, 114, 
+     83, 112,  97,  99, 101,   0, 
+    171,   3,   0,   3,   0,   3, 
+      0,   3,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0, 100, 
+    105, 109, 101, 110, 115, 105, 
+    111, 110, 115,   0, 171,   1, 
+      0,   3,   0,   1,   0,   2, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0, 100, 105, 102, 
+    102,   0, 171, 171, 171,   1, 
+      0,   3,   0,   1,   0,   3, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,  99, 101, 110, 
+    116, 101, 114,  49,   0,  65, 
+      0, 171, 171,   0,   0,   3, 
+      0,   1,   0,   1,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0, 114,  97, 100, 105, 117, 
+    115,  49,   0, 115, 113,  95, 
+    114,  97, 100, 105, 117, 115, 
+     49,   0,  77, 105,  99, 114, 
     111, 115, 111, 102, 116,  32, 
      40,  82,  41,  32,  72,  76, 
      83,  76,  32,  83, 104,  97, 
     100, 101, 114,  32,  67, 111, 
     109, 112, 105, 108, 101, 114, 
      32,  57,  46,  50,  57,  46, 
      57,  53,  50,  46,  51,  49, 
      49,  49,   0,  73,  83,  71, 
@@ -1878,644 +2809,650 @@ const BYTE d2deffect[] =
     171,  79,  83,  71,  78,  44, 
       0,   0,   0,   1,   0,   0, 
       0,   8,   0,   0,   0,  32, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   3, 
       0,   0,   0,   0,   0,   0, 
       0,  15,   0,   0,   0,  83, 
      86,  95,  84,  97, 114, 103, 
-    101, 116,   0, 171, 171,  49, 
-     14,   0,   0,   0,   0,   0, 
-      0,  83,  97, 109, 112, 108, 
-    101,  84, 101, 120, 116, 117, 
-    114, 101,  87, 105, 116, 104, 
-     83, 104,  97, 100, 111, 119, 
-      0,   4,   0,   0,   0,   1, 
-      0,   0,   0,   0,   0, 128, 
-     63,   1,   0,   0,   0,   0, 
-      0, 128,  63,   1,   0,   0, 
-      0,   0,   0, 128,  63,   1, 
-      0,   0,   0,   0,   0, 128, 
-     63,   1,   0,   0,   0,   3, 
-      0,   0,   0, 255, 255, 255, 
-    255,  36,   4,   0,   0,  68, 
-     88,  66,  67, 116, 139,  68, 
-     62,  73, 113,  92,   4,  72, 
-     76, 225, 161,  30, 132, 222, 
-    233,   1,   0,   0,   0,  36, 
-      4,   0,   0,   6,   0,   0, 
-      0,  56,   0,   0,   0, 248, 
-      0,   0,   0, 244,   1,   0, 
-      0, 112,   2,   0,   0, 128, 
-      3,   0,   0, 180,   3,   0, 
-      0,  65, 111, 110,  57, 184, 
-      0,   0,   0, 184,   0,   0, 
-      0,   0,   2, 254, 255, 132, 
-      0,   0,   0,  52,   0,   0, 
-      0,   1,   0,  36,   0,   0, 
-      0,  48,   0,   0,   0,  48, 
-      0,   0,   0,  36,   0,   1, 
-      0,  48,   0,   0,   0,   0, 
-      0,   3,   0,   1,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   2, 254, 255,  81, 
-      0,   0,   5,   4,   0,  15, 
-    160,   0,   0,   0,   0,   0, 
-      0, 128,  63,   0,   0,   0, 
-      0,   0,   0,   0,   0,  31, 
-      0,   0,   2,   5,   0,   0, 
-    128,   0,   0,  15, 144,   4, 
-      0,   0,   4,   0,   0,   3, 
-    224,   0,   0, 228, 144,   2, 
-      0, 238, 160,   2,   0, 228, 
-    160,   4,   0,   0,   4,   0, 
-      0,  12, 224,   0,   0,  20, 
-    144,   3,   0, 180, 160,   3, 
-      0,  20, 160,   4,   0,   0, 
-      4,   0,   0,   3, 128,   0, 
-      0, 228, 144,   1,   0, 238, 
-    160,   1,   0, 228, 160,   2, 
-      0,   0,   3,   0,   0,   3, 
-    192,   0,   0, 228, 128,   0, 
-      0, 228, 160,   1,   0,   0, 
-      2,   0,   0,  12, 192,   4, 
-      0,  68, 160, 255, 255,   0, 
-      0,  83,  72,  68,  82, 244, 
-      0,   0,   0,  64,   0,   1, 
-      0,  61,   0,   0,   0,  89, 
-      0,   0,   4,  70, 142,  32, 
-      0,   0,   0,   0,   0,   3, 
-      0,   0,   0,  95,   0,   0, 
-      3,  50,  16,  16,   0,   0, 
-      0,   0,   0, 103,   0,   0, 
-      4, 242,  32,  16,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0, 101,   0,   0,   3,  50, 
-     32,  16,   0,   1,   0,   0, 
-      0, 101,   0,   0,   3, 194, 
-     32,  16,   0,   1,   0,   0, 
-      0,  50,   0,   0,  11,  50, 
-     32,  16,   0,   0,   0,   0, 
-      0,  70,  16,  16,   0,   0, 
-      0,   0,   0, 230, 138,  32, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,  70, 128,  32, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,  54,   0,   0, 
-      8, 194,  32,  16,   0,   0, 
-      0,   0,   0,   2,  64,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0, 128,  63,  50, 
-      0,   0,  11,  50,  32,  16, 
-      0,   1,   0,   0,   0,  70, 
-     16,  16,   0,   0,   0,   0, 
-      0, 230, 138,  32,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,  70, 128,  32,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,  50,   0,   0,  11, 194, 
-     32,  16,   0,   1,   0,   0, 
-      0,   6,  20,  16,   0,   0, 
-      0,   0,   0, 166, 142,  32, 
-      0,   0,   0,   0,   0,   2, 
-      0,   0,   0,   6, 132,  32, 
-      0,   0,   0,   0,   0,   2, 
-      0,   0,   0,  62,   0,   0, 
-      1,  83,  84,  65,  84, 116, 
-      0,   0,   0,   5,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   4,   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,   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,   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,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,  82, 
-     68,  69,  70,   8,   1,   0, 
-      0,   1,   0,   0,   0,  64, 
-      0,   0,   0,   1,   0,   0, 
-      0,  28,   0,   0,   0,   0, 
-      4, 254, 255,   0,   1,   0, 
-      0, 212,   0,   0,   0,  60, 
-      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,  99,  98,  48,   0,  60, 
-      0,   0,   0,   3,   0,   0, 
-      0,  88,   0,   0,   0,  48, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0, 160, 
-      0,   0,   0,   0,   0,   0, 
-      0,  16,   0,   0,   0,   2, 
-      0,   0,   0, 172,   0,   0, 
-      0,   0,   0,   0,   0, 188, 
-      0,   0,   0,  16,   0,   0, 
-      0,  16,   0,   0,   0,   2, 
-      0,   0,   0, 172,   0,   0, 
-      0,   0,   0,   0,   0, 198, 
-      0,   0,   0,  32,   0,   0, 
-      0,  16,   0,   0,   0,   2, 
-      0,   0,   0, 172,   0,   0, 
-      0,   0,   0,   0,   0,  81, 
-    117,  97, 100,  68, 101, 115, 
-     99,   0, 171, 171, 171,   1, 
-      0,   3,   0,   1,   0,   4, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,  84, 101, 120, 
-     67, 111, 111, 114, 100, 115, 
-      0,  77,  97, 115, 107,  84, 
-    101, 120,  67, 111, 111, 114, 
-    100, 115,   0,  77, 105,  99, 
-    114, 111, 115, 111, 102, 116, 
-     32,  40,  82,  41,  32,  72, 
-     76,  83,  76,  32,  83, 104, 
-     97, 100, 101, 114,  32,  67, 
-    111, 109, 112, 105, 108, 101, 
-    114,  32,  57,  46,  50,  57, 
-     46,  57,  53,  50,  46,  51, 
-     49,  49,  49,   0, 171, 171, 
-    171,  73,  83,  71,  78,  44, 
-      0,   0,   0,   1,   0,   0, 
-      0,   8,   0,   0,   0,  32, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   3, 
-      0,   0,   0,   0,   0,   0, 
-      0,   7,   3,   0,   0,  80, 
-     79,  83,  73,  84,  73,  79, 
-     78,   0, 171, 171, 171,  79, 
-     83,  71,  78, 104,   0,   0, 
-      0,   3,   0,   0,   0,   8, 
-      0,   0,   0,  80,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,   3,   0,   0, 
-      0,   0,   0,   0,   0,  15, 
-      0,   0,   0,  92,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   3,   0,   0, 
-      0,   1,   0,   0,   0,   3, 
-     12,   0,   0,  92,   0,   0, 
-      0,   1,   0,   0,   0,   0, 
-      0,   0,   0,   3,   0,   0, 
-      0,   1,   0,   0,   0,  12, 
-      3,   0,   0,  83,  86,  95, 
-     80, 111, 115, 105, 116, 105, 
-    111, 110,   0,  84,  69,  88, 
-     67,  79,  79,  82,  68,   0, 
-    171, 171, 171,  85,  18,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,   2,   0,   0, 
-      0,   0,   0,   0,   0, 232, 
-      9,   0,   0,  68,  88,  66, 
-     67,  45,  80,  33,   8,   5, 
-     16, 134, 134, 115,  16, 129, 
-     43, 103, 216, 255, 210,   1, 
-      0,   0,   0, 232,   9,   0, 
-      0,   6,   0,   0,   0,  56, 
-      0,   0,   0, 248,   2,   0, 
-      0,   8,   7,   0,   0, 132, 
-      7,   0,   0,  68,   9,   0, 
-      0, 180,   9,   0,   0,  65, 
-    111, 110,  57, 184,   2,   0, 
-      0, 184,   2,   0,   0,   0, 
-      2, 255, 255, 120,   2,   0, 
-      0,  64,   0,   0,   0,   2, 
-      0,  40,   0,   0,   0,  64, 
-      0,   0,   0,  64,   0,   1, 
-      0,  36,   0,   0,   0,  64, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   3,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   6,   0,   4,   0,   3, 
-      0,   0,   0,   0,   0,   1, 
-      2, 255, 255,  31,   0,   0, 
-      2,   0,   0,   0, 128,   0, 
-      0,  15, 176,  31,   0,   0, 
-      2,   0,   0,   0, 144,   0, 
-      8,  15, 160,   2,   0,   0, 
-      3,   0,   0,   1, 128,   0, 
-      0,   0, 176,   0,   0,  85, 
-    160,   1,   0,   0,   2,   0, 
-      0,   2, 128,   0,   0,  85, 
-    176,   2,   0,   0,   3,   1, 
-      0,   1, 128,   0,   0,   0, 
-    176,   0,   0,   0, 160,   1, 
-      0,   0,   2,   1,   0,   2, 
-    128,   0,   0,  85, 176,  66, 
-      0,   0,   3,   0,   0,  15, 
-    128,   0,   0, 228, 128,   0, 
-      8, 228, 160,  66,   0,   0, 
-      3,   1,   0,  15, 128,   1, 
-      0, 228, 128,   0,   8, 228, 
-    160,   5,   0,   0,   3,   0, 
-      0,   1, 128,   0,   0, 255, 
-    128,   3,   0,  85, 160,   4, 
-      0,   0,   4,   0,   0,   1, 
-    128,   3,   0,   0, 160,   1, 
-      0, 255, 128,   0,   0,   0, 
-    128,   2,   0,   0,   3,   1, 
-      0,   1, 128,   0,   0,   0, 
-    176,   0,   0, 170, 160,   1, 
-      0,   0,   2,   1,   0,   2, 
-    128,   0,   0,  85, 176,   2, 
-      0,   0,   3,   2,   0,   1, 
-    128,   0,   0,   0, 176,   0, 
-      0, 255, 160,   1,   0,   0, 
-      2,   2,   0,   2, 128,   0, 
-      0,  85, 176,  66,   0,   0, 
-      3,   1,   0,  15, 128,   1, 
-      0, 228, 128,   0,   8, 228, 
-    160,  66,   0,   0,   3,   2, 
-      0,  15, 128,   2,   0, 228, 
-    128,   0,   8, 228, 160,   4, 
-      0,   0,   4,   0,   0,   1, 
-    128,   3,   0, 170, 160,   1, 
-      0, 255, 128,   0,   0,   0, 
-    128,   4,   0,   0,   4,   0, 
-      0,   1, 128,   3,   0, 255, 
-    160,   2,   0, 255, 128,   0, 
-      0,   0, 128,   2,   0,   0, 
-      3,   1,   0,   1, 128,   0, 
-      0,   0, 176,   1,   0,   0, 
-    160,   1,   0,   0,   2,   1, 
-      0,   2, 128,   0,   0,  85, 
-    176,   2,   0,   0,   3,   2, 
-      0,   1, 128,   0,   0,   0, 
-    176,   1,   0,  85, 160,   1, 
-      0,   0,   2,   2,   0,   2, 
-    128,   0,   0,  85, 176,  66, 
-      0,   0,   3,   1,   0,  15, 
-    128,   1,   0, 228, 128,   0, 
-      8, 228, 160,  66,   0,   0, 
-      3,   2,   0,  15, 128,   2, 
-      0, 228, 128,   0,   8, 228, 
-    160,   4,   0,   0,   4,   0, 
-      0,   1, 128,   4,   0,   0, 
-    160,   1,   0, 255, 128,   0, 
-      0,   0, 128,   4,   0,   0, 
-      4,   0,   0,   1, 128,   4, 
-      0,  85, 160,   2,   0, 255, 
-    128,   0,   0,   0, 128,   2, 
-      0,   0,   3,   1,   0,   1, 
-    128,   0,   0,   0, 176,   1, 
-      0, 170, 160,   1,   0,   0, 
-      2,   1,   0,   2, 128,   0, 
-      0,  85, 176,   2,   0,   0, 
-      3,   2,   0,   1, 128,   0, 
-      0,   0, 176,   1,   0, 255, 
-    160,   1,   0,   0,   2,   2, 
-      0,   2, 128,   0,   0,  85, 
-    176,  66,   0,   0,   3,   1, 
-      0,  15, 128,   1,   0, 228, 
-    128,   0,   8, 228, 160,  66, 
-      0,   0,   3,   2,   0,  15, 
-    128,   2,   0, 228, 128,   0, 
-      8, 228, 160,   4,   0,   0, 
-      4,   0,   0,   1, 128,   4, 
-      0, 170, 160,   1,   0, 255, 
-    128,   0,   0,   0, 128,   4, 
-      0,   0,   4,   0,   0,   1, 
-    128,   4,   0, 255, 160,   2, 
-      0, 255, 128,   0,   0,   0, 
-    128,   2,   0,   0,   3,   1, 
-      0,   1, 128,   0,   0,   0, 
-    176,   2,   0,   0, 160,   1, 
-      0,   0,   2,   1,   0,   2, 
-    128,   0,   0,  85, 176,  66, 
-      0,   0,   3,   1,   0,  15, 
-    128,   1,   0, 228, 128,   0, 
-      8, 228, 160,   4,   0,   0, 
-      4,   0,   0,   1, 128,   5, 
-      0,   0, 160,   1,   0, 255, 
-    128,   0,   0,   0, 128,   5, 
-      0,   0,   3,   0,   0,  15, 
-    128,   0,   0,   0, 128,   6, 
-      0, 228, 160,   1,   0,   0, 
-      2,   0,   8,  15, 128,   0, 
-      0, 228, 128, 255, 255,   0, 
-      0,  83,  72,  68,  82,   8, 
-      4,   0,   0,  64,   0,   0, 
-      0,   2,   1,   0,   0,  89, 
-      0,   0,   4,  70, 142,  32, 
-      0,   0,   0,   0,   0,  10, 
-      0,   0,   0,  90,   0,   0, 
-      3,   0,  96,  16,   0,   0, 
-      0,   0,   0,  88,  24,   0, 
-      4,   0, 112,  16,   0,   0, 
-      0,   0,   0,  85,  85,   0, 
-      0,  98,  16,   0,   3,  50, 
-     16,  16,   0,   1,   0,   0, 
-      0, 101,   0,   0,   3, 242, 
-     32,  16,   0,   0,   0,   0, 
-      0, 104,   0,   0,   2,   4, 
-      0,   0,   0,   0,   0,   0, 
-      8, 242,   0,  16,   0,   0, 
-      0,   0,   0,   6,  16,  16, 
-      0,   1,   0,   0,   0,  38, 
-    135,  32,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,  54, 
-      0,   0,   5,  82,   0,  16, 
-      0,   1,   0,   0,   0,  86, 
-      7,  16,   0,   0,   0,   0, 
-      0,  54,   0,   0,   5, 162, 
-      0,  16,   0,   1,   0,   0, 
-      0,  86,  21,  16,   0,   1, 
-      0,   0,   0,  69,   0,   0, 
-      9, 242,   0,  16,   0,   2, 
-      0,   0,   0, 230,  10,  16, 
-      0,   1,   0,   0,   0,  70, 
-    126,  16,   0,   0,   0,   0, 
-      0,   0,  96,  16,   0,   0, 
-      0,   0,   0,  69,   0,   0, 
-      9, 242,   0,  16,   0,   1, 
-      0,   0,   0,  70,   0,  16, 
-      0,   1,   0,   0,   0,  70, 
-    126,  16,   0,   0,   0,   0, 
-      0,   0,  96,  16,   0,   0, 
-      0,   0,   0,  56,   0,   0, 
-      8,  18,   0,  16,   0,   1, 
-      0,   0,   0,  58,   0,  16, 
-      0,   2,   0,   0,   0,  26, 
-    128,  32,   0,   0,   0,   0, 
-      0,   6,   0,   0,   0,  50, 
-      0,   0,  10,  18,   0,  16, 
-      0,   1,   0,   0,   0,  10, 
-    128,  32,   0,   0,   0,   0, 
-      0,   6,   0,   0,   0,  58, 
-      0,  16,   0,   1,   0,   0, 
-      0,  10,   0,  16,   0,   1, 
-      0,   0,   0,  54,   0,   0, 
-      5, 162,   0,  16,   0,   0, 
-      0,   0,   0,  86,  21,  16, 
-      0,   1,   0,   0,   0,  69, 
-      0,   0,   9, 242,   0,  16, 
-      0,   2,   0,   0,   0,  70, 
-      0,  16,   0,   0,   0,   0, 
-      0,  70, 126,  16,   0,   0, 
-      0,   0,   0,   0,  96,  16, 
-      0,   0,   0,   0,   0,  69, 
-      0,   0,   9, 242,   0,  16, 
-      0,   0,   0,   0,   0, 230, 
-     10,  16,   0,   0,   0,   0, 
-      0,  70, 126,  16,   0,   0, 
-      0,   0,   0,   0,  96,  16, 
-      0,   0,   0,   0,   0,  50, 
-      0,   0,  10,  18,   0,  16, 
-      0,   0,   0,   0,   0,  42, 
-    128,  32,   0,   0,   0,   0, 
-      0,   6,   0,   0,   0,  58, 
-      0,  16,   0,   2,   0,   0, 
-      0,  10,   0,  16,   0,   1, 
-      0,   0,   0,  50,   0,   0, 
-     10,  18,   0,  16,   0,   0, 
-      0,   0,   0,  58, 128,  32, 
-      0,   0,   0,   0,   0,   6, 
-      0,   0,   0,  58,   0,  16, 
-      0,   0,   0,   0,   0,  10, 
-      0,  16,   0,   0,   0,   0, 
-      0,   0,   0,   0,   8, 242, 
-      0,  16,   0,   1,   0,   0, 
-      0,   6,  16,  16,   0,   1, 
-      0,   0,   0,  38, 135,  32, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,  54,   0,   0, 
-      5,  82,   0,  16,   0,   2, 
-      0,   0,   0,  86,   7,  16, 
-      0,   1,   0,   0,   0,  54, 
-      0,   0,   5, 162,   0,  16, 
-      0,   2,   0,   0,   0,  86, 
-     21,  16,   0,   1,   0,   0, 
-      0,  69,   0,   0,   9, 242, 
-      0,  16,   0,   3,   0,   0, 
-      0,  70,   0,  16,   0,   2, 
-      0,   0,   0,  70, 126,  16, 
-      0,   0,   0,   0,   0,   0, 
-     96,  16,   0,   0,   0,   0, 
-      0,  69,   0,   0,   9, 242, 
-      0,  16,   0,   2,   0,   0, 
-      0, 230,  10,  16,   0,   2, 
-      0,   0,   0,  70, 126,  16, 
-      0,   0,   0,   0,   0,   0, 
-     96,  16,   0,   0,   0,   0, 
-      0,  50,   0,   0,  10,  18, 
-      0,  16,   0,   0,   0,   0, 
-      0,  10, 128,  32,   0,   0, 
-      0,   0,   0,   7,   0,   0, 
-      0,  58,   0,  16,   0,   3, 
-      0,   0,   0,  10,   0,  16, 
-      0,   0,   0,   0,   0,  50, 
-      0,   0,  10,  18,   0,  16, 
-      0,   0,   0,   0,   0,  26, 
-    128,  32,   0,   0,   0,   0, 
-      0,   7,   0,   0,   0,  58, 
-      0,  16,   0,   2,   0,   0, 
-      0,  10,   0,  16,   0,   0, 
-      0,   0,   0,  54,   0,   0, 
-      5, 162,   0,  16,   0,   1, 
-      0,   0,   0,  86,  21,  16, 
-      0,   1,   0,   0,   0,  69, 
-      0,   0,   9, 242,   0,  16, 
-      0,   2,   0,   0,   0,  70, 
-      0,  16,   0,   1,   0,   0, 
-      0,  70, 126,  16,   0,   0, 
-      0,   0,   0,   0,  96,  16, 
-      0,   0,   0,   0,   0,  69, 
-      0,   0,   9, 242,   0,  16, 
-      0,   1,   0,   0,   0, 230, 
-     10,  16,   0,   1,   0,   0, 
-      0,  70, 126,  16,   0,   0, 
-      0,   0,   0,   0,  96,  16, 
-      0,   0,   0,   0,   0,  50, 
-      0,   0,  10,  18,   0,  16, 
-      0,   0,   0,   0,   0,  42, 
-    128,  32,   0,   0,   0,   0, 
-      0,   7,   0,   0,   0,  58, 
-      0,  16,   0,   2,   0,   0, 
-      0,  10,   0,  16,   0,   0, 
-      0,   0,   0,  50,   0,   0, 
-     10,  18,   0,  16,   0,   0, 
-      0,   0,   0,  58, 128,  32, 
-      0,   0,   0,   0,   0,   7, 
-      0,   0,   0,  58,   0,  16, 
-      0,   1,   0,   0,   0,  10, 
-      0,  16,   0,   0,   0,   0, 
-      0,   0,   0,   0,   8,  18, 
-      0,  16,   0,   1,   0,   0, 
-      0,  10,  16,  16,   0,   1, 
-      0,   0,   0,  10, 128,  32, 
-      0,   0,   0,   0,   0,   2, 
-      0,   0,   0,  54,   0,   0, 
-      5,  34,   0,  16,   0,   1, 
-      0,   0,   0,  26,  16,  16, 
-      0,   1,   0,   0,   0,  69, 
-      0,   0,   9, 242,   0,  16, 
-      0,   1,   0,   0,   0,  70, 
-      0,  16,   0,   1,   0,   0, 
-      0,  70, 126,  16,   0,   0, 
-      0,   0,   0,   0,  96,  16, 
-      0,   0,   0,   0,   0,  50, 
-      0,   0,  10,  18,   0,  16, 
-      0,   0,   0,   0,   0,  10, 
-    128,  32,   0,   0,   0,   0, 
-      0,   8,   0,   0,   0,  58, 
-      0,  16,   0,   1,   0,   0, 
-      0,  10,   0,  16,   0,   0, 
-      0,   0,   0,  56,   0,   0, 
-      8, 242,  32,  16,   0,   0, 
-      0,   0,   0,   6,   0,  16, 
-      0,   0,   0,   0,   0,  70, 
-    142,  32,   0,   0,   0,   0, 
-      0,   9,   0,   0,   0,  62, 
-      0,   0,   1,  83,  84,  65, 
-     84, 116,   0,   0,   0,  30, 
-      0,   0,   0,   4,   0,   0, 
-      0,   0,   0,   0,   0,   2, 
-      0,   0,   0,   5,   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,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   9,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   9,   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,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,  82,  68,  69,  70, 184, 
-      1,   0,   0,   1,   0,   0, 
-      0, 148,   0,   0,   0,   3, 
-      0,   0,   0,  28,   0,   0, 
-      0,   0,   4, 255, 255,   0, 
-      1,   0,   0, 132,   1,   0, 
-      0, 124,   0,   0,   0,   3, 
-      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, 139,   0,   0, 
-      0,   2,   0,   0,   0,   5, 
-      0,   0,   0,   4,   0,   0, 
-      0, 255, 255, 255, 255,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,  12,   0,   0,   0, 143, 
-      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, 115,  83, 104,  97, 100, 
-    111, 119,  83,  97, 109, 112, 
-    108, 101, 114,   0, 116, 101, 
-    120,   0,  99,  98,  49,   0, 
-    171, 143,   0,   0,   0,   4, 
-      0,   0,   0, 172,   0,   0, 
-      0, 160,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,  12,   1,   0,   0,   0, 
-      0,   0,   0,  48,   0,   0, 
-      0,   2,   0,   0,   0,  28, 
+    101, 116,   0, 171, 171, 231, 
+     17,   0,   0,   0,   0,   0, 
+      0,  80,  49,   0,   4,   7, 
+      0,   0,  68,  88,  66,  67, 
+    171,   7,  14, 215, 173,  41, 
+     24, 247, 237,   1,  38,  39, 
+    209, 221, 241, 232,   1,   0, 
+      0,   0,   4,   7,   0,   0, 
+      6,   0,   0,   0,  56,   0, 
+      0,   0, 148,   1,   0,   0, 
+    104,   3,   0,   0, 228,   3, 
+      0,   0,  96,   6,   0,   0, 
+    148,   6,   0,   0,  65, 111, 
+    110,  57,  84,   1,   0,   0, 
+     84,   1,   0,   0,   0,   2, 
+    254, 255, 252,   0,   0,   0, 
+     88,   0,   0,   0,   4,   0, 
+     36,   0,   0,   0,  84,   0, 
+      0,   0,  84,   0,   0,   0, 
+     36,   0,   1,   0,  84,   0, 
+      0,   0,   0,   0,   1,   0, 
       1,   0,   0,   0,   0,   0, 
-      0,  44,   1,   0,   0,  48, 
-      0,   0,   0,  48,   0,   0, 
-      0,   0,   0,   0,   0,  60, 
-      1,   0,   0,   0,   0,   0, 
-      0,  76,   1,   0,   0,  96, 
-      0,   0,   0,  48,   0,   0, 
-      0,   2,   0,   0,   0,  88, 
-      1,   0,   0,   0,   0,   0, 
-      0, 104,   1,   0,   0, 144, 
-      0,   0,   0,  16,   0,   0, 
-      0,   2,   0,   0,   0, 116, 
+      0,   0,   2,   0,   1,   0, 
+      2,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   2,   0, 
+      3,   0,   0,   0,   0,   0, 
+      1,   0,   3,   0,   1,   0, 
+      5,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   1,   2, 
+    254, 255,  81,   0,   0,   5, 
+      6,   0,  15, 160,   0,   0, 
+    128,  63,   0,   0,   0,  63, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  31,   0,   0,   2, 
+      5,   0,   0, 128,   0,   0, 
+     15, 144,   4,   0,   0,   4, 
+      0,   0,   3, 224,   0,   0, 
+    228, 144,   2,   0, 238, 160, 
+      2,   0, 228, 160,   4,   0, 
+      0,   4,   0,   0,   3, 128, 
+      0,   0, 228, 144,   1,   0, 
+    238, 160,   1,   0, 228, 160, 
+      2,   0,   0,   3,   0,   0, 
+      4, 128,   0,   0,   0, 128, 
+      6,   0,   0, 160,   5,   0, 
+      0,   3,   0,   0,   4, 128, 
+      0,   0, 170, 128,   5,   0, 
+      0, 160,   5,   0,   0,   3, 
+      1,   0,   1, 128,   0,   0, 
+    170, 128,   6,   0,  85, 160, 
+      2,   0,   0,   3,   0,   0, 
+      4, 128,   0,   0,  85, 129, 
+      6,   0,   0, 160,   2,   0, 
+      0,   3,   0,   0,   3, 192, 
+      0,   0, 228, 128,   0,   0, 
+    228, 160,   5,   0,   0,   3, 
+      0,   0,   1, 128,   0,   0, 
+    170, 128,   5,   0,  85, 160, 
+      5,   0,   0,   3,   1,   0, 
+      2, 128,   0,   0,   0, 128, 
+      6,   0,  85, 160,   1,   0, 
+      0,   2,   1,   0,   4, 128, 
+      6,   0,   0, 160,   8,   0, 
+      0,   3,   0,   0,   8, 224, 
+      1,   0, 228, 128,   3,   0, 
+    228, 160,   8,   0,   0,   3, 
+      0,   0,   4, 224,   1,   0, 
+    228, 128,   4,   0, 228, 160, 
+      1,   0,   0,   2,   0,   0, 
+     12, 192,   6,   0,  36, 160, 
+    255, 255,   0,   0,  83,  72, 
+     68,  82, 204,   1,   0,   0, 
+     64,   0,   1,   0, 115,   0, 
+      0,   0,  89,   0,   0,   4, 
+     70, 142,  32,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+     89,   0,   0,   4,  70, 142, 
+     32,   0,   1,   0,   0,   0, 
+      4,   0,   0,   0,  95,   0, 
+      0,   3,  50,  16,  16,   0, 
+      0,   0,   0,   0, 103,   0, 
+      0,   4, 242,  32,  16,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0, 101,   0,   0,   3, 
+     50,  32,  16,   0,   1,   0, 
+      0,   0, 101,   0,   0,   3, 
+    194,  32,  16,   0,   1,   0, 
+      0,   0, 104,   0,   0,   2, 
+      2,   0,   0,   0,  54,   0, 
+      0,   8, 194,  32,  16,   0, 
+      0,   0,   0,   0,   2,  64, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0, 128,  63, 
+     50,   0,   0,  11,  50,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70,  16,  16,   0,   0,   0, 
+      0,   0, 230, 138,  32,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  70, 128,  32,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  54,   0,   0,   5, 
+     50,  32,  16,   0,   0,   0, 
+      0,   0,  70,   0,  16,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   7,  18,   0,  16,   0, 
+      0,   0,   0,   0,  10,   0, 
+     16,   0,   0,   0,   0,   0, 
+      1,  64,   0,   0,   0,   0, 
+    128,  63,   0,   0,   0,   8, 
+     34,   0,  16,   0,   0,   0, 
+      0,   0,  26,   0,  16, 128, 
+     65,   0,   0,   0,   0,   0, 
+      0,   0,   1,  64,   0,   0, 
+      0,   0, 128,  63,  56,   0, 
+      0,   8,  50,   0,  16,   0, 
+      0,   0,   0,   0,  70,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70, 128,  32,   0,   1,   0, 
+      0,   0,   3,   0,   0,   0, 
+     56,   0,   0,  10,  50,   0, 
+     16,   0,   1,   0,   0,   0, 
+     70,   0,  16,   0,   0,   0, 
+      0,   0,   2,  64,   0,   0, 
+      0,   0,   0,  63,   0,   0, 
+      0,  63,   0,   0,   0,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   5,  66,   0,  16,   0, 
+      1,   0,   0,   0,   1,  64, 
+      0,   0,   0,   0, 128,  63, 
+     16,   0,   0,   8,  66,  32, 
+     16,   0,   1,   0,   0,   0, 
+     70,   2,  16,   0,   1,   0, 
+      0,   0,  70, 130,  32,   0, 
       1,   0,   0,   0,   0,   0, 
-      0,  66, 108, 117, 114,  79, 
-    102, 102, 115, 101, 116, 115, 
-     72,   0, 171, 171, 171,   1, 
-      0,   3,   0,   1,   0,   4, 
-      0,   3,   0,   0,   0,   0, 
-      0,   0,   0,  66, 108, 117, 
-    114,  79, 102, 102, 115, 101, 
-    116, 115,  86,   0, 171, 171, 
-    171,   1,   0,   3,   0,   1, 
-      0,   4,   0,   3,   0,   0, 
-      0,   0,   0,   0,   0,  66, 
-    108, 117, 114,  87, 101, 105, 
-    103, 104, 116, 115,   0,   1, 
-      0,   3,   0,   1,   0,   4, 
-      0,   3,   0,   0,   0,   0, 
-      0,   0,   0,  83, 104,  97, 
-    100, 111, 119,  67, 111, 108, 
-    111, 114,   0,   1,   0,   3, 
-      0,   1,   0,   4,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
+      0,   0,  16,   0,   0,   8, 
+    130,  32,  16,   0,   1,   0, 
+      0,   0,  70,   2,  16,   0, 
+      1,   0,   0,   0,  70, 130, 
+     32,   0,   1,   0,   0,   0, 
+      1,   0,   0,   0,  50,   0, 
+      0,  11,  50,  32,  16,   0, 
+      1,   0,   0,   0,  70,  16, 
+     16,   0,   0,   0,   0,   0, 
+    230, 138,  32,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+     70, 128,  32,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+     62,   0,   0,   1,  83,  84, 
+     65,  84, 116,   0,   0,   0, 
+     12,   0,   0,   0,   2,   0, 
+      0,   0,   0,   0,   0,   0, 
+      4,   0,   0,   0,   6,   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,   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,   0,   0,   0,   3,   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,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  82,  68,  69,  70, 
+    116,   2,   0,   0,   2,   0, 
+      0,   0, 100,   0,   0,   0, 
+      2,   0,   0,   0,  28,   0, 
+      0,   0,   0,   4, 254, 255, 
+      0,   1,   0,   0,  67,   2, 
+      0,   0,  92,   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,  96,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+     99,  98,  48,   0,  99,  98, 
+     50,   0,  92,   0,   0,   0, 
+      3,   0,   0,   0, 148,   0, 
+      0,   0,  48,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  96,   0,   0,   0, 
+      7,   0,   0,   0,  16,   1, 
+      0,   0, 112,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0, 220,   0,   0,   0, 
+      0,   0,   0,   0,  16,   0, 
+      0,   0,   2,   0,   0,   0, 
+    232,   0,   0,   0,   0,   0, 
+      0,   0, 248,   0,   0,   0, 
+     16,   0,   0,   0,  16,   0, 
+      0,   0,   0,   0,   0,   0, 
+    232,   0,   0,   0,   0,   0, 
+      0,   0,   2,   1,   0,   0, 
+     32,   0,   0,   0,  16,   0, 
+      0,   0,   2,   0,   0,   0, 
+    232,   0,   0,   0,   0,   0, 
+      0,   0,  81, 117,  97, 100, 
+     68, 101, 115,  99,   0, 171, 
+    171, 171,   1,   0,   3,   0, 
+      1,   0,   4,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     84, 101, 120,  67, 111, 111, 
+    114, 100, 115,   0,  77,  97, 
+    115, 107,  84, 101, 120,  67, 
+    111, 111, 114, 100, 115,   0, 
+    184,   1,   0,   0,   0,   0, 
+      0,   0,  44,   0,   0,   0, 
+      2,   0,   0,   0, 208,   1, 
+      0,   0,   0,   0,   0,   0, 
+    224,   1,   0,   0,  48,   0, 
+      0,   0,   8,   0,   0,   0, 
+      2,   0,   0,   0, 236,   1, 
+      0,   0,   0,   0,   0,   0, 
+    252,   1,   0,   0,  64,   0, 
+      0,   0,  12,   0,   0,   0, 
+      0,   0,   0,   0,   4,   2, 
+      0,   0,   0,   0,   0,   0, 
+     20,   2,   0,   0,  80,   0, 
+      0,   0,   8,   0,   0,   0, 
+      0,   0,   0,   0, 236,   1, 
+      0,   0,   0,   0,   0,   0, 
+     28,   2,   0,   0,  88,   0, 
+      0,   0,   4,   0,   0,   0, 
+      0,   0,   0,   0,  32,   2, 
+      0,   0,   0,   0,   0,   0, 
+     48,   2,   0,   0,  92,   0, 
+      0,   0,   4,   0,   0,   0, 
+      0,   0,   0,   0,  32,   2, 
+      0,   0,   0,   0,   0,   0, 
+     56,   2,   0,   0,  96,   0, 
+      0,   0,   4,   0,   0,   0, 
+      0,   0,   0,   0,  32,   2, 
+      0,   0,   0,   0,   0,   0, 
+     68, 101, 118, 105,  99, 101, 
+     83, 112,  97,  99, 101,  84, 
+    111,  85, 115, 101, 114,  83, 
+    112,  97,  99, 101,   0, 171, 
+      3,   0,   3,   0,   3,   0, 
+      3,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0, 100, 105, 
+    109, 101, 110, 115, 105, 111, 
+    110, 115,   0, 171,   1,   0, 
+      3,   0,   1,   0,   2,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0, 100, 105, 102, 102, 
+      0, 171, 171, 171,   1,   0, 
+      3,   0,   1,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  99, 101, 110, 116, 
+    101, 114,  49,   0,  65,   0, 
+    171, 171,   0,   0,   3,   0, 
+      1,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+    114,  97, 100, 105, 117, 115, 
+     49,   0, 115, 113,  95, 114, 
+     97, 100, 105, 117, 115,  49, 
       0,  77, 105,  99, 114, 111, 
     115, 111, 102, 116,  32,  40, 
      82,  41,  32,  72,  76,  83, 
      76,  32,  83, 104,  97, 100, 
     101, 114,  32,  67, 111, 109, 
     112, 105, 108, 101, 114,  32, 
      57,  46,  50,  57,  46,  57, 
      53,  50,  46,  51,  49,  49, 
-     49,   0, 171, 171, 171,  73, 
-     83,  71,  78, 104,   0,   0, 
-      0,   3,   0,   0,   0,   8, 
-      0,   0,   0,  80,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,   3,   0,   0, 
-      0,   0,   0,   0,   0,  15, 
-      0,   0,   0,  92,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   3,   0,   0, 
-      0,   1,   0,   0,   0,   3, 
-      3,   0,   0,  92,   0,   0, 
-      0,   1,   0,   0,   0,   0, 
-      0,   0,   0,   3,   0,   0, 
-      0,   1,   0,   0,   0,  12, 
-      0,   0,   0,  83,  86,  95, 
-     80, 111, 115, 105, 116, 105, 
-    111, 110,   0,  84,  69,  88, 
-     67,  79,  79,  82,  68,   0, 
-    171, 171, 171,  79,  83,  71, 
-     78,  44,   0,   0,   0,   1, 
-      0,   0,   0,   8,   0,   0, 
-      0,  32,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   3,   0,   0,   0,   0, 
-      0,   0,   0,  15,   0,   0, 
-      0,  83,  86,  95,  84,  97, 
-    114, 103, 101, 116,   0, 171, 
-    171, 145,  22,   0,   0,   0, 
-      0,   0,   0,  80,  49,   0, 
-      4,   0,   0,   0,   1,   0, 
-      0,   0,   0,   0, 128,  63, 
+     49,   0,  73,  83,  71,  78, 
+     44,   0,   0,   0,   1,   0, 
+      0,   0,   8,   0,   0,   0, 
+     32,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   0,   0, 
+      0,   0,   7,   3,   0,   0, 
+     80,  79,  83,  73,  84,  73, 
+     79,  78,   0, 171, 171, 171, 
+     79,  83,  71,  78, 104,   0, 
+      0,   0,   3,   0,   0,   0, 
+      8,   0,   0,   0,  80,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+     15,   0,   0,   0,  92,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,   1,   0,   0,   0, 
+      3,  12,   0,   0,  92,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,   1,   0,   0,   0, 
+     12,   3,   0,   0,  83,  86, 
+     95,  80, 111, 115, 105, 116, 
+    105, 111, 110,   0,  84,  69, 
+     88,  67,  79,  79,  82,  68, 
+      0, 171, 171, 171, 166,  27, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   2,   0, 
+      0,   0,   0,   0,   0,   0, 
+    144,   7,   0,   0,  68,  88, 
+     66,  67,  35,  93, 208,  85, 
+    241,   8,  66, 139, 231,  63, 
+      6, 177, 181,  56, 138, 103, 
+      1,   0,   0,   0, 144,   7, 
+      0,   0,   6,   0,   0,   0, 
+     56,   0,   0,   0, 180,   1, 
+      0,   0,  12,   4,   0,   0, 
+    136,   4,   0,   0, 236,   6, 
+      0,   0,  92,   7,   0,   0, 
+     65, 111, 110,  57, 116,   1, 
+      0,   0, 116,   1,   0,   0, 
+      0,   2, 255, 255,  60,   1, 
+      0,   0,  56,   0,   0,   0, 
+      1,   0,  44,   0,   0,   0, 
+     56,   0,   0,   0,  56,   0, 
+      2,   0,  36,   0,   0,   0, 
+     56,   0,   0,   0,   0,   0, 
+      1,   1,   1,   0,   0,   0, 
+      4,   0,   2,   0,   0,   0, 
+      0,   0,   0,   0,   1,   2, 
+    255, 255,  81,   0,   0,   5, 
+      2,   0,  15, 160,   0,   0, 
+      0,  63,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  31,   0,   0,   2, 
+      0,   0,   0, 128,   0,   0, 
+     15, 176,  31,   0,   0,   2, 
+      0,   0,   0, 144,   0,   8, 
+     15, 160,  31,   0,   0,   2, 
+      0,   0,   0, 144,   1,   8, 
+     15, 160,   5,   0,   0,   3, 
+      0,   0,   8, 128,   1,   0, 
+    255, 160,   1,   0, 255, 160, 
+      2,   0,   0,   3,   0,   0, 
+      3, 128,   0,   0, 235, 176, 
+      1,   0, 228, 161,  90,   0, 
+      0,   4,   0,   0,   8, 128, 
+      0,   0, 228, 128,   0,   0, 
+    228, 128,   0,   0, 255, 129, 
+      5,   0,   0,   3,   0,   0, 
+      8, 128,   0,   0, 255, 128, 
+      2,   0,   0, 160,   1,   0, 
+      0,   2,   0,   0,   4, 128, 
+      1,   0, 255, 160,   8,   0, 
+      0,   3,   0,   0,   1, 128, 
+      0,   0, 228, 128,   0,   0, 
+    228, 160,   6,   0,   0,   2, 
+      0,   0,   1, 128,   0,   0, 
+      0, 128,   5,   0,   0,   3, 
+      0,   0,   1, 128,   0,   0, 
+      0, 128,   0,   0, 255, 128, 
+      1,   0,   0,   2,   0,   0, 
+      2, 128,   2,   0,   0, 160, 
+     66,   0,   0,   3,   1,   0, 
+     15, 128,   0,   0, 228, 176, 
+      1,   8, 228, 160,  66,   0, 
+      0,   3,   2,   0,  15, 128, 
+      0,   0, 228, 128,   0,   8, 
+    228, 160,   1,   0,   0,   2, 
+      0,   0,   8, 128,   1,   0, 
+    255, 160,   4,   0,   0,   4, 
+      0,   0,   1, 128,   0,   0, 
+      0, 128,   0,   0, 170, 161, 
+      0,   0, 255, 129,   5,   0, 
+      0,   3,   1,   0,  15, 128, 
+      1,   0, 255, 128,   2,   0, 
+    228, 128,  88,   0,   0,   4, 
+      0,   0,  15, 128,   0,   0, 
+      0, 128,   2,   0,  85, 160, 
+      1,   0, 228, 128,   1,   0, 
+      0,   2,   0,   8,  15, 128, 
+      0,   0, 228, 128, 255, 255, 
+      0,   0,  83,  72,  68,  82, 
+     80,   2,   0,   0,  64,   0, 
+      0,   0, 148,   0,   0,   0, 
+     89,   0,   0,   4,  70, 142, 
+     32,   0,   0,   0,   0,   0, 
+      6,   0,   0,   0,  90,   0, 
+      0,   3,   0,  96,  16,   0, 
+      0,   0,   0,   0,  90,   0, 
+      0,   3,   0,  96,  16,   0, 
+      1,   0,   0,   0,  88,  24, 
+      0,   4,   0, 112,  16,   0, 
+      0,   0,   0,   0,  85,  85, 
+      0,   0,  88,  24,   0,   4, 
+      0, 112,  16,   0,   1,   0, 
+      0,   0,  85,  85,   0,   0, 
+     98,  16,   0,   3,  50,  16, 
+     16,   0,   1,   0,   0,   0, 
+     98,  16,   0,   3, 194,  16, 
+     16,   0,   1,   0,   0,   0, 
+    101,   0,   0,   3, 242,  32, 
+     16,   0,   0,   0,   0,   0, 
+    104,   0,   0,   2,   2,   0, 
+      0,   0,   0,   0,   0,   9, 
+     50,   0,  16,   0,   0,   0, 
+      0,   0, 230,  26,  16,   0, 
+      1,   0,   0,   0,  70, 128, 
+     32, 128,  65,   0,   0,   0, 
+      0,   0,   0,   0,   5,   0, 
+      0,   0,  54,   0,   0,   6, 
+     66,   0,  16,   0,   0,   0, 
+      0,   0,  58, 128,  32,   0, 
+      0,   0,   0,   0,   5,   0, 
+      0,   0,  16,   0,   0,   8, 
+     66,   0,  16,   0,   0,   0, 
+      0,   0,  70,   2,  16,   0, 
+      0,   0,   0,   0,  70, 130, 
+     32,   0,   0,   0,   0,   0, 
+      4,   0,   0,   0,  15,   0, 
+      0,   7,  18,   0,  16,   0, 
+      0,   0,   0,   0,  70,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70,   0,  16,   0,   0,   0, 
+      0,   0,  50,   0,   0,  12, 
+     18,   0,  16,   0,   0,   0, 
+      0,   0,  58, 128,  32, 128, 
+     65,   0,   0,   0,   0,   0, 
+      0,   0,   5,   0,   0,   0, 
+     58, 128,  32,   0,   0,   0, 
+      0,   0,   5,   0,   0,   0, 
+     10,   0,  16,   0,   0,   0, 
+      0,   0,  56,   0,   0,   7, 
+     18,   0,  16,   0,   0,   0, 
+      0,   0,  10,   0,  16,   0, 
+      0,   0,   0,   0,   1,  64, 
+      0,   0,   0,   0,   0,  63, 
+     14,   0,   0,   7,  18,   0, 
+     16,   0,   0,   0,   0,   0, 
+     10,   0,  16,   0,   0,   0, 
+      0,   0,  42,   0,  16,   0, 
+      0,   0,   0,   0,  56,   0, 
+      0,   8,  66,   0,  16,   0, 
+      0,   0,   0,   0,  10,   0, 
+     16,   0,   0,   0,   0,   0, 
+     42, 128,  32,   0,   0,   0, 
+      0,   0,   4,   0,   0,   0, 
+     29,   0,   0,   9,  66,   0, 
+     16,   0,   0,   0,   0,   0, 
+     58, 128,  32, 128,  65,   0, 
+      0,   0,   0,   0,   0,   0, 
+      5,   0,   0,   0,  42,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   5,  34,   0, 
+     16,   0,   0,   0,   0,   0, 
+      1,  64,   0,   0,   0,   0, 
+      0,  63,  69,   0,   0,   9, 
+    242,   0,  16,   0,   1,   0, 
+      0,   0,  70,   0,  16,   0, 
+      0,   0,   0,   0,  70, 126, 
+     16,   0,   0,   0,   0,   0, 
+      0,  96,  16,   0,   0,   0, 
+      0,   0,  31,   0,   4,   3, 
+     42,   0,  16,   0,   0,   0, 
+      0,   0,  54,   0,   0,   8, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0,   2,  64,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  62,   0, 
+      0,   1,  21,   0,   0,   1, 
+     69,   0,   0,   9, 242,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70,  16,  16,   0,   1,   0, 
+      0,   0,  70, 126,  16,   0, 
+      1,   0,   0,   0,   0,  96, 
+     16,   0,   1,   0,   0,   0, 
+     56,   0,   0,   7, 242,  32, 
+     16,   0,   0,   0,   0,   0, 
+    246,  15,  16,   0,   0,   0, 
+      0,   0,  70,  14,  16,   0, 
+      1,   0,   0,   0,  62,   0, 
+      0,   1,  83,  84,  65,  84, 
+    116,   0,   0,   0,  18,   0, 
+      0,   0,   2,   0,   0,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,   8,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
       1,   0,   0,   0,   0,   0, 
-    128,  63,   1,   0,   0,   0, 
-      0,   0, 128,  63,   1,   0, 
-      0,   0,   0,   0, 128,  63, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      2,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   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, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     82,  68,  69,  70,  92,   2, 
+      0,   0,   1,   0,   0,   0, 
+    224,   0,   0,   0,   5,   0, 
+      0,   0,  28,   0,   0,   0, 
+      0,   4, 255, 255,   0,   1, 
+      0,   0,  43,   2,   0,   0, 
+    188,   0,   0,   0,   3,   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, 197,   0,   0,   0, 
+      3,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0, 210,   0, 
+      0,   0,   2,   0,   0,   0, 
+      5,   0,   0,   0,   4,   0, 
+      0,   0, 255, 255, 255, 255, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  12,   0,   0,   0, 
+    214,   0,   0,   0,   2,   0, 
+      0,   0,   5,   0,   0,   0, 
+      4,   0,   0,   0, 255, 255, 
+    255, 255,   1,   0,   0,   0, 
+      1,   0,   0,   0,  12,   0, 
+      0,   0, 219,   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, 115,  83, 
+     97, 109, 112, 108, 101, 114, 
+      0, 115,  77,  97, 115, 107, 
+     83,  97, 109, 112, 108, 101, 
+    114,   0, 116, 101, 120,   0, 
+    109,  97, 115, 107,   0,  99, 
+     98,  50,   0, 171, 219,   0, 
+      0,   0,   7,   0,   0,   0, 
+    248,   0,   0,   0, 112,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0, 160,   1, 
+      0,   0,   0,   0,   0,   0, 
+     44,   0,   0,   0,   0,   0, 
+      0,   0, 184,   1,   0,   0, 
+      0,   0,   0,   0, 200,   1, 
+      0,   0,  48,   0,   0,   0, 
+      8,   0,   0,   0,   0,   0, 
+      0,   0, 212,   1,   0,   0, 
+      0,   0,   0,   0, 228,   1, 
+      0,   0,  64,   0,   0,   0, 
+     12,   0,   0,   0,   2,   0, 
+      0,   0, 236,   1,   0,   0, 
+      0,   0,   0,   0, 252,   1, 
+      0,   0,  80,   0,   0,   0, 
+      8,   0,   0,   0,   2,   0, 
+      0,   0, 212,   1,   0,   0, 
+      0,   0,   0,   0,   4,   2, 
+      0,   0,  88,   0,   0,   0, 
+      4,   0,   0,   0,   0,   0, 
+      0,   0,   8,   2,   0,   0, 
+      0,   0,   0,   0,  24,   2, 
+      0,   0,  92,   0,   0,   0, 
+      4,   0,   0,   0,   2,   0, 
+      0,   0,   8,   2,   0,   0, 
+      0,   0,   0,   0,  32,   2, 
+      0,   0,  96,   0,   0,   0, 
+      4,   0,   0,   0,   0,   0, 
+      0,   0,   8,   2,   0,   0, 
+      0,   0,   0,   0,  68, 101, 
+    118, 105,  99, 101,  83, 112, 
+     97,  99, 101,  84, 111,  85, 
+    115, 101, 114,  83, 112,  97, 
+     99, 101,   0, 171,   3,   0, 
+      3,   0,   3,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0, 100, 105, 109, 101, 
+    110, 115, 105, 111, 110, 115, 
+      0, 171,   1,   0,   3,   0, 
+      1,   0,   2,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+    100, 105, 102, 102,   0, 171, 
+    171, 171,   1,   0,   3,   0, 
+      1,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     99, 101, 110, 116, 101, 114, 
+     49,   0,  65,   0, 171, 171, 
+      0,   0,   3,   0,   1,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0, 114,  97, 
+    100, 105, 117, 115,  49,   0, 
+    115, 113,  95, 114,  97, 100, 
+    105, 117, 115,  49,   0,  77, 
+    105,  99, 114, 111, 115, 111, 
+    102, 116,  32,  40,  82,  41, 
+     32,  72,  76,  83,  76,  32, 
+     83, 104,  97, 100, 101, 114, 
+     32,  67, 111, 109, 112, 105, 
+    108, 101, 114,  32,  57,  46, 
+     50,  57,  46,  57,  53,  50, 
+     46,  51,  49,  49,  49,   0, 
+     73,  83,  71,  78, 104,   0, 
+      0,   0,   3,   0,   0,   0, 
+      8,   0,   0,   0,  80,   0, 
+      0,   0,   0,   0,   0,   0, 
       1,   0,   0,   0,   3,   0, 
-      0,   0, 255, 255, 255, 255, 
+      0,   0,   0,   0,   0,   0, 
+     15,   0,   0,   0,  92,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,   1,   0,   0,   0, 
+      3,   3,   0,   0,  92,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,   1,   0,   0,   0, 
+     12,  12,   0,   0,  83,  86, 
+     95,  80, 111, 115, 105, 116, 
+    105, 111, 110,   0,  84,  69, 
+     88,  67,  79,  79,  82,  68, 
+      0, 171, 171, 171,  79,  83, 
+     71,  78,  44,   0,   0,   0, 
+      1,   0,   0,   0,   8,   0, 
+      0,   0,  32,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  83,  86,  95,  84, 
+     97, 114, 103, 101, 116,   0, 
+    171, 171, 194,  34,   0,   0, 
+      0,   0,   0,   0,  83,  97, 
+    109, 112, 108, 101,  77,  97, 
+    115, 107, 101, 100,  84, 101, 
+    120, 116, 117, 114, 101,   0, 
      36,   4,   0,   0,  68,  88, 
      66,  67, 116, 139,  68,  62, 
      73, 113,  92,   4,  72,  76, 
     225, 161,  30, 132, 222, 233, 
       1,   0,   0,   0,  36,   4, 
       0,   0,   6,   0,   0,   0, 
      56,   0,   0,   0, 248,   0, 
       0,   0, 244,   1,   0,   0, 
@@ -2683,1304 +3620,2339 @@ const BYTE d2deffect[] =
       0,   0,  92,   0,   0,   0, 
       1,   0,   0,   0,   0,   0, 
       0,   0,   3,   0,   0,   0, 
       1,   0,   0,   0,  12,   3, 
       0,   0,  83,  86,  95,  80, 
     111, 115, 105, 116, 105, 111, 
     110,   0,  84,  69,  88,  67, 
      79,  79,  82,  68,   0, 171, 
-    171, 171, 184,  32,   0,   0, 
+    171, 171, 114,  42,   0,   0, 
       0,   0,   0,   0,   1,   0, 
       0,   0,   2,   0,   0,   0, 
-      0,   0,   0,   0, 172,   9, 
+      0,   0,   0,   0, 208,   3, 
       0,   0,  68,  88,  66,  67, 
-    110,  68, 159, 211, 251, 173, 
-    118,  80, 154, 213, 185, 171, 
-    243,  23, 113, 100,   1,   0, 
-      0,   0, 172,   9,   0,   0, 
+    145,  96, 208, 189, 244, 147, 
+     57, 205, 242, 133,  35, 176, 
+     39, 143, 121, 235,   1,   0, 
+      0,   0, 208,   3,   0,   0, 
       6,   0,   0,   0,  56,   0, 
-      0,   0, 220,   2,   0,   0, 
-    204,   6,   0,   0,  72,   7, 
-      0,   0,   8,   9,   0,   0, 
-    120,   9,   0,   0,  65, 111, 
-    110,  57, 156,   2,   0,   0, 
-    156,   2,   0,   0,   0,   2, 
-    255, 255, 104,   2,   0,   0, 
-     52,   0,   0,   0,   1,   0, 
-     40,   0,   0,   0,  52,   0, 
-      0,   0,  52,   0,   1,   0, 
-     36,   0,   0,   0,  52,   0, 
-      0,   0,   0,   0,   0,   0, 
-      3,   0,   6,   0,   0,   0, 
-      0,   0,   0,   0,   1,   2, 
-    255, 255,  31,   0,   0,   2, 
-      0,   0,   0, 128,   0,   0, 
-     15, 176,  31,   0,   0,   2, 
-      0,   0,   0, 144,   0,   8, 
-     15, 160,   2,   0,   0,   3, 
-      0,   0,   2, 128,   0,   0, 
-     85, 176,   0,   0,  85, 160, 
+      0,   0, 224,   0,   0,   0, 
+    188,   1,   0,   0,  56,   2, 
+      0,   0,  44,   3,   0,   0, 
+    156,   3,   0,   0,  65, 111, 
+    110,  57, 160,   0,   0,   0, 
+    160,   0,   0,   0,   0,   2, 
+    255, 255, 116,   0,   0,   0, 
+     44,   0,   0,   0,   0,   0, 
+     44,   0,   0,   0,  44,   0, 
+      0,   0,  44,   0,   2,   0, 
+     36,   0,   0,   0,  44,   0, 
+      0,   0,   0,   0,   1,   1, 
+      1,   0,   1,   2, 255, 255, 
+     31,   0,   0,   2,   0,   0, 
+      0, 128,   0,   0,  15, 176, 
+     31,   0,   0,   2,   0,   0, 
+      0, 144,   0,   8,  15, 160, 
+     31,   0,   0,   2,   0,   0, 
+      0, 144,   1,   8,  15, 160, 
       1,   0,   0,   2,   0,   0, 
-      1, 128,   0,   0,   0, 176, 
-      2,   0,   0,   3,   1,   0, 
-      2, 128,   0,   0,  85, 176, 
-      0,   0,   0, 160,   1,   0, 
-      0,   2,   1,   0,   1, 128, 
-      0,   0,   0, 176,  66,   0, 
+      3, 128,   0,   0, 235, 176, 
+     66,   0,   0,   3,   1,   0, 
+     15, 128,   0,   0, 228, 176, 
+      0,   8, 228, 160,  66,   0, 
       0,   3,   0,   0,  15, 128, 
-      0,   0, 228, 128,   0,   8, 
-    228, 160,  66,   0,   0,   3, 
-      1,   0,  15, 128,   1,   0, 
-    228, 128,   0,   8, 228, 160, 
-      5,   0,   0,   3,   0,   0, 
+      0,   0, 228, 128,   1,   8, 
+    228, 160,   5,   0,   0,   3, 
+      0,   0,  15, 128,   0,   0, 
+    255, 128,   1,   0, 228, 128, 
+      1,   0,   0,   2,   0,   8, 
      15, 128,   0,   0, 228, 128, 
-      3,   0,  85, 160,   4,   0, 
-      0,   4,   0,   0,  15, 128, 
-      3,   0,   0, 160,   1,   0, 
-    228, 128,   0,   0, 228, 128, 
-      2,   0,   0,   3,   1,   0, 
-      2, 128,   0,   0,  85, 176, 
-      0,   0, 170, 160,   1,   0, 
-      0,   2,   1,   0,   1, 128, 
-      0,   0,   0, 176,   2,   0, 
-      0,   3,   2,   0,   2, 128, 
-      0,   0,  85, 176,   0,   0, 
-    255, 160,   1,   0,   0,   2, 
-      2,   0,   1, 128,   0,   0, 
-      0, 176,  66,   0,   0,   3, 
-      1,   0,  15, 128,   1,   0, 
-    228, 128,   0,   8, 228, 160, 
-     66,   0,   0,   3,   2,   0, 
-     15, 128,   2,   0, 228, 128, 
-      0,   8, 228, 160,   4,   0, 
-      0,   4,   0,   0,  15, 128, 
-      3,   0, 170, 160,   1,   0, 
-    228, 128,   0,   0, 228, 128, 
-      4,   0,   0,   4,   0,   0, 
-     15, 128,   3,   0, 255, 160, 
-      2,   0, 228, 128,   0,   0, 
-    228, 128,   2,   0,   0,   3, 
-      1,   0,   2, 128,   0,   0, 
-     85, 176,   1,   0,   0, 160, 
-      1,   0,   0,   2,   1,   0, 
-      1, 128,   0,   0,   0, 176, 
-      2,   0,   0,   3,   2,   0, 
-      2, 128,   0,   0,  85, 176, 
-      1,   0,  85, 160,   1,   0, 
-      0,   2,   2,   0,   1, 128, 
-      0,   0,   0, 176,  66,   0, 
-      0,   3,   1,   0,  15, 128, 
-      1,   0, 228, 128,   0,   8, 
-    228, 160,  66,   0,   0,   3, 
-      2,   0,  15, 128,   2,   0, 
-    228, 128,   0,   8, 228, 160, 
-      4,   0,   0,   4,   0,   0, 
-     15, 128,   4,   0,   0, 160, 
-      1,   0, 228, 128,   0,   0, 
-    228, 128,   4,   0,   0,   4, 
-      0,   0,  15, 128,   4,   0, 
-     85, 160,   2,   0, 228, 128, 
-      0,   0, 228, 128,   2,   0, 
-      0,   3,   1,   0,   2, 128, 
-      0,   0,  85, 176,   1,   0, 
-    170, 160,   1,   0,   0,   2, 
-      1,   0,   1, 128,   0,   0, 
-      0, 176,   2,   0,   0,   3, 
-      2,   0,   2, 128,   0,   0, 
-     85, 176,   1,   0, 255, 160, 
-      1,   0,   0,   2,   2,   0, 
-      1, 128,   0,   0,   0, 176, 
-     66,   0,   0,   3,   1,   0, 
-     15, 128,   1,   0, 228, 128, 
-      0,   8, 228, 160,  66,   0, 
-      0,   3,   2,   0,  15, 128, 
-      2,   0, 228, 128,   0,   8, 
-    228, 160,   4,   0,   0,   4, 
-      0,   0,  15, 128,   4,   0, 
-    170, 160,   1,   0, 228, 128, 
-      0,   0, 228, 128,   4,   0, 
-      0,   4,   0,   0,  15, 128, 
-      4,   0, 255, 160,   2,   0, 
-    228, 128,   0,   0, 228, 128, 
-      2,   0,   0,   3,   1,   0, 
-      2, 128,   0,   0,  85, 176, 
-      2,   0,   0, 160,   1,   0, 
-      0,   2,   1,   0,   1, 128, 
-      0,   0,   0, 176,  66,   0, 
-      0,   3,   1,   0,  15, 128, 
-      1,   0, 228, 128,   0,   8, 
-    228, 160,   4,   0,   0,   4, 
-      0,   0,  15, 128,   5,   0, 
-      0, 160,   1,   0, 228, 128, 
-      0,   0, 228, 128,   1,   0, 
-      0,   2,   0,   8,  15, 128, 
-      0,   0, 228, 128, 255, 255, 
-      0,   0,  83,  72,  68,  82, 
-    232,   3,   0,   0,  64,   0, 
-      0,   0, 250,   0,   0,   0, 
-     89,   0,   0,   4,  70, 142, 
-     32,   0,   0,   0,   0,   0, 
-      9,   0,   0,   0,  90,   0, 
-      0,   3,   0,  96,  16,   0, 
-      0,   0,   0,   0,  88,  24, 
-      0,   4,   0, 112,  16,   0, 
-      0,   0,   0,   0,  85,  85, 
-      0,   0,  98,  16,   0,   3, 
-     50,  16,  16,   0,   1,   0, 
-      0,   0, 101,   0,   0,   3, 
-    242,  32,  16,   0,   0,   0, 
-      0,   0, 104,   0,   0,   2, 
-      4,   0,   0,   0,  54,   0, 
-      0,   5,  82,   0,  16,   0, 
-      0,   0,   0,   0,   6,  16, 
+    255, 255,   0,   0,  83,  72, 
+     68,  82, 212,   0,   0,   0, 
+     64,   0,   0,   0,  53,   0, 
+      0,   0,  90,   0,   0,   3, 
+      0,  96,  16,   0,   0,   0, 
+      0,   0,  90,   0,   0,   3, 
+      0,  96,  16,   0,   1,   0, 
+      0,   0,  88,  24,   0,   4, 
+      0, 112,  16,   0,   0,   0, 
+      0,   0,  85,  85,   0,   0, 
+     88,  24,   0,   4,   0, 112, 
      16,   0,   1,   0,   0,   0, 
-      0,   0,   0,   8, 242,   0, 
-     16,   0,   1,   0,   0,   0, 
-     86,  21,  16,   0,   1,   0, 
-      0,   0, 134, 141,  32,   0, 
-      0,   0,   0,   0,   3,   0, 
-      0,   0,  54,   0,   0,   5, 
-    162,   0,  16,   0,   0,   0, 
-      0,   0,   6,   8,  16,   0, 
-      1,   0,   0,   0,  69,   0, 
-      0,   9, 242,   0,  16,   0, 
-      2,   0,   0,   0, 230,  10, 
-     16,   0,   0,   0,   0,   0, 
-     70, 126,  16,   0,   0,   0, 
-      0,   0,   0,  96,  16,   0, 
-      0,   0,   0,   0,  69,   0, 
-      0,   9, 242,   0,  16,   0, 
-      0,   0,   0,   0,  70,   0, 
+     85,  85,   0,   0,  98,  16, 
+      0,   3,  50,  16,  16,   0, 
+      1,   0,   0,   0,  98,  16, 
+      0,   3, 194,  16,  16,   0, 
+      1,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      0,   0,   0,   0, 104,   0, 
+      0,   2,   2,   0,   0,   0, 
+     69,   0,   0,   9, 242,   0, 
      16,   0,   0,   0,   0,   0, 
-     70, 126,  16,   0,   0,   0, 
-      0,   0,   0,  96,  16,   0, 
-      0,   0,   0,   0,  56,   0, 
-      0,   8, 242,   0,  16,   0, 
-      2,   0,   0,   0,  70,  14, 
-     16,   0,   2,   0,   0,   0, 
-     86, 133,  32,   0,   0,   0, 
-      0,   0,   6,   0,   0,   0, 
-     50,   0,   0,  10, 242,   0, 
-     16,   0,   0,   0,   0,   0, 
-      6, 128,  32,   0,   0,   0, 
-      0,   0,   6,   0,   0,   0, 
-     70,  14,  16,   0,   0,   0, 
-      0,   0,  70,  14,  16,   0, 
-      2,   0,   0,   0,  54,   0, 
-      0,   5,  82,   0,  16,   0, 
-      1,   0,   0,   0,   6,  16, 
-     16,   0,   1,   0,   0,   0, 
-     69,   0,   0,   9, 242,   0, 
-     16,   0,   2,   0,   0,   0, 
-     70,   0,  16,   0,   1,   0, 
+     70,  16,  16,   0,   1,   0, 
       0,   0,  70, 126,  16,   0, 
       0,   0,   0,   0,   0,  96, 
      16,   0,   0,   0,   0,   0, 
      69,   0,   0,   9, 242,   0, 
      16,   0,   1,   0,   0,   0, 
-    230,  10,  16,   0,   1,   0, 
+    230,  26,  16,   0,   1,   0, 
       0,   0,  70, 126,  16,   0, 
-      0,   0,   0,   0,   0,  96, 
-     16,   0,   0,   0,   0,   0, 
-     50,   0,   0,  10, 242,   0, 
-     16,   0,   0,   0,   0,   0, 
-    166, 138,  32,   0,   0,   0, 
-      0,   0,   6,   0,   0,   0, 
-     70,  14,  16,   0,   2,   0, 
-      0,   0,  70,  14,  16,   0, 
-      0,   0,   0,   0,  50,   0, 
-      0,  10, 242,   0,  16,   0, 
-      0,   0,   0,   0, 246, 143, 
-     32,   0,   0,   0,   0,   0, 
-      6,   0,   0,   0,  70,  14, 
-     16,   0,   1,   0,   0,   0, 
-     70,  14,  16,   0,   0,   0, 
-      0,   0,  54,   0,   0,   5, 
-     82,   0,  16,   0,   1,   0, 
-      0,   0,   6,  16,  16,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   8, 242,   0,  16,   0, 
-      2,   0,   0,   0,  86,  21, 
+      1,   0,   0,   0,   0,  96, 
      16,   0,   1,   0,   0,   0, 
-    134, 141,  32,   0,   0,   0, 
-      0,   0,   4,   0,   0,   0, 
-     54,   0,   0,   5, 162,   0, 
-     16,   0,   1,   0,   0,   0, 
-      6,   8,  16,   0,   2,   0, 
-      0,   0,  69,   0,   0,   9, 
-    242,   0,  16,   0,   3,   0, 
-      0,   0,  70,   0,  16,   0, 
-      1,   0,   0,   0,  70, 126, 
-     16,   0,   0,   0,   0,   0, 
-      0,  96,  16,   0,   0,   0, 
-      0,   0,  69,   0,   0,   9, 
-    242,   0,  16,   0,   1,   0, 
-      0,   0, 230,  10,  16,   0, 
-      1,   0,   0,   0,  70, 126, 
-     16,   0,   0,   0,   0,   0, 
-      0,  96,  16,   0,   0,   0, 
-      0,   0,  50,   0,   0,  10, 
-    242,   0,  16,   0,   0,   0, 
-      0,   0,   6, 128,  32,   0, 
-      0,   0,   0,   0,   7,   0, 
-      0,   0,  70,  14,  16,   0, 
-      3,   0,   0,   0,  70,  14, 
-     16,   0,   0,   0,   0,   0, 
-     50,   0,   0,  10, 242,   0, 
+     56,   0,   0,   7, 242,  32, 
      16,   0,   0,   0,   0,   0, 
-     86, 133,  32,   0,   0,   0, 
-      0,   0,   7,   0,   0,   0, 
-     70,  14,  16,   0,   1,   0, 
-      0,   0,  70,  14,  16,   0, 
-      0,   0,   0,   0,  54,   0, 
-      0,   5,  82,   0,  16,   0, 
-      2,   0,   0,   0,   6,  16, 
-     16,   0,   1,   0,   0,   0, 
-     69,   0,   0,   9, 242,   0, 
-     16,   0,   1,   0,   0,   0, 
-     70,   0,  16,   0,   2,   0, 
-      0,   0,  70, 126,  16,   0, 
-      0,   0,   0,   0,   0,  96, 
-     16,   0,   0,   0,   0,   0, 
-     69,   0,   0,   9, 242,   0, 
-     16,   0,   2,   0,   0,   0, 
-    230,  10,  16,   0,   2,   0, 
-      0,   0,  70, 126,  16,   0, 
-      0,   0,   0,   0,   0,  96, 
-     16,   0,   0,   0,   0,   0, 
-     50,   0,   0,  10, 242,   0, 
-     16,   0,   0,   0,   0,   0, 
-    166, 138,  32,   0,   0,   0, 
-      0,   0,   7,   0,   0,   0, 
-     70,  14,  16,   0,   1,   0, 
-      0,   0,  70,  14,  16,   0, 
-      0,   0,   0,   0,  50,   0, 
-      0,  10, 242,   0,  16,   0, 
-      0,   0,   0,   0, 246, 143, 
-     32,   0,   0,   0,   0,   0, 
-      7,   0,   0,   0,  70,  14, 
-     16,   0,   2,   0,   0,   0, 
      70,  14,  16,   0,   0,   0, 
-      0,   0,   0,   0,   0,   8, 
-     34,   0,  16,   0,   1,   0, 
-      0,   0,  26,  16,  16,   0, 
-      1,   0,   0,   0,  10, 128, 
-     32,   0,   0,   0,   0,   0, 
-      5,   0,   0,   0,  54,   0, 
-      0,   5,  18,   0,  16,   0, 
-      1,   0,   0,   0,  10,  16, 
-     16,   0,   1,   0,   0,   0, 
-     69,   0,   0,   9, 242,   0, 
-     16,   0,   1,   0,   0,   0, 
-     70,   0,  16,   0,   1,   0, 
-      0,   0,  70, 126,  16,   0, 
-      0,   0,   0,   0,   0,  96, 
-     16,   0,   0,   0,   0,   0, 
-     50,   0,   0,  10, 242,  32, 
-     16,   0,   0,   0,   0,   0, 
-      6, 128,  32,   0,   0,   0, 
-      0,   0,   8,   0,   0,   0, 
-     70,  14,  16,   0,   1,   0, 
-      0,   0,  70,  14,  16,   0, 
-      0,   0,   0,   0,  62,   0, 
+      0,   0, 246,  15,  16,   0, 
+      1,   0,   0,   0,  62,   0, 
       0,   1,  83,  84,  65,  84, 
-    116,   0,   0,   0,  29,   0, 
-      0,   0,   4,   0,   0,   0, 
-      0,   0,   0,   0,   2,   0, 
-      0,   0,   4,   0,   0,   0, 
+    116,   0,   0,   0,   4,   0, 
+      0,   0,   2,   0,   0,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   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,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      9,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   9,   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, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-     82,  68,  69,  70, 184,   1, 
-      0,   0,   1,   0,   0,   0, 
-    148,   0,   0,   0,   3,   0, 
+      2,   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,   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,   0,   0,   0,   0,   0, 
+     82,  68,  69,  70, 236,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   4,   0, 
       0,   0,  28,   0,   0,   0, 
       0,   4, 255, 255,   0,   1, 
-      0,   0, 132,   1,   0,   0, 
-    124,   0,   0,   0,   3,   0, 
+      0,   0, 187,   0,   0,   0, 
+    156,   0,   0,   0,   3,   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, 139,   0,   0,   0, 
-      2,   0,   0,   0,   5,   0, 
-      0,   0,   4,   0,   0,   0, 
-    255, 255, 255, 255,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-     12,   0,   0,   0, 143,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
+      0,   0, 165,   0,   0,   0, 
+      3,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-    115,  83, 104,  97, 100, 111, 
-    119,  83,  97, 109, 112, 108, 
-    101, 114,   0, 116, 101, 120, 
-      0,  99,  98,  49,   0, 171, 
-    143,   0,   0,   0,   4,   0, 
-      0,   0, 172,   0,   0,   0, 
-    160,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-     12,   1,   0,   0,   0,   0, 
-      0,   0,  48,   0,   0,   0, 
-      0,   0,   0,   0,  28,   1, 
-      0,   0,   0,   0,   0,   0, 
-     44,   1,   0,   0,  48,   0, 
-      0,   0,  48,   0,   0,   0, 
-      2,   0,   0,   0,  60,   1, 
-      0,   0,   0,   0,   0,   0, 
-     76,   1,   0,   0,  96,   0, 
-      0,   0,  48,   0,   0,   0, 
-      2,   0,   0,   0,  88,   1, 
-      0,   0,   0,   0,   0,   0, 
-    104,   1,   0,   0, 144,   0, 
-      0,   0,  16,   0,   0,   0, 
-      0,   0,   0,   0, 116,   1, 
-      0,   0,   0,   0,   0,   0, 
-     66, 108, 117, 114,  79, 102, 
-    102, 115, 101, 116, 115,  72, 
-      0, 171, 171, 171,   1,   0, 
-      3,   0,   1,   0,   4,   0, 
-      3,   0,   0,   0,   0,   0, 
-      0,   0,  66, 108, 117, 114, 
-     79, 102, 102, 115, 101, 116, 
-    115,  86,   0, 171, 171, 171, 
-      1,   0,   3,   0,   1,   0, 
-      4,   0,   3,   0,   0,   0, 
-      0,   0,   0,   0,  66, 108, 
-    117, 114,  87, 101, 105, 103, 
-    104, 116, 115,   0,   1,   0, 
-      3,   0,   1,   0,   4,   0, 
-      3,   0,   0,   0,   0,   0, 
-      0,   0,  83, 104,  97, 100, 
-    111, 119,  67, 111, 108, 111, 
-    114,   0,   1,   0,   3,   0, 
-      1,   0,   4,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-     77, 105,  99, 114, 111, 115, 
-    111, 102, 116,  32,  40,  82, 
-     41,  32,  72,  76,  83,  76, 
-     32,  83, 104,  97, 100, 101, 
-    114,  32,  67, 111, 109, 112, 
-    105, 108, 101, 114,  32,  57, 
-     46,  50,  57,  46,  57,  53, 
-     50,  46,  51,  49,  49,  49, 
-      0, 171, 171, 171,  73,  83, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0, 178,   0, 
+      0,   0,   2,   0,   0,   0, 
+      5,   0,   0,   0,   4,   0, 
+      0,   0, 255, 255, 255, 255, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  12,   0,   0,   0, 
+    182,   0,   0,   0,   2,   0, 
+      0,   0,   5,   0,   0,   0, 
+      4,   0,   0,   0, 255, 255, 
+    255, 255,   1,   0,   0,   0, 
+      1,   0,   0,   0,  12,   0, 
+      0,   0, 115,  83,  97, 109, 
+    112, 108, 101, 114,   0, 115, 
+     77,  97, 115, 107,  83,  97, 
+    109, 112, 108, 101, 114,   0, 
+    116, 101, 120,   0, 109,  97, 
+    115, 107,   0,  77, 105,  99, 
+    114, 111, 115, 111, 102, 116, 
+     32,  40,  82,  41,  32,  72, 
+     76,  83,  76,  32,  83, 104, 
+     97, 100, 101, 114,  32,  67, 
+    111, 109, 112, 105, 108, 101, 
+    114,  32,  57,  46,  50,  57, 
+     46,  57,  53,  50,  46,  51, 
+     49,  49,  49,   0,  73,  83, 
      71,  78, 104,   0,   0,   0, 
       3,   0,   0,   0,   8,   0, 
       0,   0,  80,   0,   0,   0, 
       0,   0,   0,   0,   1,   0, 
       0,   0,   3,   0,   0,   0, 
       0,   0,   0,   0,  15,   0, 
       0,   0,  92,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   3,   0,   0,   0, 
       1,   0,   0,   0,   3,   3, 
       0,   0,  92,   0,   0,   0, 
       1,   0,   0,   0,   0,   0, 
       0,   0,   3,   0,   0,   0, 
-      1,   0,   0,   0,  12,   0, 
+      1,   0,   0,   0,  12,  12, 
       0,   0,  83,  86,  95,  80, 
     111, 115, 105, 116, 105, 111, 
     110,   0,  84,  69,  88,  67, 
      79,  79,  82,  68,   0, 171, 
     171, 171,  79,  83,  71,  78, 
      44,   0,   0,   0,   1,   0, 
       0,   0,   8,   0,   0,   0, 
      32,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       3,   0,   0,   0,   0,   0, 
       0,   0,  15,   0,   0,   0, 
      83,  86,  95,  84,  97, 114, 
     103, 101, 116,   0, 171, 171, 
-    244,  36,   0,   0,   0,   0, 
-      0,   0,  80,  50,   0,   4, 
-      0,   0,   0,   1,   0,   0, 
+    174,  46,   0,   0,   0,   0, 
+      0,   0,  83,  97, 109, 112, 
+    108, 101,  84, 101, 120, 116, 
+    117, 114, 101,  87, 105, 116, 
+    104,  83, 104,  97, 100, 111, 
+    119,   0,   4,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+    128,  63,   1,   0,   0,   0, 
+      0,   0, 128,  63,   1,   0, 
+      0,   0,   0,   0, 128,  63, 
+      1,   0,   0,   0,   0,   0, 
+    128,  63,   1,   0,   0,   0, 
+      3,   0,   0,   0, 255, 255, 
+    255, 255,  36,   4,   0,   0, 
+     68,  88,  66,  67, 116, 139, 
+     68,  62,  73, 113,  92,   4, 
+     72,  76, 225, 161,  30, 132, 
+    222, 233,   1,   0,   0,   0, 
+     36,   4,   0,   0,   6,   0, 
+      0,   0,  56,   0,   0,   0, 
+    248,   0,   0,   0, 244,   1, 
+      0,   0, 112,   2,   0,   0, 
+    128,   3,   0,   0, 180,   3, 
+      0,   0,  65, 111, 110,  57, 
+    184,   0,   0,   0, 184,   0, 
+      0,   0,   0,   2, 254, 255, 
+    132,   0,   0,   0,  52,   0, 
+      0,   0,   1,   0,  36,   0, 
+      0,   0,  48,   0,   0,   0, 
+     48,   0,   0,   0,  36,   0, 
+      1,   0,  48,   0,   0,   0, 
+      0,   0,   3,   0,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   2, 254, 255, 
+     81,   0,   0,   5,   4,   0, 
+     15, 160,   0,   0,   0,   0, 
+      0,   0, 128,  63,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     31,   0,   0,   2,   5,   0, 
+      0, 128,   0,   0,  15, 144, 
+      4,   0,   0,   4,   0,   0, 
+      3, 224,   0,   0, 228, 144, 
+      2,   0, 238, 160,   2,   0, 
+    228, 160,   4,   0,   0,   4, 
+      0,   0,  12, 224,   0,   0, 
+     20, 144,   3,   0, 180, 160, 
+      3,   0,  20, 160,   4,   0, 
+      0,   4,   0,   0,   3, 128, 
+      0,   0, 228, 144,   1,   0, 
+    238, 160,   1,   0, 228, 160, 
+      2,   0,   0,   3,   0,   0, 
+      3, 192,   0,   0, 228, 128, 
+      0,   0, 228, 160,   1,   0, 
+      0,   2,   0,   0,  12, 192, 
+      4,   0,  68, 160, 255, 255, 
+      0,   0,  83,  72,  68,  82, 
+    244,   0,   0,   0,  64,   0, 
+      1,   0,  61,   0,   0,   0, 
+     89,   0,   0,   4,  70, 142, 
+     32,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,  95,   0, 
+      0,   3,  50,  16,  16,   0, 
+      0,   0,   0,   0, 103,   0, 
+      0,   4, 242,  32,  16,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0, 101,   0,   0,   3, 
+     50,  32,  16,   0,   1,   0, 
+      0,   0, 101,   0,   0,   3, 
+    194,  32,  16,   0,   1,   0, 
+      0,   0,  50,   0,   0,  11, 
+     50,  32,  16,   0,   0,   0, 
+      0,   0,  70,  16,  16,   0, 
+      0,   0,   0,   0, 230, 138, 
+     32,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  70, 128, 
+     32,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   8, 194,  32,  16,   0, 
+      0,   0,   0,   0,   2,  64, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0, 128,  63, 
+     50,   0,   0,  11,  50,  32, 
+     16,   0,   1,   0,   0,   0, 
+     70,  16,  16,   0,   0,   0, 
+      0,   0, 230, 138,  32,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  70, 128,  32,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  50,   0,   0,  11, 
+    194,  32,  16,   0,   1,   0, 
+      0,   0,   6,  20,  16,   0, 
+      0,   0,   0,   0, 166, 142, 
+     32,   0,   0,   0,   0,   0, 
+      2,   0,   0,   0,   6, 132, 
+     32,   0,   0,   0,   0,   0, 
+      2,   0,   0,   0,  62,   0, 
+      0,   1,  83,  84,  65,  84, 
+    116,   0,   0,   0,   5,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   4,   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, 
+      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,   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,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     82,  68,  69,  70,   8,   1, 
+      0,   0,   1,   0,   0,   0, 
+     64,   0,   0,   0,   1,   0, 
+      0,   0,  28,   0,   0,   0, 
+      0,   4, 254, 255,   0,   1, 
+      0,   0, 212,   0,   0,   0, 
+     60,   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,  99,  98,  48,   0, 
+     60,   0,   0,   0,   3,   0, 
+      0,   0,  88,   0,   0,   0, 
+     48,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+    160,   0,   0,   0,   0,   0, 
+      0,   0,  16,   0,   0,   0, 
+      2,   0,   0,   0, 172,   0, 
+      0,   0,   0,   0,   0,   0, 
+    188,   0,   0,   0,  16,   0, 
+      0,   0,  16,   0,   0,   0, 
+      2,   0,   0,   0, 172,   0, 
+      0,   0,   0,   0,   0,   0, 
+    198,   0,   0,   0,  32,   0, 
+      0,   0,  16,   0,   0,   0, 
+      2,   0,   0,   0, 172,   0, 
+      0,   0,   0,   0,   0,   0, 
+     81, 117,  97, 100,  68, 101, 
+    115,  99,   0, 171, 171, 171, 
+      1,   0,   3,   0,   1,   0, 
+      4,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  84, 101, 
+    120,  67, 111, 111, 114, 100, 
+    115,   0,  77,  97, 115, 107, 
+     84, 101, 120,  67, 111, 111, 
+    114, 100, 115,   0,  77, 105, 
+     99, 114, 111, 115, 111, 102, 
+    116,  32,  40,  82,  41,  32, 
+     72,  76,  83,  76,  32,  83, 
+    104,  97, 100, 101, 114,  32, 
+     67, 111, 109, 112, 105, 108, 
+    101, 114,  32,  57,  46,  50, 
+     57,  46,  57,  53,  50,  46, 
+     51,  49,  49,  49,   0, 171, 
+    171, 171,  73,  83,  71,  78, 
+     44,   0,   0,   0,   1,   0, 
+      0,   0,   8,   0,   0,   0, 
+     32,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   0,   0, 
+      0,   0,   7,   3,   0,   0, 
+     80,  79,  83,  73,  84,  73, 
+     79,  78,   0, 171, 171, 171, 
+     79,  83,  71,  78, 104,   0, 
+      0,   0,   3,   0,   0,   0, 
+      8,   0,   0,   0,  80,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+     15,   0,   0,   0,  92,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,   1,   0,   0,   0, 
+      3,  12,   0,   0,  92,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,   1,   0,   0,   0, 
+     12,   3,   0,   0,  83,  86, 
+     95,  80, 111, 115, 105, 116, 
+    105, 111, 110,   0,  84,  69, 
+     88,  67,  79,  79,  82,  68, 
+      0, 171, 171, 171, 210,  50, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   2,   0, 
+      0,   0,   0,   0,   0,   0, 
+    232,   9,   0,   0,  68,  88, 
+     66,  67,  45,  80,  33,   8, 
+      5,  16, 134, 134, 115,  16, 
+    129,  43, 103, 216, 255, 210, 
+      1,   0,   0,   0, 232,   9, 
+      0,   0,   6,   0,   0,   0, 
+     56,   0,   0,   0, 248,   2, 
+      0,   0,   8,   7,   0,   0, 
+    132,   7,   0,   0,  68,   9, 
+      0,   0, 180,   9,   0,   0, 
+     65, 111, 110,  57, 184,   2, 
+      0,   0, 184,   2,   0,   0, 
+      0,   2, 255, 255, 120,   2, 
+      0,   0,  64,   0,   0,   0, 
+      2,   0,  40,   0,   0,   0, 
+     64,   0,   0,   0,  64,   0, 
+      1,   0,  36,   0,   0,   0, 
+     64,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   6,   0,   4,   0, 
+      3,   0,   0,   0,   0,   0, 
+      1,   2, 255, 255,  31,   0, 
+      0,   2,   0,   0,   0, 128, 
+      0,   0,  15, 176,  31,   0, 
+      0,   2,   0,   0,   0, 144, 
+      0,   8,  15, 160,   2,   0, 
+      0,   3,   0,   0,   1, 128, 
+      0,   0,   0, 176,   0,   0, 
+     85, 160,   1,   0,   0,   2, 
+      0,   0,   2, 128,   0,   0, 
+     85, 176,   2,   0,   0,   3, 
+      1,   0,   1, 128,   0,   0, 
+      0, 176,   0,   0,   0, 160, 
+      1,   0,   0,   2,   1,   0, 
+      2, 128,   0,   0,  85, 176, 
+     66,   0,   0,   3,   0,   0, 
+     15, 128,   0,   0, 228, 128, 
+      0,   8, 228, 160,  66,   0, 
+      0,   3,   1,   0,  15, 128, 
+      1,   0, 228, 128,   0,   8, 
+    228, 160,   5,   0,   0,   3, 
+      0,   0,   1, 128,   0,   0, 
+    255, 128,   3,   0,  85, 160, 
+      4,   0,   0,   4,   0,   0, 
+      1, 128,   3,   0,   0, 160, 
+      1,   0, 255, 128,   0,   0, 
+      0, 128,   2,   0,   0,   3, 
+      1,   0,   1, 128,   0,   0, 
+      0, 176,   0,   0, 170, 160, 
+      1,   0,   0,   2,   1,   0, 
+      2, 128,   0,   0,  85, 176, 
+      2,   0,   0,   3,   2,   0, 
+      1, 128,   0,   0,   0, 176, 
+      0,   0, 255, 160,   1,   0, 
+      0,   2,   2,   0,   2, 128, 
+      0,   0,  85, 176,  66,   0, 
+      0,   3,   1,   0,  15, 128, 
+      1,   0, 228, 128,   0,   8, 
+    228, 160,  66,   0,   0,   3, 
+      2,   0,  15, 128,   2,   0, 
+    228, 128,   0,   8, 228, 160, 
+      4,   0,   0,   4,   0,   0, 
+      1, 128,   3,   0, 170, 160, 
+      1,   0, 255, 128,   0,   0, 
+      0, 128,   4,   0,   0,   4, 
+      0,   0,   1, 128,   3,   0, 
+    255, 160,   2,   0, 255, 128, 
+      0,   0,   0, 128,   2,   0, 
+      0,   3,   1,   0,   1, 128, 
+      0,   0,   0, 176,   1,   0, 
+      0, 160,   1,   0,   0,   2, 
+      1,   0,   2, 128,   0,   0, 
+     85, 176,   2,   0,   0,   3, 
+      2,   0,   1, 128,   0,   0, 
+      0, 176,   1,   0,  85, 160, 
+      1,   0,   0,   2,   2,   0, 
+      2, 128,   0,   0,  85, 176, 
+     66,   0,   0,   3,   1,   0, 
+     15, 128,   1,   0, 228, 128, 
+      0,   8, 228, 160,  66,   0, 
+      0,   3,   2,   0,  15, 128, 
+      2,   0, 228, 128,   0,   8, 
+    228, 160,   4,   0,   0,   4, 
+      0,   0,   1, 128,   4,   0, 
+      0, 160,   1,   0, 255, 128, 
+      0,   0,   0, 128,   4,   0, 
+      0,   4,   0,   0,   1, 128, 
+      4,   0,  85, 160,   2,   0, 
+    255, 128,   0,   0,   0, 128, 
+      2,   0,   0,   3,   1,   0, 
+      1, 128,   0,   0,   0, 176, 
+      1,   0, 170, 160,   1,   0, 
+      0,   2,   1,   0,   2, 128, 
+      0,   0,  85, 176,   2,   0, 
+      0,   3,   2,   0,   1, 128, 
+      0,   0,   0, 176,   1,   0, 
+    255, 160,   1,   0,   0,   2, 
+      2,   0,   2, 128,   0,   0, 
+     85, 176,  66,   0,   0,   3, 
+      1,   0,  15, 128,   1,   0, 
+    228, 128,   0,   8, 228, 160, 
+     66,   0,   0,   3,   2,   0, 
+     15, 128,   2,   0, 228, 128, 
+      0,   8, 228, 160,   4,   0, 
+      0,   4,   0,   0,   1, 128, 
+      4,   0, 170, 160,   1,   0, 
+    255, 128,   0,   0,   0, 128, 
+      4,   0,   0,   4,   0,   0, 
+      1, 128,   4,   0, 255, 160, 
+      2,   0, 255, 128,   0,   0, 
+      0, 128,   2,   0,   0,   3, 
+      1,   0,   1, 128,   0,   0, 
+      0, 176,   2,   0,   0, 160, 
+      1,   0,   0,   2,   1,   0, 
+      2, 128,   0,   0,  85, 176, 
+     66,   0,   0,   3,   1,   0, 
+     15, 128,   1,   0, 228, 128, 
+      0,   8, 228, 160,   4,   0, 
+      0,   4,   0,   0,   1, 128, 
+      5,   0,   0, 160,   1,   0, 
+    255, 128,   0,   0,   0, 128, 
+      5,   0,   0,   3,   0,   0, 
+     15, 128,   0,   0,   0, 128, 
+      6,   0, 228, 160,   1,   0, 
+      0,   2,   0,   8,  15, 128, 
+      0,   0, 228, 128, 255, 255, 
+      0,   0,  83,  72,  68,  82, 
+      8,   4,   0,   0,  64,   0, 
+      0,   0,   2,   1,   0,   0, 
+     89,   0,   0,   4,  70, 142, 
+     32,   0,   0,   0,   0,   0, 
+     10,   0,   0,   0,  90,   0, 
+      0,   3,   0,  96,  16,   0, 
+      0,   0,   0,   0,  88,  24, 
+      0,   4,   0, 112,  16,   0, 
+      0,   0,   0,   0,  85,  85, 
+      0,   0,  98,  16,   0,   3, 
+     50,  16,  16,   0,   1,   0, 
+      0,   0, 101,   0,   0,   3, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0, 104,   0,   0,   2, 
+      4,   0,   0,   0,   0,   0, 
+      0,   8, 242,   0,  16,   0, 
+      0,   0,   0,   0,   6,  16, 
+     16,   0,   1,   0,   0,   0, 
+     38, 135,  32,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     54,   0,   0,   5,  82,   0, 
+     16,   0,   1,   0,   0,   0, 
+     86,   7,  16,   0,   0,   0, 
+      0,   0,  54,   0,   0,   5, 
+    162,   0,  16,   0,   1,   0, 
+      0,   0,  86,  21,  16,   0, 
+      1,   0,   0,   0,  69,   0, 
+      0,   9, 242,   0,  16,   0, 
+      2,   0,   0,   0, 230,  10, 
+     16,   0,   1,   0,   0,   0, 
+     70, 126,  16,   0,   0,   0, 
+      0,   0,   0,  96,  16,   0, 
+      0,   0,   0,   0,  69,   0, 
+      0,   9, 242,   0,  16,   0, 
+      1,   0,   0,   0,  70,   0, 
+     16,   0,   1,   0,   0,   0, 
+     70, 126,  16,   0,   0,   0, 
+      0,   0,   0,  96,  16,   0, 
+      0,   0,   0,   0,  56,   0, 
+      0,   8,  18,   0,  16,   0, 
+      1,   0,   0,   0,  58,   0, 
+     16,   0,   2,   0,   0,   0, 
+     26, 128,  32,   0,   0,   0, 
+      0,   0,   6,   0,   0,   0, 
+     50,   0,   0,  10,  18,   0, 
+     16,   0,   1,   0,   0,   0, 
+     10, 128,  32,   0,   0,   0, 
+      0,   0,   6,   0,   0,   0, 
+     58,   0,  16,   0,   1,   0, 
+      0,   0,  10,   0,  16,   0, 
+      1,   0,   0,   0,  54,   0, 
+      0,   5, 162,   0,  16,   0, 
+      0,   0,   0,   0,  86,  21, 
+     16,   0,   1,   0,   0,   0, 
+     69,   0,   0,   9, 242,   0, 
+     16,   0,   2,   0,   0,   0, 
+     70,   0,  16,   0,   0,   0, 
+      0,   0,  70, 126,  16,   0, 
+      0,   0,   0,   0,   0,  96, 
+     16,   0,   0,   0,   0,   0, 
+     69,   0,   0,   9, 242,   0, 
+     16,   0,   0,   0,   0,   0, 
+    230,  10,  16,   0,   0,   0, 
+      0,   0,  70, 126,  16,   0, 
+      0,   0,   0,   0,   0,  96, 
+     16,   0,   0,   0,   0,   0, 
+     50,   0,   0,  10,  18,   0, 
+     16,   0,   0,   0,   0,   0, 
+     42, 128,  32,   0,   0,   0, 
+      0,   0,   6,   0,   0,   0, 
+     58,   0,  16,   0,   2,   0, 
+      0,   0,  10,   0,  16,   0, 
+      1,   0,   0,   0,  50,   0, 
+      0,  10,  18,   0,  16,   0, 
+      0,   0,   0,   0,  58, 128, 
+     32,   0,   0,   0,   0,   0, 
+      6,   0,   0,   0,  58,   0, 
+     16,   0,   0,   0,   0,   0, 
+     10,   0,  16,   0,   0,   0, 
+      0,   0,   0,   0,   0,   8, 
+    242,   0,  16,   0,   1,   0, 
+      0,   0,   6,  16,  16,   0, 
+      1,   0,   0,   0,  38, 135, 
+     32,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,  54,   0, 
+      0,   5,  82,   0,  16,   0, 
+      2,   0,   0,   0,  86,   7, 
+     16,   0,   1,   0,   0,   0, 
+     54,   0,   0,   5, 162,   0, 
+     16,   0,   2,   0,   0,   0, 
+     86,  21,  16,   0,   1,   0, 
+      0,   0,  69,   0,   0,   9, 
+    242,   0,  16,   0,   3,   0, 
+      0,   0,  70,   0,  16,   0, 
+      2,   0,   0,   0,  70, 126, 
+     16,   0,   0,   0,   0,   0, 
+      0,  96,  16,   0,   0,   0, 
+      0,   0,  69,   0,   0,   9, 
+    242,   0,  16,   0,   2,   0, 
+      0,   0, 230,  10,  16,   0, 
+      2,   0,   0,   0,  70, 126, 
+     16,   0,   0,   0,   0,   0, 
+      0,  96,  16,   0,   0,   0, 
+      0,   0,  50,   0,   0,  10, 
+     18,   0,  16,   0,   0,   0, 
+      0,   0,  10, 128,  32,   0, 
+      0,   0,   0,   0,   7,   0, 
+      0,   0,  58,   0,  16,   0, 
+      3,   0,   0,   0,  10,   0, 
+     16,   0,   0,   0,   0,   0, 
+     50,   0,   0,  10,  18,   0, 
+     16,   0,   0,   0,   0,   0, 
+     26, 128,  32,   0,   0,   0, 
+      0,   0,   7,   0,   0,   0, 
+     58,   0,  16,   0,   2,   0, 
+      0,   0,  10,   0,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   5, 162,   0,  16,   0, 
+      1,   0,   0,   0,  86,  21, 
+     16,   0,   1,   0,   0,   0, 
+     69,   0,   0,   9, 242,   0, 
+     16,   0,   2,   0,   0,   0, 
+     70,   0,  16,   0,   1,   0, 
+      0,   0,  70, 126,  16,   0, 
+      0,   0,   0,   0,   0,  96, 
+     16,   0,   0,   0,   0,   0, 
+     69,   0,   0,   9, 242,   0, 
+     16,   0,   1,   0,   0,   0, 
+    230,  10,  16,   0,   1,   0, 
+      0,   0,  70, 126,  16,   0, 
+      0,   0,   0,   0,   0,  96, 
+     16,   0,   0,   0,   0,   0, 
+     50,   0,   0,  10,  18,   0, 
+     16,   0,   0,   0,   0,   0, 
+     42, 128,  32,   0,   0,   0, 
+      0,   0,   7,   0,   0,   0, 
+     58,   0,  16,   0,   2,   0, 
+      0,   0,  10,   0,  16,   0, 
+      0,   0,   0,   0,  50,   0, 
+      0,  10,  18,   0,  16,   0, 
+      0,   0,   0,   0,  58, 128, 
+     32,   0,   0,   0,   0,   0, 
+      7,   0,   0,   0,  58,   0, 
+     16,   0,   1,   0,   0,   0, 
+     10,   0,  16,   0,   0,   0, 
+      0,   0,   0,   0,   0,   8, 
+     18,   0,  16,   0,   1,   0, 
+      0,   0,  10,  16,  16,   0, 
+      1,   0,   0,   0,  10, 128, 
+     32,   0,   0,   0,   0,   0, 
+      2,   0,   0,   0,  54,   0, 
+      0,   5,  34,   0,  16,   0, 
+      1,   0,   0,   0,  26,  16, 
+     16,   0,   1,   0,   0,   0, 
+     69,   0,   0,   9, 242,   0, 
+     16,   0,   1,   0,   0,   0, 
+     70,   0,  16,   0,   1,   0, 
+      0,   0,  70, 126,  16,   0, 
+      0,   0,   0,   0,   0,  96, 
+     16,   0,   0,   0,   0,   0, 
+     50,   0,   0,  10,  18,   0, 
+     16,   0,   0,   0,   0,   0, 
+     10, 128,  32,   0,   0,   0, 
+      0,   0,   8,   0,   0,   0, 
+     58,   0,  16,   0,   1,   0, 
+      0,   0,  10,   0,  16,   0, 
+      0,   0,   0,   0,  56,   0, 
+      0,   8, 242,  32,  16,   0, 
+      0,   0,   0,   0,   6,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70, 142,  32,   0,   0,   0, 
+      0,   0,   9,   0,   0,   0, 
+     62,   0,   0,   1,  83,  84, 
+     65,  84, 116,   0,   0,   0, 
+     30,   0,   0,   0,   4,   0, 
+      0,   0,   0,   0,   0,   0, 
+      2,   0,   0,   0,   5,   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,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   9,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   9,   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,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  82,  68,  69,  70, 
+    184,   1,   0,   0,   1,   0, 
+      0,   0, 148,   0,   0,   0, 
+      3,   0,   0,   0,  28,   0, 
+      0,   0,   0,   4, 255, 255, 
+      0,   1,   0,   0, 132,   1, 
+      0,   0, 124,   0,   0,   0, 
+      3,   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, 139,   0, 
+      0,   0,   2,   0,   0,   0, 
+      5,   0,   0,   0,   4,   0, 
+      0,   0, 255, 255, 255, 255, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  12,   0,   0,   0, 
+    143,   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, 115,  83, 104,  97, 
+    100, 111, 119,  83,  97, 109, 
+    112, 108, 101, 114,   0, 116, 
+    101, 120,   0,  99,  98,  49, 
+      0, 171, 143,   0,   0,   0, 
+      4,   0,   0,   0, 172,   0, 
+      0,   0, 160,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  12,   1,   0,   0, 
+      0,   0,   0,   0,  48,   0, 
+      0,   0,   2,   0,   0,   0, 
+     28,   1,   0,   0,   0,   0, 
+      0,   0,  44,   1,   0,   0, 
+     48,   0,   0,   0,  48,   0, 
+      0,   0,   0,   0,   0,   0, 
+     60,   1,   0,   0,   0,   0, 
+      0,   0,  76,   1,   0,   0, 
+     96,   0,   0,   0,  48,   0, 
+      0,   0,   2,   0,   0,   0, 
+     88,   1,   0,   0,   0,   0, 
+      0,   0, 104,   1,   0,   0, 
+    144,   0,   0,   0,  16,   0, 
+      0,   0,   2,   0,   0,   0, 
+    116,   1,   0,   0,   0,   0, 
+      0,   0,  66, 108, 117, 114, 
+     79, 102, 102, 115, 101, 116, 
+    115,  72,   0, 171, 171, 171, 
+      1,   0,   3,   0,   1,   0, 
+      4,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  66, 108, 
+    117, 114,  79, 102, 102, 115, 
+    101, 116, 115,  86,   0, 171, 
+    171, 171,   1,   0,   3,   0, 
+      1,   0,   4,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+     66, 108, 117, 114,  87, 101, 
+    105, 103, 104, 116, 115,   0, 
+      1,   0,   3,   0,   1,   0, 
+      4,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  83, 104, 
+     97, 100, 111, 119,  67, 111, 
+    108, 111, 114,   0,   1,   0, 
+      3,   0,   1,   0,   4,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  77, 105,  99, 114, 
+    111, 115, 111, 102, 116,  32, 
+     40,  82,  41,  32,  72,  76, 
+     83,  76,  32,  83, 104,  97, 
+    100, 101, 114,  32,  67, 111, 
+    109, 112, 105, 108, 101, 114, 
+     32,  57,  46,  50,  57,  46, 
+     57,  53,  50,  46,  51,  49, 
+     49,  49,   0, 171, 171, 171, 
+     73,  83,  71,  78, 104,   0, 
+      0,   0,   3,   0,   0,   0, 
+      8,   0,   0,   0,  80,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+     15,   0,   0,   0,  92,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,   1,   0,   0,   0, 
+      3,   3,   0,   0,  92,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,   1,   0,   0,   0, 
+     12,   0,   0,   0,  83,  86, 
+     95,  80, 111, 115, 105, 116, 
+    105, 111, 110,   0,  84,  69, 
+     88,  67,  79,  79,  82,  68, 
+      0, 171, 171, 171,  79,  83, 
+     71,  78,  44,   0,   0,   0, 
+      1,   0,   0,   0,   8,   0, 
+      0,   0,  32,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  83,  86,  95,  84, 
+     97, 114, 103, 101, 116,   0, 
+    171, 171,  14,  55,   0,   0, 
+      0,   0,   0,   0,   4,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0, 128,  63,   1,   0, 
+      0,   0,   0,   0, 128,  63, 
+      1,   0,   0,   0,   0,   0, 
+    128,  63,   1,   0,   0,   0, 
+      0,   0, 128,  63,   1,   0, 
+      0,   0,   3,   0,   0,   0, 
+    255, 255, 255, 255,  36,   4, 
+      0,   0,  68,  88,  66,  67, 
+    116, 139,  68,  62,  73, 113, 
+     92,   4,  72,  76, 225, 161, 
+     30, 132, 222, 233,   1,   0, 
+      0,   0,  36,   4,   0,   0, 
+      6,   0,   0,   0,  56,   0, 
+      0,   0, 248,   0,   0,   0, 
+    244,   1,   0,   0, 112,   2, 
+      0,   0, 128,   3,   0,   0, 
+    180,   3,   0,   0,  65, 111, 
+    110,  57, 184,   0,   0,   0, 
+    184,   0,   0,   0,   0,   2, 
+    254, 255, 132,   0,   0,   0, 
+     52,   0,   0,   0,   1,   0, 
+     36,   0,   0,   0,  48,   0, 
+      0,   0,  48,   0,   0,   0, 
+     36,   0,   1,   0,  48,   0, 
+      0,   0,   0,   0,   3,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   1,   2, 
+    254, 255,  81,   0,   0,   5, 
+      4,   0,  15, 160,   0,   0, 
+      0,   0,   0,   0, 128,  63, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  31,   0,   0,   2, 
+      5,   0,   0, 128,   0,   0, 
+     15, 144,   4,   0,   0,   4, 
+      0,   0,   3, 224,   0,   0, 
+    228, 144,   2,   0, 238, 160, 
+      2,   0, 228, 160,   4,   0, 
+      0,   4,   0,   0,  12, 224, 
+      0,   0,  20, 144,   3,   0, 
+    180, 160,   3,   0,  20, 160, 
+      4,   0,   0,   4,   0,   0, 
+      3, 128,   0,   0, 228, 144, 
+      1,   0, 238, 160,   1,   0, 
+    228, 160,   2,   0,   0,   3, 
+      0,   0,   3, 192,   0,   0, 
+    228, 128,   0,   0, 228, 160, 
+      1,   0,   0,   2,   0,   0, 
+     12, 192,   4,   0,  68, 160, 
+    255, 255,   0,   0,  83,  72, 
+     68,  82, 244,   0,   0,   0, 
+     64,   0,   1,   0,  61,   0, 
+      0,   0,  89,   0,   0,   4, 
+     70, 142,  32,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+     95,   0,   0,   3,  50,  16, 
+     16,   0,   0,   0,   0,   0, 
+    103,   0,   0,   4, 242,  32, 
+     16,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0, 101,   0, 
+      0,   3,  50,  32,  16,   0, 
+      1,   0,   0,   0, 101,   0, 
+      0,   3, 194,  32,  16,   0, 
+      1,   0,   0,   0,  50,   0, 
+      0,  11,  50,  32,  16,   0, 
+      0,   0,   0,   0,  70,  16, 
+     16,   0,   0,   0,   0,   0, 
+    230, 138,  32,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     70, 128,  32,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     54,   0,   0,   8, 194,  32, 
+     16,   0,   0,   0,   0,   0, 
+      2,  64,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+    128,  63,  50,   0,   0,  11, 
+     50,  32,  16,   0,   1,   0, 
+      0,   0,  70,  16,  16,   0, 
+      0,   0,   0,   0, 230, 138, 
+     32,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,  70, 128, 
+     32,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,  50,   0, 
+      0,  11, 194,  32,  16,   0, 
+      1,   0,   0,   0,   6,  20, 
+     16,   0,   0,   0,   0,   0, 
+    166, 142,  32,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+      6, 132,  32,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+     62,   0,   0,   1,  83,  84, 
+     65,  84, 116,   0,   0,   0, 
+      5,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      4,   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,   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,   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, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  82,  68,  69,  70, 
+      8,   1,   0,   0,   1,   0, 
+      0,   0,  64,   0,   0,   0, 
+      1,   0,   0,   0,  28,   0, 
+      0,   0,   0,   4, 254, 255, 
+      0,   1,   0,   0, 212,   0, 
+      0,   0,  60,   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,  99,  98, 
+     48,   0,  60,   0,   0,   0, 
+      3,   0,   0,   0,  88,   0, 
+      0,   0,  48,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0, 160,   0,   0,   0, 
+      0,   0,   0,   0,  16,   0, 
+      0,   0,   2,   0,   0,   0, 
+    172,   0,   0,   0,   0,   0, 
+      0,   0, 188,   0,   0,   0, 
+     16,   0,   0,   0,  16,   0, 
+      0,   0,   2,   0,   0,   0, 
+    172,   0,   0,   0,   0,   0, 
+      0,   0, 198,   0,   0,   0, 
+     32,   0,   0,   0,  16,   0, 
+      0,   0,   2,   0,   0,   0, 
+    172,   0,   0,   0,   0,   0, 
+      0,   0,  81, 117,  97, 100, 
+     68, 101, 115,  99,   0, 171, 
+    171, 171,   1,   0,   3,   0, 
+      1,   0,   4,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     84, 101, 120,  67, 111, 111, 
+    114, 100, 115,   0,  77,  97, 
+    115, 107,  84, 101, 120,  67, 
+    111, 111, 114, 100, 115,   0, 
+     77, 105,  99, 114, 111, 115, 
+    111, 102, 116,  32,  40,  82, 
+     41,  32,  72,  76,  83,  76, 
+     32,  83, 104,  97, 100, 101, 
+    114,  32,  67, 111, 109, 112, 
+    105, 108, 101, 114,  32,  57, 
+     46,  50,  57,  46,  57,  53, 
+     50,  46,  51,  49,  49,  49, 
+      0, 171, 171, 171,  73,  83, 
+     71,  78,  44,   0,   0,   0, 
+      1,   0,   0,   0,   8,   0, 
+      0,   0,  32,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,   7,   3, 
+      0,   0,  80,  79,  83,  73, 
+     84,  73,  79,  78,   0, 171, 
+    171, 171,  79,  83,  71,  78, 
+    104,   0,   0,   0,   3,   0, 
+      0,   0,   8,   0,   0,   0, 
+     80,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+      3,   0,   0,   0,   0,   0, 
+      0,   0,  15,   0,   0,   0, 
+     92,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   1,   0, 
+      0,   0,   3,  12,   0,   0, 
+     92,   0,   0,   0,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   1,   0, 
+      0,   0,  12,   3,   0,   0, 
+     83,  86,  95,  80, 111, 115, 
+    105, 116, 105, 111, 110,   0, 
+     84,  69,  88,  67,  79,  79, 
+     82,  68,   0, 171, 171, 171, 
+     50,  65,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+      2,   0,   0,   0,   0,   0, 
+      0,   0, 172,   9,   0,   0, 
+     68,  88,  66,  67, 110,  68, 
+    159, 211, 251, 173, 118,  80, 
+    154, 213, 185, 171, 243,  23, 
+    113, 100,   1,   0,   0,   0, 
+    172,   9,   0,   0,   6,   0, 
+      0,   0,  56,   0,   0,   0, 
+    220,   2,   0,   0, 204,   6, 
+      0,   0,  72,   7,   0,   0, 
+      8,   9,   0,   0, 120,   9, 
+      0,   0,  65, 111, 110,  57, 
+    156,   2,   0,   0, 156,   2, 
+      0,   0,   0,   2, 255, 255, 
+    104,   2,   0,   0,  52,   0, 
+      0,   0,   1,   0,  40,   0, 
+      0,   0,  52,   0,   0,   0, 
+     52,   0,   1,   0,  36,   0, 
+      0,   0,  52,   0,   0,   0, 
+      0,   0,   0,   0,   3,   0, 
+      6,   0,   0,   0,   0,   0, 
+      0,   0,   1,   2, 255, 255, 
+     31,   0,   0,   2,   0,   0, 
+      0, 128,   0,   0,  15, 176, 
+     31,   0,   0,   2,   0,   0, 
+      0, 144,   0,   8,  15, 160, 
+      2,   0,   0,   3,   0,   0, 
+      2, 128,   0,   0,  85, 176, 
+      0,   0,  85, 160,   1,   0, 
+      0,   2,   0,   0,   1, 128, 
+      0,   0,   0, 176,   2,   0, 
+      0,   3,   1,   0,   2, 128, 
+      0,   0,  85, 176,   0,   0, 
+      0, 160,   1,   0,   0,   2, 
+      1,   0,   1, 128,   0,   0, 
+      0, 176,  66,   0,   0,   3, 
+      0,   0,  15, 128,   0,   0, 
+    228, 128,   0,   8, 228, 160, 
+     66,   0,   0,   3,   1,   0, 
+     15, 128,   1,   0, 228, 128, 
+      0,   8, 228, 160,   5,   0, 
+      0,   3,   0,   0,  15, 128, 
+      0,   0, 228, 128,   3,   0, 
+     85, 160,   4,   0,   0,   4, 
+      0,   0,  15, 128,   3,   0, 
+      0, 160,   1,   0, 228, 128, 
+      0,   0, 228, 128,   2,   0, 
+      0,   3,   1,   0,   2, 128, 
+      0,   0,  85, 176,   0,   0, 
+    170, 160,   1,   0,   0,   2, 
+      1,   0,   1, 128,   0,   0, 
+      0, 176,   2,   0,   0,   3, 
+      2,   0,   2, 128,   0,   0, 
+     85, 176,   0,   0, 255, 160, 
+      1,   0,   0,   2,   2,   0, 
+      1, 128,   0,   0,   0, 176, 
+     66,   0,   0,   3,   1,   0, 
+     15, 128,   1,   0, 228, 128, 
+      0,   8, 228, 160,  66,   0, 
+      0,   3,   2,   0,  15, 128, 
+      2,   0, 228, 128,   0,   8, 
+    228, 160,   4,   0,   0,   4, 
+      0,   0,  15, 128,   3,   0, 
+    170, 160,   1,   0, 228, 128, 
+      0,   0, 228, 128,   4,   0, 
+      0,   4,   0,   0,  15, 128, 
+      3,   0, 255, 160,   2,   0, 
+    228, 128,   0,   0, 228, 128, 
+      2,   0,   0,   3,   1,   0, 
+      2, 128,   0,   0,  85, 176, 
+      1,   0,   0, 160,   1,   0, 
+      0,   2,   1,   0,   1, 128, 
+      0,   0,   0, 176,   2,   0, 
+      0,   3,   2,   0,   2, 128, 
+      0,   0,  85, 176,   1,   0, 
+     85, 160,   1,   0,   0,   2, 
+      2,   0,   1, 128,   0,   0, 
+      0, 176,  66,   0,   0,   3, 
+      1,   0,  15, 128,   1,   0, 
+    228, 128,   0,   8, 228, 160, 
+     66,   0,   0,   3,   2,   0, 
+     15, 128,   2,   0, 228, 128, 
+      0,   8, 228, 160,   4,   0, 
+      0,   4,   0,   0,  15, 128, 
+      4,   0,   0, 160,   1,   0, 
+    228, 128,   0,   0, 228, 128, 
+      4,   0,   0,   4,   0,   0, 
+     15, 128,   4,   0,  85, 160, 
+      2,   0, 228, 128,   0,   0, 
+    228, 128,   2,   0,   0,   3, 
+      1,   0,   2, 128,   0,   0, 
+     85, 176,   1,   0, 170, 160, 
+      1,   0,   0,   2,   1,   0, 
+      1, 128,   0,   0,   0, 176, 
+      2,   0,   0,   3,   2,   0, 
+      2, 128,   0,   0,  85, 176, 
+      1,   0, 255, 160,   1,   0, 
+      0,   2,   2,   0,   1, 128, 
+      0,   0,   0, 176,  66,   0, 
+      0,   3,   1,   0,  15, 128, 
+      1,   0, 228, 128,   0,   8, 
+    228, 160,  66,   0,   0,   3, 
+      2,   0,  15, 128,   2,   0, 
+    228, 128,   0,   8, 228, 160, 
+      4,   0,   0,   4,   0,   0, 
+     15, 128,   4,   0, 170, 160, 
+      1,   0, 228, 128,   0,   0, 
+    228, 128,   4,   0,   0,   4, 
+      0,   0,  15, 128,   4,   0, 
+    255, 160,   2,   0, 228, 128, 
+      0,   0, 228, 128,   2,   0, 
+      0,   3,   1,   0,   2, 128, 
+      0,   0,  85, 176,   2,   0, 
+      0, 160,   1,   0,   0,   2, 
+      1,   0,   1, 128,   0,   0, 
+      0, 176,  66,   0,   0,   3, 
+      1,   0,  15, 128,   1,   0, 
+    228, 128,   0,   8, 228, 160, 
+      4,   0,   0,   4,   0,   0, 
+     15, 128,   5,   0,   0, 160, 
+      1,   0, 228, 128,   0,   0, 
+    228, 128,   1,   0,   0,   2, 
+      0,   8,  15, 128,   0,   0, 
+    228, 128, 255, 255,   0,   0, 
+     83,  72,  68,  82, 232,   3, 
+      0,   0,  64,   0,   0,   0, 
+    250,   0,   0,   0,  89,   0, 
+      0,   4,  70, 142,  32,   0, 
+      0,   0,   0,   0,   9,   0, 
+      0,   0,  90,   0,   0,   3, 
+      0,  96,  16,   0,   0,   0, 
+      0,   0,  88,  24,   0,   4, 
+      0, 112,  16,   0,   0,   0, 
+      0,   0,  85,  85,   0,   0, 
+     98,  16,   0,   3,  50,  16, 
+     16,   0,   1,   0,   0,   0, 
+    101,   0,   0,   3, 242,  32, 
+     16,   0,   0,   0,   0,   0, 
+    104,   0,   0,   2,   4,   0, 
+      0,   0,  54,   0,   0,   5, 
+     82,   0,  16,   0,   0,   0, 
+      0,   0,   6,  16,  16,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   8, 242,   0,  16,   0, 
+      1,   0,   0,   0,  86,  21, 
+     16,   0,   1,   0,   0,   0, 
+    134, 141,  32,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+     54,   0,   0,   5, 162,   0, 
+     16,   0,   0,   0,   0,   0, 
+      6,   8,  16,   0,   1,   0, 
+      0,   0,  69,   0,   0,   9, 
+    242,   0,  16,   0,   2,   0, 
+      0,   0, 230,  10,  16,   0, 
+      0,   0,   0,   0,  70, 126, 
+     16,   0,   0,   0,   0,   0, 
+      0,  96,  16,   0,   0,   0, 
+      0,   0,  69,   0,   0,   9, 
+    242,   0,  16,   0,   0,   0, 
+      0,   0,  70,   0,  16,   0, 
+      0,   0,   0,   0,  70, 126, 
+     16,   0,   0,   0,   0,   0, 
+      0,  96,  16,   0,   0,   0, 
+      0,   0,  56,   0,   0,   8, 
+    242,   0,  16,   0,   2,   0, 
+      0,   0,  70,  14,  16,   0, 
+      2,   0,   0,   0,  86, 133, 
+     32,   0,   0,   0,   0,   0, 
+      6,   0,   0,   0,  50,   0, 
+      0,  10, 242,   0,  16,   0, 
+      0,   0,   0,   0,   6, 128, 
+     32,   0,   0,   0,   0,   0, 
+      6,   0,   0,   0,  70,  14, 
+     16,   0,   0,   0,   0,   0, 
+     70,  14,  16,   0,   2,   0, 
+      0,   0,  54,   0,   0,   5, 
+     82,   0,  16,   0,   1,   0, 
+      0,   0,   6,  16,  16,   0, 
+      1,   0,   0,   0,  69,   0, 
+      0,   9, 242,   0,  16,   0, 
+      2,   0,   0,   0,  70,   0, 
+     16,   0,   1,   0,   0,   0, 
+     70, 126,  16,   0,   0,   0, 
+      0,   0,   0,  96,  16,   0, 
+      0,   0,   0,   0,  69,   0, 
+      0,   9, 242,   0,  16,   0, 
+      1,   0,   0,   0, 230,  10, 
+     16,   0,   1,   0,   0,   0, 
+     70, 126,  16,   0,   0,   0, 
+      0,   0,   0,  96,  16,   0, 
+      0,   0,   0,   0,  50,   0, 
+      0,  10, 242,   0,  16,   0, 
+      0,   0,   0,   0, 166, 138, 
+     32,   0,   0,   0,   0,   0, 
+      6,   0,   0,   0,  70,  14, 
+     16,   0,   2,   0,   0,   0, 
+     70,  14,  16,   0,   0,   0, 
+      0,   0,  50,   0,   0,  10, 
+    242,   0,  16,   0,   0,   0, 
+      0,   0, 246, 143,  32,   0, 
+      0,   0,   0,   0,   6,   0, 
+      0,   0,  70,  14,  16,   0, 
+      1,   0,   0,   0,  70,  14, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   5,  82,   0, 
+     16,   0,   1,   0,   0,   0, 
+      6,  16,  16,   0,   1,   0, 
+      0,   0,   0,   0,   0,   8, 
+    242,   0,  16,   0,   2,   0, 
+      0,   0,  86,  21,  16,   0, 
+      1,   0,   0,   0, 134, 141, 
+     32,   0,   0,   0,   0,   0, 
+      4,   0,   0,   0,  54,   0, 
+      0,   5, 162,   0,  16,   0, 
+      1,   0,   0,   0,   6,   8, 
+     16,   0,   2,   0,   0,   0, 
+     69,   0,   0,   9, 242,   0, 
+     16,   0,   3,   0,   0,   0, 
+     70,   0,  16,   0,   1,   0, 
+      0,   0,  70, 126,  16,   0, 
+      0,   0,   0,   0,   0,  96, 
+     16,   0,   0,   0,   0,   0, 
+     69,   0,   0,   9, 242,   0, 
+     16,   0,   1,   0,   0,   0, 
+    230,  10,  16,   0,   1,   0, 
+      0,   0,  70, 126,  16,   0, 
+      0,   0,   0,   0,   0,  96, 
+     16,   0,   0,   0,   0,   0, 
+     50,   0,   0,  10, 242,   0, 
+     16,   0,   0,   0,   0,   0, 
+      6, 128,  32,   0,   0,   0, 
+      0,   0,   7,   0,   0,   0, 
+     70,  14,  16,   0,   3,   0, 
+      0,   0,  70,  14,  16,   0, 
+      0,   0,   0,   0,  50,   0, 
+      0,  10, 242,   0,  16,   0, 
+      0,   0,   0,   0,  86, 133, 
+     32,   0,   0,   0,   0,   0, 
+      7,   0,   0,   0,  70,  14, 
+     16,   0,   1,   0,   0,   0, 
+     70,  14,  16,   0,   0,   0, 
+      0,   0,  54,   0,   0,   5, 
+     82,   0,  16,   0,   2,   0, 
+      0,   0,   6,  16,  16,   0, 
+      1,   0,   0,   0,  69,   0, 
+      0,   9, 242,   0,  16,   0, 
+      1,   0,   0,   0,  70,   0, 
+     16,   0,   2,   0,   0,   0, 
+     70, 126,  16,   0,   0,   0, 
+      0,   0,   0,  96,  16,   0, 
+      0,   0,   0,   0,  69,   0, 
+      0,   9, 242,   0,  16,   0, 
+      2,   0,   0,   0, 230,  10, 
+     16,   0,   2,   0,   0,   0, 
+     70, 126,  16,   0,   0,   0, 
+      0,   0,   0,  96,  16,   0, 
+      0,   0,   0,   0,  50,   0, 
+      0,  10, 242,   0,  16,   0, 
+      0,   0,   0,   0, 166, 138, 
+     32,   0,   0,   0,   0,   0, 
+      7,   0,   0,   0,  70,  14, 
+     16,   0,   1,   0,   0,   0, 
+     70,  14,  16,   0,   0,   0, 
+      0,   0,  50,   0,   0,  10, 
+    242,   0,  16,   0,   0,   0, 
+      0,   0, 246, 143,  32,   0, 
+      0,   0,   0,   0,   7,   0, 
+      0,   0,  70,  14,  16,   0, 
+      2,   0,   0,   0,  70,  14, 
+     16,   0,   0,   0,   0,   0, 
+      0,   0,   0,   8,  34,   0, 
+     16,   0,   1,   0,   0,   0, 
+     26,  16,  16,   0,   1,   0, 
+      0,   0,  10, 128,  32,   0, 
+      0,   0,   0,   0,   5,   0, 
+      0,   0,  54,   0,   0,   5, 
+     18,   0,  16,   0,   1,   0, 
+      0,   0,  10,  16,  16,   0, 
+      1,   0,   0,   0,  69,   0, 
+      0,   9, 242,   0,  16,   0, 
+      1,   0,   0,   0,  70,   0, 
+     16,   0,   1,   0,   0,   0, 
+     70, 126,  16,   0,   0,   0, 
+      0,   0,   0,  96,  16,   0, 
+      0,   0,   0,   0,  50,   0, 
+      0,  10, 242,  32,  16,   0, 
+      0,   0,   0,   0,   6, 128, 
+     32,   0,   0,   0,   0,   0, 
+      8,   0,   0,   0,  70,  14, 
+     16,   0,   1,   0,   0,   0, 
+     70,  14,  16,   0,   0,   0, 
+      0,   0,  62,   0,   0,   1, 
+     83,  84,  65,  84, 116,   0, 
+      0,   0,  29,   0,   0,   0, 
+      4,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+      4,   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, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   9,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      9,   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,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  82,  68, 
+     69,  70, 184,   1,   0,   0, 
+      1,   0,   0,   0, 148,   0, 
+      0,   0,   3,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+    132,   1,   0,   0, 124,   0, 
+      0,   0,   3,   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, 
+    139,   0,   0,   0,   2,   0, 
+      0,   0,   5,   0,   0,   0, 
+      4,   0,   0,   0, 255, 255, 
+    255, 255,   0,   0,   0,   0, 
+      1,   0,   0,   0,  12,   0, 
+      0,   0, 143,   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, 115,  83, 
+    104,  97, 100, 111, 119,  83, 
+     97, 109, 112, 108, 101, 114, 
+      0, 116, 101, 120,   0,  99, 
+     98,  49,   0, 171, 143,   0, 
+      0,   0,   4,   0,   0,   0, 
+    172,   0,   0,   0, 160,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  12,   1, 
+      0,   0,   0,   0,   0,   0, 
+     48,   0,   0,   0,   0,   0, 
+      0,   0,  28,   1,   0,   0, 
+      0,   0,   0,   0,  44,   1, 
+      0,   0,  48,   0,   0,   0, 
+     48,   0,   0,   0,   2,   0, 
+      0,   0,  60,   1,   0,   0, 
+      0,   0,   0,   0,  76,   1, 
+      0,   0,  96,   0,   0,   0, 
+     48,   0,   0,   0,   2,   0, 
+      0,   0,  88,   1,   0,   0, 
+      0,   0,   0,   0, 104,   1, 
+      0,   0, 144,   0,   0,   0, 
+     16,   0,   0,   0,   0,   0, 
+      0,   0, 116,   1,   0,   0, 
+      0,   0,   0,   0,  66, 108, 
+    117, 114,  79, 102, 102, 115, 
+    101, 116, 115,  72,   0, 171, 
+    171, 171,   1,   0,   3,   0, 
+      1,   0,   4,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+     66, 108, 117, 114,  79, 102, 
+    102, 115, 101, 116, 115,  86, 
+      0, 171, 171, 171,   1,   0, 
+      3,   0,   1,   0,   4,   0, 
+      3,   0,   0,   0,   0,   0, 
+      0,   0,  66, 108, 117, 114, 
+     87, 101, 105, 103, 104, 116, 
+    115,   0,   1,   0,   3,   0, 
+      1,   0,   4,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+     83, 104,  97, 100, 111, 119, 
+     67, 111, 108, 111, 114,   0, 
+      1,   0,   3,   0,   1,   0, 
+      4,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  77, 105, 
+     99, 114, 111, 115, 111, 102, 
+    116,  32,  40,  82,  41,  32, 
+     72,  76,  83,  76,  32,  83, 
+    104,  97, 100, 101, 114,  32, 
+     67, 111, 109, 112, 105, 108, 
+    101, 114,  32,  57,  46,  50, 
+     57,  46,  57,  53,  50,  46, 
+     51,  49,  49,  49,   0, 171, 
+    171, 171,  73,  83,  71,  78, 
+    104,   0,   0,   0,   3,   0, 
+      0,   0,   8,   0,   0,   0, 
+     80,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+      3,   0,   0,   0,   0,   0, 
+      0,   0,  15,   0,   0,   0, 
+     92,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   1,   0, 
+      0,   0,   3,   3,   0,   0, 
+     92,   0,   0,   0,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   1,   0, 
+      0,   0,  12,   0,   0,   0, 
+     83,  86,  95,  80, 111, 115, 
+    105, 116, 105, 111, 110,   0, 
+     84,  69,  88,  67,  79,  79, 
+     82,  68,   0, 171, 171, 171, 
+     79,  83,  71,  78,  44,   0, 
+      0,   0,   1,   0,   0,   0, 
+      8,   0,   0,   0,  32,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+     15,   0,   0,   0,  83,  86, 
+     95,  84,  97, 114, 103, 101, 
+    116,   0, 171, 171, 110,  69, 
+      0,   0,   0,   0,   0,   0, 
+     80,  50,   0,   4,   0,   0, 
+      0,   1,   0,   0,   0,   0, 
+      0, 128,  63,   1,   0,   0, 
       0,   0,   0, 128,  63,   1, 
       0,   0,   0,   0,   0, 128, 
      63,   1,   0,   0,   0,   0, 
       0, 128,  63,   1,   0,   0, 
-      0,   0,   0, 128,  63,   1, 
-      0,   0,   0,   3,   0,   0, 
-      0, 255, 255, 255, 255,  36, 
-      4,   0,   0,  68,  88,  66, 
-     67, 116, 139,  68,  62,  73, 
-    113,  92,   4,  72,  76, 225, 
-    161,  30, 132, 222, 233,   1, 
-      0,   0,   0,  36,   4,   0, 
-      0,   6,   0,   0,   0,  56, 
-      0,   0,   0, 248,   0,   0, 
-      0, 244,   1,   0,   0, 112, 
-      2,   0,   0, 128,   3,   0, 
-      0, 180,   3,   0,   0,  65, 
-    111, 110,  57, 184,   0,   0, 
-      0, 184,   0,   0,   0,   0, 
-      2, 254, 255, 132,   0,   0, 
-      0,  52,   0,   0,   0,   1, 
-      0,  36,   0,   0,   0,  48, 
+      0,   3,   0,   0,   0, 255, 
+    255, 255, 255,  36,   4,   0, 
+      0,  68,  88,  66,  67, 116, 
+    139,  68,  62,  73, 113,  92, 
+      4,  72,  76, 225, 161,  30, 
+    132, 222, 233,   1,   0,   0, 
+      0,  36,   4,   0,   0,   6, 
+      0,   0,   0,  56,   0,   0, 
+      0, 248,   0,   0,   0, 244, 
+      1,   0,   0, 112,   2,   0, 
+      0, 128,   3,   0,   0, 180, 
+      3,   0,   0,  65, 111, 110, 
+     57, 184,   0,   0,   0, 184, 
+      0,   0,   0,   0,   2, 254, 
+    255, 132,   0,   0,   0,  52, 
+      0,   0,   0,   1,   0,  36, 
       0,   0,   0,  48,   0,   0, 
-      0,  36,   0,   1,   0,  48, 
-      0,   0,   0,   0,   0,   3, 
-      0,   1,   0,   0,   0,   0, 
+      0,  48,   0,   0,   0,  36, 
+      0,   1,   0,  48,   0,   0, 
+      0,   0,   0,   3,   0,   1, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   1,   2, 254, 
+    255,  81,   0,   0,   5,   4, 
+      0,  15, 160,   0,   0,   0, 
+      0,   0,   0, 128,  63,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,  31,   0,   0,   2,   5, 
+      0,   0, 128,   0,   0,  15, 
+    144,   4,   0,   0,   4,   0, 
+      0,   3, 224,   0,   0, 228, 
+    144,   2,   0, 238, 160,   2, 
+      0, 228, 160,   4,   0,   0, 
+      4,   0,   0,  12, 224,   0, 
+      0,  20, 144,   3,   0, 180, 
+    160,   3,   0,  20, 160,   4, 
+      0,   0,   4,   0,   0,   3, 
+    128,   0,   0, 228, 144,   1, 
+      0, 238, 160,   1,   0, 228, 
+    160,   2,   0,   0,   3,   0, 
+      0,   3, 192,   0,   0, 228, 
+    128,   0,   0, 228, 160,   1, 
+      0,   0,   2,   0,   0,  12, 
+    192,   4,   0,  68, 160, 255, 
+    255,   0,   0,  83,  72,  68, 
+     82, 244,   0,   0,   0,  64, 
+      0,   1,   0,  61,   0,   0, 
+      0,  89,   0,   0,   4,  70, 
+    142,  32,   0,   0,   0,   0, 
+      0,   3,   0,   0,   0,  95, 
+      0,   0,   3,  50,  16,  16, 
+      0,   0,   0,   0,   0, 103, 
+      0,   0,   4, 242,  32,  16, 
       0,   0,   0,   0,   0,   1, 
-      2, 254, 255,  81,   0,   0, 
-      5,   4,   0,  15, 160,   0, 
-      0,   0,   0,   0,   0, 128, 
-     63,   0,   0,   0,   0,   0, 
-      0,   0,   0,  31,   0,   0, 
-      2,   5,   0,   0, 128,   0, 
-      0,  15, 144,   4,   0,   0, 
-      4,   0,   0,   3, 224,   0, 
-      0, 228, 144,   2,   0, 238, 
-    160,   2,   0, 228, 160,   4, 
-      0,   0,   4,   0,   0,  12, 
-    224,   0,   0,  20, 144,   3, 
-      0, 180, 160,   3,   0,  20, 
-    160,   4,   0,   0,   4,   0, 
-      0,   3, 128,   0,   0, 228, 
-    144,   1,   0, 238, 160,   1, 
-      0, 228, 160,   2,   0,   0, 
-      3,   0,   0,   3, 192,   0, 
-      0, 228, 128,   0,   0, 228, 
-    160,   1,   0,   0,   2,   0, 
-      0,  12, 192,   4,   0,  68, 
-    160, 255, 255,   0,   0,  83, 
-     72,  68,  82, 244,   0,   0, 
-      0,  64,   0,   1,   0,  61, 
-      0,   0,   0,  89,   0,   0, 
-      4,  70, 142,  32,   0,   0, 
-      0,   0,   0,   3,   0,   0, 
-      0,  95,   0,   0,   3,  50, 
-     16,  16,   0,   0,   0,   0, 
-      0, 103,   0,   0,   4, 242, 
-     32,  16,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0, 101, 
-      0,   0,   3,  50,  32,  16, 
-      0,   1,   0,   0,   0, 101, 
-      0,   0,   3, 194,  32,  16, 
-      0,   1,   0,   0,   0,  50, 
-      0,   0,  11,  50,  32,  16, 
-      0,   0,   0,   0,   0,  70, 
-     16,  16,   0,   0,   0,   0, 
-      0, 230, 138,  32,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,  70, 128,  32,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,  54,   0,   0,   8, 194, 
-     32,  16,   0,   0,   0,   0, 
-      0,   2,  64,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0, 128,  63,  50,   0,   0, 
-     11,  50,  32,  16,   0,   1, 
+      0,   0,   0, 101,   0,   0, 
+      3,  50,  32,  16,   0,   1, 
+      0,   0,   0, 101,   0,   0, 
+      3, 194,  32,  16,   0,   1, 
+      0,   0,   0,  50,   0,   0, 
+     11,  50,  32,  16,   0,   0, 
       0,   0,   0,  70,  16,  16, 
       0,   0,   0,   0,   0, 230, 
     138,  32,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0,  70, 
+      0,   0,   0,   0,   0,  70, 
     128,  32,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0,  50, 
-      0,   0,  11, 194,  32,  16, 
-      0,   1,   0,   0,   0,   6, 
-     20,  16,   0,   0,   0,   0, 
-      0, 166, 142,  32,   0,   0, 
-      0,   0,   0,   2,   0,   0, 
-      0,   6, 132,  32,   0,   0, 
-      0,   0,   0,   2,   0,   0, 
-      0,  62,   0,   0,   1,  83, 
-     84,  65,  84, 116,   0,   0, 
-      0,   5,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   4,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,  54, 
+      0,   0,   8, 194,  32,  16, 
+      0,   0,   0,   0,   0,   2, 
+     64,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0, 128, 
+     63,  50,   0,   0,  11,  50, 
+     32,  16,   0,   1,   0,   0, 
+      0,  70,  16,  16,   0,   0, 
+      0,   0,   0, 230, 138,  32, 
+      0,   0,   0,   0,   0,   1, 
+      0,   0,   0,  70, 128,  32, 
       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,   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,   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,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,  82,  68,  69, 
-     70,   8,   1,   0,   0,   1, 
-      0,   0,   0,  64,   0,   0, 
-      0,   1,   0,   0,   0,  28, 
-      0,   0,   0,   0,   4, 254, 
-    255,   0,   1,   0,   0, 212, 
-      0,   0,   0,  60,   0,   0, 
+      0,   0,   0,  50,   0,   0, 
+     11, 194,  32,  16,   0,   1, 
+      0,   0,   0,   6,  20,  16, 
+      0,   0,   0,   0,   0, 166, 
+    142,  32,   0,   0,   0,   0, 
+      0,   2,   0,   0,   0,   6, 
+    132,  32,   0,   0,   0,   0, 
+      0,   2,   0,   0,   0,  62, 
+      0,   0,   1,  83,  84,  65, 
+     84, 116,   0,   0,   0,   5, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   4, 
+      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,   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,   0,   0, 
       0,   0,   0,   1,   0,   0, 
-      0,   0,   0,   0,   0,  99, 
-     98,  48,   0,  60,   0,   0, 
-      0,   3,   0,   0,   0,  88, 
-      0,   0,   0,  48,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0, 160,   0,   0, 
-      0,   0,   0,   0,   0,  16, 
-      0,   0,   0,   2,   0,   0, 
-      0, 172,   0,   0,   0,   0, 
-      0,   0,   0, 188,   0,   0, 
-      0,  16,   0,   0,   0,  16, 
-      0,   0,   0,   2,   0,   0, 
-      0, 172,   0,   0,   0,   0, 
-      0,   0,   0, 198,   0,   0, 
-      0,  32,   0,   0,   0,  16, 
-      0,   0,   0,   2,   0,   0, 
-      0, 172,   0,   0,   0,   0, 
-      0,   0,   0,  81, 117,  97, 
-    100,  68, 101, 115,  99,   0, 
-    171, 171, 171,   1,   0,   3, 
-      0,   1,   0,   4,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,  84, 101, 120,  67, 111, 
+      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,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,  82,  68,  69,  70,   8, 
+      1,   0,   0,   1,   0,   0, 
+      0,  64,   0,   0,   0,   1, 
+      0,   0,   0,  28,   0,   0, 
+      0,   0,   4, 254, 255,   0, 
+      1,   0,   0, 212,   0,   0, 
+      0,  60,   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,  99,  98,  48, 
+      0,  60,   0,   0,   0,   3, 
+      0,   0,   0,  88,   0,   0, 
+      0,  48,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0, 160,   0,   0,   0,   0, 
+      0,   0,   0,  16,   0,   0, 
+      0,   2,   0,   0,   0, 172, 
+      0,   0,   0,   0,   0,   0, 
+      0, 188,   0,   0,   0,  16, 
+      0,   0,   0,  16,   0,   0, 
+      0,   2,   0,   0,   0, 172, 
+      0,   0,   0,   0,   0,   0, 
+      0, 198,   0,   0,   0,  32, 
+      0,   0,   0,  16,   0,   0, 
+      0,   2,   0,   0,   0, 172, 
+      0,   0,   0,   0,   0,   0, 
+      0,  81, 117,  97, 100,  68, 
+    101, 115,  99,   0, 171, 171, 
+    171,   1,   0,   3,   0,   1, 
+      0,   4,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,  84, 
+    101, 120,  67, 111, 111, 114, 
+    100, 115,   0,  77,  97, 115, 
+    107,  84, 101, 120,  67, 111, 
     111, 114, 100, 115,   0,  77, 
-     97, 115, 107,  84, 101, 120, 
-     67, 111, 111, 114, 100, 115, 
-      0,  77, 105,  99, 114, 111, 
-    115, 111, 102, 116,  32,  40, 
-     82,  41,  32,  72,  76,  83, 
-     76,  32,  83, 104,  97, 100, 
-    101, 114,  32,  67, 111, 109, 
-    112, 105, 108, 101, 114,  32, 
-     57,  46,  50,  57,  46,  57, 
-     53,  50,  46,  51,  49,  49, 
-     49,   0, 171, 171, 171,  73, 
-     83,  71,  78,  44,   0,   0, 
-      0,   1,   0,   0,   0,   8, 
-      0,   0,   0,  32,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   3,   0,   0, 
-      0,   0,   0,   0,   0,   7, 
-      3,   0,   0,  80,  79,  83, 
-     73,  84,  73,  79,  78,   0, 
-    171, 171, 171,  79,  83,  71, 
-     78, 104,   0,   0,   0,   3, 
+    105,  99, 114, 111, 115, 111, 
+    102, 116,  32,  40,  82,  41, 
+     32,  72,  76,  83,  76,  32, 
+     83, 104,  97, 100, 101, 114, 
+     32,  67, 111, 109, 112, 105, 
+    108, 101, 114,  32,  57,  46, 
+     50,  57,  46,  57,  53,  50, 
+     46,  51,  49,  49,  49,   0, 
+    171, 171, 171,  73,  83,  71, 
+     78,  44,   0,   0,   0,   1, 
       0,   0,   0,   8,   0,   0, 
-      0,  80,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
+      0,  32,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
       0,   3,   0,   0,   0,   0, 
-      0,   0,   0,  15,   0,   0, 
-      0,  92,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   3,   0,   0,   0,   1, 
-      0,   0,   0,   3,  12,   0, 
-      0,  92,   0,   0,   0,   1, 
-      0,   0,   0,   0,   0,   0, 
-      0,   3,   0,   0,   0,   1, 
-      0,   0,   0,  12,   3,   0, 
-      0,  83,  86,  95,  80, 111, 
-    115, 105, 116, 105, 111, 110, 
-      0,  84,  69,  88,  67,  79, 
-     79,  82,  68,   0, 171, 171, 
-    171, 223,  46,   0,   0,   0, 
+      0,   0,   0,   7,   3,   0, 
+      0,  80,  79,  83,  73,  84, 
+     73,  79,  78,   0, 171, 171, 
+    171,  79,  83,  71,  78, 104, 
+      0,   0,   0,   3,   0,   0, 
+      0,   8,   0,   0,   0,  80, 
+      0,   0,   0,   0,   0,   0, 
+      0,   1,   0,   0,   0,   3, 
+      0,   0,   0,   0,   0,   0, 
+      0,  15,   0,   0,   0,  92, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   3, 
+      0,   0,   0,   1,   0,   0, 
+      0,   3,  12,   0,   0,  92, 
+      0,   0,   0,   1,   0,   0, 
+      0,   0,   0,   0,   0,   3, 
       0,   0,   0,   1,   0,   0, 
-      0,   2,   0,   0,   0,   0, 
-      0,   0,   0, 164,  10,   0, 
-      0,  68,  88,  66,  67, 143, 
-    148, 190,  36,  41, 120,  46, 
-    207, 200, 138, 139,  29,  38, 
-     89, 245,  86,   1,   0,   0, 
-      0, 164,  10,   0,   0,   6, 
-      0,   0,   0,  56,   0,   0, 
-      0,  24,   3,   0,   0, 112, 
-      7,   0,   0, 236,   7,   0, 
-      0,   0,  10,   0,   0, 112, 
-     10,   0,   0,  65, 111, 110, 
-     57, 216,   2,   0,   0, 216, 
-      2,   0,   0,   0,   2, 255, 
-    255, 160,   2,   0,   0,  56, 
-      0,   0,   0,   1,   0,  44, 
-      0,   0,   0,  56,   0,   0, 
-      0,  56,   0,   2,   0,  36, 
-      0,   0,   0,  56,   0,   1, 
-      0,   0,   0,   0,   1,   1, 
-      0,   0,   0,   3,   0,   6, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   2, 255, 255,  31, 
-      0,   0,   2,   0,   0,   0, 
-    128,   0,   0,  15, 176,  31, 
-      0,   0,   2,   0,   0,   0, 
-    144,   0,   8,  15, 160,  31, 
-      0,   0,   2,   0,   0,   0, 
-    144,   1,   8,  15, 160,   2, 
-      0,   0,   3,   0,   0,   2, 
+      0,  12,   3,   0,   0,  83, 
+     86,  95,  80, 111, 115, 105, 
+    116, 105, 111, 110,   0,  84, 
+     69,  88,  67,  79,  79,  82, 
+     68,   0, 171, 171, 171,  89, 
+     79,   0,   0,   0,   0,   0, 
+      0,   1,   0,   0,   0,   2, 
+      0,   0,   0,   0,   0,   0, 
+      0, 164,  10,   0,   0,  68, 
+     88,  66,  67, 143, 148, 190, 
+     36,  41, 120,  46, 207, 200, 
+    138, 139,  29,  38,  89, 245, 
+     86,   1,   0,   0,   0, 164, 
+     10,   0,   0,   6,   0,   0, 
+      0,  56,   0,   0,   0,  24, 
+      3,   0,   0, 112,   7,   0, 
+      0, 236,   7,   0,   0,   0, 
+     10,   0,   0, 112,  10,   0, 
+      0,  65, 111, 110,  57, 216, 
+      2,   0,   0, 216,   2,   0, 
+      0,   0,   2, 255, 255, 160, 
+      2,   0,   0,  56,   0,   0, 
+      0,   1,   0,  44,   0,   0, 
+      0,  56,   0,   0,   0,  56, 
+      0,   2,   0,  36,   0,   0, 
+      0,  56,   0,   1,   0,   0, 
+      0,   0,   1,   1,   0,   0, 
+      0,   3,   0,   6,   0,   0, 
+      0,   0,   0,   0,   0,   1, 
+      2, 255, 255,  31,   0,   0, 
+      2,   0,   0,   0, 128,   0, 
+      0,  15, 176,  31,   0,   0, 
+      2,   0,   0,   0, 144,   0, 
+      8,  15, 160,  31,   0,   0, 
+      2,   0,   0,   0, 144,   1, 
+      8,  15, 160,   2,   0,   0, 
+      3,   0,   0,   2, 128,   0, 
+      0,  85, 176,   0,   0,  85, 
+    160,   1,   0,   0,   2,   0, 
+      0,   1, 128,   0,   0,   0, 
+    176,   2,   0,   0,   3,   1, 
+      0,   2, 128,   0,   0,  85, 
+    176,   0,   0,   0, 160,   1, 
+      0,   0,   2,   1,   0,   1, 
+    128,   0,   0,   0, 176,  66, 
+      0,   0,   3,   0,   0,  15, 
+    128,   0,   0, 228, 128,   1, 
+      8, 228, 160,  66,   0,   0, 
+      3,   1,   0,  15, 128,   1, 
+      0, 228, 128,   1,   8, 228, 
+    160,   5,   0,   0,   3,   0, 
+      0,  15, 128,   0,   0, 228, 
+    128,   3,   0,  85, 160,   4, 
+      0,   0,   4,   0,   0,  15, 
+    128,   3,   0,   0, 160,   1, 
+      0, 228, 128,   0,   0, 228, 
+    128,   2,   0,   0,   3,   1, 
+      0,   2, 128,   0,   0,  85, 
+    176,   0,   0, 170, 160,   1, 
+      0,   0,   2,   1,   0,   1, 
+    128,   0,   0,   0, 176,   2, 
+      0,   0,   3,   2,   0,   2, 
     128,   0,   0,  85, 176,   0, 
-      0,  85, 160,   1,   0,   0, 
-      2,   0,   0,   1, 128,   0, 
-      0,   0, 176,   2,   0,   0, 
-      3,   1,   0,   2, 128,   0, 
-      0,  85, 176,   0,   0,   0, 
-    160,   1,   0,   0,   2,   1, 
-      0,   1, 128,   0,   0,   0, 
-    176,  66,   0,   0,   3,   0, 
-      0,  15, 128,   0,   0, 228, 
-    128,   1,   8, 228, 160,  66, 
-      0,   0,   3,   1,   0,  15, 
-    128,   1,   0, 228, 128,   1, 
-      8, 228, 160,   5,   0,   0, 
-      3,   0,   0,  15, 128,   0, 
-      0, 228, 128,   3,   0,  85, 
-    160,   4,   0,   0,   4,   0, 
-      0,  15, 128,   3,   0,   0, 
-    160,   1,   0, 228, 128,   0, 
+      0, 255, 160,   1,   0,   0, 
+      2,   2,   0,   1, 128,   0, 
+      0,   0, 176,  66,   0,   0, 
+      3,   1,   0,  15, 128,   1, 
+      0, 228, 128,   1,   8, 228, 
+    160,  66,   0,   0,   3,   2, 
+      0,  15, 128,   2,   0, 228, 
+    128,   1,   8, 228, 160,   4, 
+      0,   0,   4,   0,   0,  15, 
+    128,   3,   0, 170, 160,   1, 
+      0, 228, 128,   0,   0, 228, 
+    128,   4,   0,   0,   4,   0, 
+      0,  15, 128,   3,   0, 255, 
+    160,   2,   0, 228, 128,   0, 
       0, 228, 128,   2,   0,   0, 
       3,   1,   0,   2, 128,   0, 
-      0,  85, 176,   0,   0, 170, 
+      0,  85, 176,   1,   0,   0, 
     160,   1,   0,   0,   2,   1, 
       0,   1, 128,   0,   0,   0, 
     176,   2,   0,   0,   3,   2, 
       0,   2, 128,   0,   0,  85, 
-    176,   0,   0, 255, 160,   1, 
+    176,   1,   0,  85, 160,   1, 
       0,   0,   2,   2,   0,   1, 
     128,   0,   0,   0, 176,  66, 
       0,   0,   3,   1,   0,  15, 
     128,   1,   0, 228, 128,   1, 
       8, 228, 160,  66,   0,   0, 
       3,   2,   0,  15, 128,   2, 
       0, 228, 128,   1,   8, 228, 
     160,   4,   0,   0,   4,   0, 
-      0,  15, 128,   3,   0, 170, 
+      0,  15, 128,   4,   0,   0, 
     160,   1,   0, 228, 128,   0, 
       0, 228, 128,   4,   0,   0, 
-      4,   0,   0,  15, 128,   3, 
-      0, 255, 160,   2,   0, 228, 
+      4,   0,   0,  15, 128,   4, 
+      0,  85, 160,   2,   0, 228, 
     128,   0,   0, 228, 128,   2, 
       0,   0,   3,   1,   0,   2, 
     128,   0,   0,  85, 176,   1, 
-      0,   0, 160,   1,   0,   0, 
+      0, 170, 160,   1,   0,   0, 
       2,   1,   0,   1, 128,   0, 
       0,   0, 176,   2,   0,   0, 
       3,   2,   0,   2, 128,   0, 
-      0,  85, 176,   1,   0,  85, 
+      0,  85, 176,   1,   0, 255, 
     160,   1,   0,   0,   2,   2, 
       0,   1, 128,   0,   0,   0, 
     176,  66,   0,   0,   3,   1, 
       0,  15, 128,   1,   0, 228, 
     128,   1,   8, 228, 160,  66, 
       0,   0,   3,   2,   0,  15, 
     128,   2,   0, 228, 128,   1, 
       8, 228, 160,   4,   0,   0, 
       4,   0,   0,  15, 128,   4, 
-      0,   0, 160,   1,   0, 228, 
+      0, 170, 160,   1,   0, 228, 
     128,   0,   0, 228, 128,   4, 
       0,   0,   4,   0,   0,  15, 
-    128,   4,   0,  85, 160,   2, 
+    128,   4,   0, 255, 160,   2, 
       0, 228, 128,   0,   0, 228, 
     128,   2,   0,   0,   3,   1, 
       0,   2, 128,   0,   0,  85, 
-    176,   1,   0, 170, 160,   1, 
+    176,   2,   0,   0, 160,   1, 
       0,   0,   2,   1,   0,   1, 
-    128,   0,   0,   0, 176,   2, 
-      0,   0,   3,   2,   0,   2, 
-    128,   0,   0,  85, 176,   1, 
-      0, 255, 160,   1,   0,   0, 
-      2,   2,   0,   1, 128,   0, 
-      0,   0, 176,  66,   0,   0, 
-      3,   1,   0,  15, 128,   1, 
-      0, 228, 128,   1,   8, 228, 
-    160,  66,   0,   0,   3,   2, 
-      0,  15, 128,   2,   0, 228, 
-    128,   1,   8, 228, 160,   4, 
-      0,   0,   4,   0,   0,  15, 
-    128,   4,   0, 170, 160,   1, 
-      0, 228, 128,   0,   0, 228, 
-    128,   4,   0,   0,   4,   0, 
-      0,  15, 128,   4,   0, 255, 
-    160,   2,   0, 228, 128,   0, 
-      0, 228, 128,   2,   0,   0, 
-      3,   1,   0,   2, 128,   0, 
-      0,  85, 176,   2,   0,   0, 
-    160,   1,   0,   0,   2,   1, 
-      0,   1, 128,   0,   0,   0, 
-    176,   1,   0,   0,   2,   2, 
-      0,   3, 128,   0,   0, 235, 
-    176,  66,   0,   0,   3,   1, 
-      0,  15, 128,   1,   0, 228, 
-    128,   1,   8, 228, 160,  66, 
-      0,   0,   3,   2,   0,  15, 
-    128,   2,   0, 228, 128,   0, 
-      8, 228, 160,   4,   0,   0, 
-      4,   0,   0,  15, 128,   5, 
-      0,   0, 160,   1,   0, 228, 
-    128,   0,   0, 228, 128,   5, 
-      0,   0,   3,   0,   0,  15, 
-    128,   2,   0, 255, 128,   0, 
-      0, 228, 128,   1,   0,   0, 
-      2,   0,   8,  15, 128,   0, 
-      0, 228, 128, 255, 255,   0, 
-      0,  83,  72,  68,  82,  80, 
-      4,   0,   0,  64,   0,   0, 
-      0,  20,   1,   0,   0,  89, 
-      0,   0,   4,  70, 142,  32, 
-      0,   0,   0,   0,   0,   9, 
-      0,   0,   0,  90,   0,   0, 
-      3,   0,  96,  16,   0,   0, 
-      0,   0,   0,  90,   0,   0, 
-      3,   0,  96,  16,   0,   1, 
-      0,   0,   0,  88,  24,   0, 
-      4,   0, 112,  16,   0,   0, 
-      0,   0,   0,  85,  85,   0, 
+    128,   0,   0,   0, 176,   1, 
+      0,   0,   2,   2,   0,   3, 
+    128,   0,   0, 235, 176,  66, 
+      0,   0,   3,   1,   0,  15, 
+    128,   1,   0, 228, 128,   1, 
+      8, 228, 160,  66,   0,   0, 
+      3,   2,   0,  15, 128,   2, 
+      0, 228, 128,   0,   8, 228, 
+    160,   4,   0,   0,   4,   0, 
+      0,  15, 128,   5,   0,   0, 
+    160,   1,   0, 228, 128,   0, 
+      0, 228, 128,   5,   0,   0, 
+      3,   0,   0,  15, 128,   2, 
+      0, 255, 128,   0,   0, 228, 
+    128,   1,   0,   0,   2,   0, 
+      8,  15, 128,   0,   0, 228, 
+    128, 255, 255,   0,   0,  83, 
+     72,  68,  82,  80,   4,   0, 
+      0,  64,   0,   0,   0,  20, 
+      1,   0,   0,  89,   0,   0, 
+      4,  70, 142,  32,   0,   0, 
+      0,   0,   0,   9,   0,   0, 
+      0,  90,   0,   0,   3,   0, 
+     96,  16,   0,   0,   0,   0, 
+      0,  90,   0,   0,   3,   0, 
+     96,  16,   0,   1,   0,   0, 
       0,  88,  24,   0,   4,   0, 
-    112,  16,   0,   1,   0,   0, 
-      0,  85,  85,   0,   0,  98, 
-     16,   0,   3,  50,  16,  16, 
-      0,   1,   0,   0,   0,  98, 
-     16,   0,   3, 194,  16,  16, 
-      0,   1,   0,   0,   0, 101, 
-      0,   0,   3, 242,  32,  16, 
-      0,   0,   0,   0,   0, 104, 
-      0,   0,   2,   4,   0,   0, 
-      0,  54,   0,   0,   5,  82, 
+    112,  16,   0,   0,   0,   0, 
+      0,  85,  85,   0,   0,  88, 
+     24,   0,   4,   0, 112,  16, 
+      0,   1,   0,   0,   0,  85, 
+     85,   0,   0,  98,  16,   0, 
+      3,  50,  16,  16,   0,   1, 
+      0,   0,   0,  98,  16,   0, 
+      3, 194,  16,  16,   0,   1, 
+      0,   0,   0, 101,   0,   0, 
+      3, 242,  32,  16,   0,   0, 
+      0,   0,   0, 104,   0,   0, 
+      2,   4,   0,   0,   0,  54, 
+      0,   0,   5,  82,   0,  16, 
+      0,   0,   0,   0,   0,   6, 
+     16,  16,   0,   1,   0,   0, 
+      0,   0,   0,   0,   8, 242, 
+      0,  16,   0,   1,   0,   0, 
+      0,  86,  21,  16,   0,   1, 
+      0,   0,   0, 134, 141,  32, 
+      0,   0,   0,   0,   0,   3, 
+      0,   0,   0,  54,   0,   0, 
+      5, 162,   0,  16,   0,   0, 
+      0,   0,   0,   6,   8,  16, 
+      0,   1,   0,   0,   0,  69, 
+      0,   0,   9, 242,   0,  16, 
+      0,   2,   0,   0,   0, 230, 
+     10,  16,   0,   0,   0,   0, 
+      0,  70, 126,  16,   0,   0, 
+      0,   0,   0,   0,  96,  16, 
+      0,   1,   0,   0,   0,  69, 
+      0,   0,   9, 242,   0,  16, 
+      0,   0,   0,   0,   0,  70, 
       0,  16,   0,   0,   0,   0, 
-      0,   6,  16,  16,   0,   1, 
-      0,   0,   0,   0,   0,   0, 
-      8, 242,   0,  16,   0,   1, 
-      0,   0,   0,  86,  21,  16, 
-      0,   1,   0,   0,   0, 134, 
-    141,  32,   0,   0,   0,   0, 
-      0,   3,   0,   0,   0,  54, 
-      0,   0,   5, 162,   0,  16, 
-      0,   0,   0,   0,   0,   6, 
-      8,  16,   0,   1,   0,   0, 
+      0,  70, 126,  16,   0,   0, 
+      0,   0,   0,   0,  96,  16, 
+      0,   1,   0,   0,   0,  56, 
+      0,   0,   8, 242,   0,  16, 
+      0,   2,   0,   0,   0,  70, 
+     14,  16,   0,   2,   0,   0, 
+      0,  86, 133,  32,   0,   0, 
+      0,   0,   0,   6,   0,   0, 
+      0,  50,   0,   0,  10, 242, 
+      0,  16,   0,   0,   0,   0, 
+      0,   6, 128,  32,   0,   0, 
+      0,   0,   0,   6,   0,   0, 
+      0,  70,  14,  16,   0,   0, 
+      0,   0,   0,  70,  14,  16, 
+      0,   2,   0,   0,   0,  54, 
+      0,   0,   5,  82,   0,  16, 
+      0,   1,   0,   0,   0,   6, 
+     16,  16,   0,   1,   0,   0, 
       0,  69,   0,   0,   9, 242, 
       0,  16,   0,   2,   0,   0, 
-      0, 230,  10,  16,   0,   0, 
+      0,  70,   0,  16,   0,   1, 
       0,   0,   0,  70, 126,  16, 
       0,   0,   0,   0,   0,   0, 
      96,  16,   0,   1,   0,   0, 
       0,  69,   0,   0,   9, 242, 
-      0,  16,   0,   0,   0,   0, 
-      0,  70,   0,  16,   0,   0, 
+      0,  16,   0,   1,   0,   0, 
+      0, 230,  10,  16,   0,   1, 
       0,   0,   0,  70, 126,  16, 
       0,   0,   0,   0,   0,   0, 
      96,  16,   0,   1,   0,   0, 
-      0,  56,   0,   0,   8, 242, 
-      0,  16,   0,   2,   0,   0, 
+      0,  50,   0,   0,  10, 242, 
+      0,  16,   0,   0,   0,   0, 
+      0, 166, 138,  32,   0,   0, 
+      0,   0,   0,   6,   0,   0, 
       0,  70,  14,  16,   0,   2, 
-      0,   0,   0,  86, 133,  32, 
-      0,   0,   0,   0,   0,   6, 
-      0,   0,   0,  50,   0,   0, 
-     10, 242,   0,  16,   0,   0, 
-      0,   0,   0,   6, 128,  32, 
-      0,   0,   0,   0,   0,   6, 
       0,   0,   0,  70,  14,  16, 
-      0,   0,   0,   0,   0,  70, 
-     14,  16,   0,   2,   0,   0, 
-      0,  54,   0,   0,   5,  82, 
+      0,   0,   0,   0,   0,  50, 
+      0,   0,  10, 242,   0,  16, 
+      0,   0,   0,   0,   0, 246, 
+    143,  32,   0,   0,   0,   0, 
+      0,   6,   0,   0,   0,  70, 
+     14,  16,   0,   1,   0,   0, 
+      0,  70,  14,  16,   0,   0, 
+      0,   0,   0,  54,   0,   0, 
+      5,  82,   0,  16,   0,   1, 
+      0,   0,   0,   6,  16,  16, 
+      0,   1,   0,   0,   0,   0, 
+      0,   0,   8, 242,   0,  16, 
+      0,   2,   0,   0,   0,  86, 
+     21,  16,   0,   1,   0,   0, 
+      0, 134, 141,  32,   0,   0, 
+      0,   0,   0,   4,   0,   0, 
+      0,  54,   0,   0,   5, 162, 
       0,  16,   0,   1,   0,   0, 
-      0,   6,  16,  16,   0,   1, 
+      0,   6,   8,  16,   0,   2, 
       0,   0,   0,  69,   0,   0, 
-      9, 242,   0,  16,   0,   2, 
+      9, 242,   0,  16,   0,   3, 
       0,   0,   0,  70,   0,  16, 
       0,   1,   0,   0,   0,  70, 
     126,  16,   0,   0,   0,   0, 
       0,   0,  96,  16,   0,   1, 
       0,   0,   0,  69,   0,   0, 
       9, 242,   0,  16,   0,   1, 
       0,   0,   0, 230,  10,  16, 
       0,   1,   0,   0,   0,  70, 
     126,  16,   0,   0,   0,   0, 
       0,   0,  96,  16,   0,   1, 
       0,   0,   0,  50,   0,   0, 
      10, 242,   0,  16,   0,   0, 
-      0,   0,   0, 166, 138,  32, 
-      0,   0,   0,   0,   0,   6, 
+      0,   0,   0,   6, 128,  32, 
+      0,   0,   0,   0,   0,   7, 
       0,   0,   0,  70,  14,  16, 
-      0,   2,   0,   0,   0,  70, 
+      0,   3,   0,   0,   0,  70, 
      14,  16,   0,   0,   0,   0, 
       0,  50,   0,   0,  10, 242, 
       0,  16,   0,   0,   0,   0, 
-      0, 246, 143,  32,   0,   0, 
-      0,   0,   0,   6,   0,   0, 
+      0,  86, 133,  32,   0,   0, 
+      0,   0,   0,   7,   0,   0, 
       0,  70,  14,  16,   0,   1, 
       0,   0,   0,  70,  14,  16, 
       0,   0,   0,   0,   0,  54, 
       0,   0,   5,  82,   0,  16, 
-      0,   1,   0,   0,   0,   6, 
+      0,   2,   0,   0,   0,   6, 
      16,  16,   0,   1,   0,   0, 
-      0,   0,   0,   0,   8, 242, 
-      0,  16,   0,   2,   0,   0, 
-      0,  86,  21,  16,   0,   1, 
-      0,   0,   0, 134, 141,  32, 
-      0,   0,   0,   0,   0,   4, 
-      0,   0,   0,  54,   0,   0, 
-      5, 162,   0,  16,   0,   1, 
-      0,   0,   0,   6,   8,  16, 
-      0,   2,   0,   0,   0,  69, 
-      0,   0,   9, 242,   0,  16, 
-      0,   3,   0,   0,   0,  70, 
+      0,  69,   0,   0,   9, 242, 
       0,  16,   0,   1,   0,   0, 
-      0,  70, 126,  16,   0,   0, 
-      0,   0,   0,   0,  96,  16, 
-      0,   1,   0,   0,   0,  69, 
-      0,   0,   9, 242,   0,  16, 
-      0,   1,   0,   0,   0, 230, 
-     10,  16,   0,   1,   0,   0, 
-      0,  70, 126,  16,   0,   0, 
-      0,   0,   0,   0,  96,  16, 
-      0,   1,   0,   0,   0,  50, 
+      0,  70,   0,  16,   0,   2, 
+      0,   0,   0,  70, 126,  16, 
+      0,   0,   0,   0,   0,   0, 
+     96,  16,   0,   1,   0,   0, 
+      0,  69,   0,   0,   9, 242, 
+      0,  16,   0,   2,   0,   0, 
+      0, 230,  10,  16,   0,   2, 
+      0,   0,   0,  70, 126,  16, 
+      0,   0,   0,   0,   0,   0, 
+     96,  16,   0,   1,   0,   0, 
+      0,  50,   0,   0,  10, 242, 
+      0,  16,   0,   0,   0,   0, 
+      0, 166, 138,  32,   0,   0, 
+      0,   0,   0,   7,   0,   0, 
+      0,  70,  14,  16,   0,   1, 
+      0,   0,   0,  70,  14,  16, 
+      0,   0,   0,   0,   0,  50, 
       0,   0,  10, 242,   0,  16, 
-      0,   0,   0,   0,   0,   6, 
-    128,  32,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0, 246, 
+    143,  32,   0,   0,   0,   0, 
       0,   7,   0,   0,   0,  70, 
-     14,  16,   0,   3,   0,   0, 
+     14,  16,   0,   2,   0,   0, 
       0,  70,  14,  16,   0,   0, 
-      0,   0,   0,  50,   0,   0, 
-     10, 242,   0,  16,   0,   0, 
-      0,   0,   0,  86, 133,  32, 
-      0,   0,   0,   0,   0,   7, 
-      0,   0,   0,  70,  14,  16, 
-      0,   1,   0,   0,   0,  70, 
-     14,  16,   0,   0,   0,   0, 
-      0,  54,   0,   0,   5,  82, 
-      0,  16,   0,   2,   0,   0, 
-      0,   6,  16,  16,   0,   1, 
-      0,   0,   0,  69,   0,   0, 
-      9, 242,   0,  16,   0,   1, 
-      0,   0,   0,  70,   0,  16, 
-      0,   2,   0,   0,   0,  70, 
-    126,  16,   0,   0,   0,   0, 
-      0,   0,  96,  16,   0,   1, 
-      0,   0,   0,  69,   0,   0, 
-      9, 242,   0,  16,   0,   2, 
-      0,   0,   0, 230,  10,  16, 
-      0,   2,   0,   0,   0,  70, 
-    126,  16,   0,   0,   0,   0, 
-      0,   0,  96,  16,   0,   1, 
-      0,   0,   0,  50,   0,   0, 
-     10, 242,   0,  16,   0,   0, 
-      0,   0,   0, 166, 138,  32, 
-      0,   0,   0,   0,   0,   7, 
-      0,   0,   0,  70,  14,  16, 
-      0,   1,   0,   0,   0,  70, 
-     14,  16,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      8,  34,   0,  16,   0,   1, 
+      0,   0,   0,  26,  16,  16, 
+      0,   1,   0,   0,   0,  10, 
+    128,  32,   0,   0,   0,   0, 
+      0,   5,   0,   0,   0,  54, 
+      0,   0,   5,  18,   0,  16, 
+      0,   1,   0,   0,   0,  10, 
+     16,  16,   0,   1,   0,   0, 
+      0,  69,   0,   0,   9, 242, 
+      0,  16,   0,   1,   0,   0, 
+      0,  70,   0,  16,   0,   1, 
+      0,   0,   0,  70, 126,  16, 
+      0,   0,   0,   0,   0,   0, 
+     96,  16,   0,   1,   0,   0, 
       0,  50,   0,   0,  10, 242, 
       0,  16,   0,   0,   0,   0, 
-      0, 246, 143,  32,   0,   0, 
-      0,   0,   0,   7,   0,   0, 
-      0,  70,  14,  16,   0,   2, 
+      0,   6, 128,  32,   0,   0, 
+      0,   0,   0,   8,   0,   0, 
+      0,  70,  14,  16,   0,   1, 
       0,   0,   0,  70,  14,  16, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   8,  34,   0,  16, 
-      0,   1,   0,   0,   0,  26, 
-     16,  16,   0,   1,   0,   0, 
-      0,  10, 128,  32,   0,   0, 
+      0,   0,   0,   0,   0,  69, 
+      0,   0,   9, 242,   0,  16, 
+      0,   1,   0,   0,   0, 230, 
+     26,  16,   0,   1,   0,   0, 
+      0,  70, 126,  16,   0,   1, 
+      0,   0,   0,   0,  96,  16, 
+      0,   0,   0,   0,   0,  56, 
+      0,   0,   7, 242,  32,  16, 
+      0,   0,   0,   0,   0,  70, 
+     14,  16,   0,   0,   0,   0, 
+      0, 246,  15,  16,   0,   1, 
+      0,   0,   0,  62,   0,   0, 
+      1,  83,  84,  65,  84, 116, 
+      0,   0,   0,  31,   0,   0, 
+      0,   4,   0,   0,   0,   0, 
+      0,   0,   0,   3,   0,   0, 
+      0,   5,   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,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,  10, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   9,   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,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,  82, 
+     68,  69,  70,  12,   2,   0, 
+      0,   1,   0,   0,   0, 232, 
       0,   0,   0,   5,   0,   0, 
-      0,  54,   0,   0,   5,  18, 
-      0,  16,   0,   1,   0,   0, 
-      0,  10,  16,  16,   0,   1, 
-      0,   0,   0,  69,   0,   0, 
-      9, 242,   0,  16,   0,   1, 
-      0,   0,   0,  70,   0,  16, 
-      0,   1,   0,   0,   0,  70, 
-    126,  16,   0,   0,   0,   0, 
-      0,   0,  96,  16,   0,   1, 
-      0,   0,   0,  50,   0,   0, 
-     10, 242,   0,  16,   0,   0, 
-      0,   0,   0,   6, 128,  32, 
-      0,   0,   0,   0,   0,   8, 
-      0,   0,   0,  70,  14,  16, 
-      0,   1,   0,   0,   0,  70, 
-     14,  16,   0,   0,   0,   0, 
-      0,  69,   0,   0,   9, 242, 
-      0,  16,   0,   1,   0,   0, 
-      0, 230,  26,  16,   0,   1, 
-      0,   0,   0,  70, 126,  16, 
-      0,   1,   0,   0,   0,   0, 
-     96,  16,   0,   0,   0,   0, 
-      0,  56,   0,   0,   7, 242, 
-     32,  16,   0,   0,   0,   0, 
-      0,  70,  14,  16,   0,   0, 
-      0,   0,   0, 246,  15,  16, 
-      0,   1,   0,   0,   0,  62, 
-      0,   0,   1,  83,  84,  65, 
-     84, 116,   0,   0,   0,  31, 
-      0,   0,   0,   4,   0,   0, 
-      0,   0,   0,   0,   0,   3, 
-      0,   0,   0,   5,   0,   0, 
+      0,  28,   0,   0,   0,   0, 
+      4, 255, 255,   0,   1,   0, 
+      0, 216,   1,   0,   0, 188, 
+      0,   0,   0,   3,   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, 201,   0,   0,   0,   3, 
+      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,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,  10,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   9,   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,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,  82,  68,  69,  70,  12, 
-      2,   0,   0,   1,   0,   0, 
-      0, 232,   0,   0,   0,   5, 
-      0,   0,   0,  28,   0,   0, 
-      0,   0,   4, 255, 255,   0, 
-      1,   0,   0, 216,   1,   0, 
-      0, 188,   0,   0,   0,   3, 
+      0,   1,   0,   0,   0,   0, 
+      0,   0,   0, 216,   0,   0, 
+      0,   2,   0,   0,   0,   5, 
+      0,   0,   0,   4,   0,   0, 
+      0, 255, 255, 255, 255,   0, 
+      0,   0,   0,   1,   0,   0, 
+      0,  12,   0,   0,   0, 220, 
+      0,   0,   0,   2,   0,   0, 
+      0,   5,   0,   0,   0,   4, 
+      0,   0,   0, 255, 255, 255, 
+    255,   1,   0,   0,   0,   1, 
+      0,   0,   0,  12,   0,   0, 
+      0, 225,   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, 201,   0,   0, 
-      0,   3,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,   1,   0,   0, 
-      0,   0,   0,   0,   0, 216, 
-      0,   0,   0,   2,   0,   0, 
-      0,   5,   0,   0,   0,   4, 
-      0,   0,   0, 255, 255, 255, 
-    255,   0,   0,   0,   0,   1, 
-      0,   0,   0,  12,   0,   0, 
-      0, 220,   0,   0,   0,   2, 
-      0,   0,   0,   5,   0,   0, 
-      0,   4,   0,   0,   0, 255, 
-    255, 255, 255,   1,   0,   0, 
-      0,   1,   0,   0,   0,  12, 
-      0,   0,   0, 225,   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, 115, 
-     77,  97, 115, 107,  83,  97, 
-    109, 112, 108, 101, 114,   0, 
-    115,  83, 104,  97, 100, 111, 
-    119,  83,  97, 109, 112, 108, 
-    101, 114,   0, 116, 101, 120, 
-      0, 109,  97, 115, 107,   0, 
-     99,  98,  49,   0, 171, 171, 
-    171, 225,   0,   0,   0,   4, 
-      0,   0,   0,   0,   1,   0, 
-      0, 160,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,  96,   1,   0,   0,   0, 
-      0,   0,   0,  48,   0,   0, 
-      0,   0,   0,   0,   0, 112, 
+      0,   0,   0, 115,  77,  97, 
+    115, 107,  83,  97, 109, 112, 
+    108, 101, 114,   0, 115,  83, 
+    104,  97, 100, 111, 119,  83, 
+     97, 109, 112, 108, 101, 114, 
+      0, 116, 101, 120,   0, 109, 
+     97, 115, 107,   0,  99,  98, 
+     49,   0, 171, 171, 171, 225, 
+      0,   0,   0,   4,   0,   0, 
+      0,   0,   1,   0,   0, 160, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,  96, 
       1,   0,   0,   0,   0,   0, 
-      0, 128,   1,   0,   0,  48, 
-      0,   0,   0,  48,   0,   0, 
-      0,   2,   0,   0,   0, 144, 
-      1,   0,   0,   0,   0,   0, 
-      0, 160,   1,   0,   0,  96, 
-      0,   0,   0,  48,   0,   0, 
-      0,   2,   0,   0,   0, 172, 
-      1,   0,   0,   0,   0,   0, 
-      0, 188,   1,   0,   0, 144, 
-      0,   0,   0,  16,   0,   0, 
-      0,   0,   0,   0,   0, 200, 
-      1,   0,   0,   0,   0,   0, 
+      0,  48,   0,   0,   0,   0, 
+      0,   0,   0, 112,   1,   0, 
+      0,   0,   0,   0,   0, 128, 
+      1,   0,   0,  48,   0,   0, 
+      0,  48,   0,   0,   0,   2, 
+      0,   0,   0, 144,   1,   0, 
+      0,   0,   0,   0,   0, 160, 
+      1,   0,   0,  96,   0,   0, 
+      0,  48,   0,   0,   0,   2, 
+      0,   0,   0, 172,   1,   0, 
+      0,   0,   0,   0,   0, 188, 
+      1,   0,   0, 144,   0,   0, 
+      0,  16,   0,   0,   0,   0, 
+      0,   0,   0, 200,   1,   0, 
+      0,   0,   0,   0,   0,  66, 
+    108, 117, 114,  79, 102, 102, 
+    115, 101, 116, 115,  72,   0, 
+    171, 171, 171,   1,   0,   3, 
+      0,   1,   0,   4,   0,   3, 
+      0,   0,   0,   0,   0,   0, 
       0,  66, 108, 117, 114,  79, 
     102, 102, 115, 101, 116, 115, 
-     72,   0, 171, 171, 171,   1, 
+     86,   0, 171, 171, 171,   1, 
       0,   3,   0,   1,   0,   4, 
       0,   3,   0,   0,   0,   0, 
       0,   0,   0,  66, 108, 117, 
-    114,  79, 102, 102, 115, 101, 
-    116, 115,  86,   0, 171, 171, 
-    171,   1,   0,   3,   0,   1, 
-      0,   4,   0,   3,   0,   0, 
-      0,   0,   0,   0,   0,  66, 
-    108, 117, 114,  87, 101, 105, 
-    103, 104, 116, 115,   0,   1, 
-      0,   3,   0,   1,   0,   4, 
-      0,   3,   0,   0,   0,   0, 
-      0,   0,   0,  83, 104,  97, 
-    100, 111, 119,  67, 111, 108, 
-    111, 114,   0,   1,   0,   3, 
-      0,   1,   0,   4,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,  77, 105,  99, 114, 111, 
-    115, 111, 102, 116,  32,  40, 
-     82,  41,  32,  72,  76,  83, 
-     76,  32,  83, 104,  97, 100, 
-    101, 114,  32,  67, 111, 109, 
-    112, 105, 108, 101, 114,  32, 
-     57,  46,  50,  57,  46,  57, 
-     53,  50,  46,  51,  49,  49, 
-     49,   0, 171, 171, 171,  73, 
-     83,  71,  78, 104,   0,   0, 
-      0,   3,   0,   0,   0,   8, 
-      0,   0,   0,  80,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,   3,   0,   0, 
-      0,   0,   0,   0,   0,  15, 
-      0,   0,   0,  92,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   3,   0,   0, 
-      0,   1,   0,   0,   0,   3, 
-      3,   0,   0,  92,   0,   0, 
-      0,   1,   0,   0,   0,   0, 
-      0,   0,   0,   3,   0,   0, 
-      0,   1,   0,   0,   0,  12, 
-     12,   0,   0,  83,  86,  95, 
-     80, 111, 115, 105, 116, 105, 
-    111, 110,   0,  84,  69,  88, 
-     67,  79,  79,  82,  68,   0, 
-    171, 171, 171,  79,  83,  71, 
-     78,  44,   0,   0,   0,   1, 
+    114,  87, 101, 105, 103, 104, 
+    116, 115,   0,   1,   0,   3, 
+      0,   1,   0,   4,   0,   3, 
+      0,   0,   0,   0,   0,   0, 
+      0,  83, 104,  97, 100, 111, 
+    119,  67, 111, 108, 111, 114, 
+      0,   1,   0,   3,   0,   1, 
+      0,   4,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,  77, 
+    105,  99, 114, 111, 115, 111, 
+    102, 116,  32,  40,  82,  41, 
+     32,  72,  76,  83,  76,  32, 
+     83, 104,  97, 100, 101, 114, 
+     32,  67, 111, 109, 112, 105, 
+    108, 101, 114,  32,  57,  46, 
+     50,  57,  46,  57,  53,  50, 
+     46,  51,  49,  49,  49,   0, 
+    171, 171, 171,  73,  83,  71, 
+     78, 104,   0,   0,   0,   3, 
       0,   0,   0,   8,   0,   0, 
-      0,  32,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
+      0,  80,   0,   0,   0,   0, 
+      0,   0,   0,   1,   0,   0, 
       0,   3,   0,   0,   0,   0, 
       0,   0,   0,  15,   0,   0, 
-      0,  83,  86,  95,  84,  97, 
-    114, 103, 101, 116,   0, 171, 
-    171,  27,  51,   0,   0,   0, 
-      0,   0,   0,   4,   0,   0, 
-      0,  48,   0,   0,   0,   0, 
-      0,   0,   0,   3,   0,   0, 
-      0, 255, 255, 255, 255,   0, 
-      0,   0,   0,  43,   0,   0, 
-      0,  15,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,  52,   0,   0,   0,  15, 
-      0,   0,   0,   0,   0,   0, 
-      0,  16,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,  62, 
+      0,  92,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   3,   0,   0,   0,   1, 
+      0,   0,   0,   3,   3,   0, 
+      0,  92,   0,   0,   0,   1, 
+      0,   0,   0,   0,   0,   0, 
+      0,   3,   0,   0,   0,   1, 
+      0,   0,   0,  12,  12,   0, 
+      0,  83,  86,  95,  80, 111, 
+    115, 105, 116, 105, 111, 110, 
+      0,  84,  69,  88,  67,  79, 
+     79,  82,  68,   0, 171, 171, 
+    171,  79,  83,  71,  78,  44, 
+      0,   0,   0,   1,   0,   0, 
+      0,   8,   0,   0,   0,  32, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   3, 
+      0,   0,   0,   0,   0,   0, 
+      0,  15,   0,   0,   0,  83, 
+     86,  95,  84,  97, 114, 103, 
+    101, 116,   0, 171, 171, 149, 
+     83,   0,   0,   0,   0,   0, 
+      0,   4,   0,   0,   0,  48, 
+      0,   0,   0,   0,   0,   0, 
+      0,   3,   0,   0,   0, 255, 
+    255, 255, 255,   0,   0,   0, 
+      0,  43,   0,   0,   0,  15, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,  52, 
       0,   0,   0,  15,   0,   0, 
-      0,   0,   0,   0,   0,  32, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,  76,   0,   0, 
-      0, 160,   0,   0,   0,   0, 
-      0,   0,   0,   4,   0,   0, 
-      0, 255, 255, 255, 255,   0, 
-      0,   0,   0, 108,   0,   0, 
+      0,   0,   0,   0,   0,  16, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,  62,   0,   0, 
+      0,  15,   0,   0,   0,   0, 
+      0,   0,   0,  32,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,  76,   0,   0,   0, 160, 
+      0,   0,   0,   0,   0,   0, 
+      0,   4,   0,   0,   0, 255, 
+    255, 255, 255,   0,   0,   0, 
+      0, 108,   0,   0,   0,  80, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0, 121, 
+      0,   0,   0,  80,   0,   0, 
+      0,   0,   0,   0,   0,  48, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0, 134,   0,   0, 
       0,  80,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0, 121,   0,   0,   0,  80, 
-      0,   0,   0,   0,   0,   0, 
-      0,  48,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0, 134, 
-      0,   0,   0,  80,   0,   0, 
+      0,   0,   0,  96,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0, 146,   0,   0,   0,  15, 
+      0,   0,   0,   0,   0,   0, 
+      0, 144,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0, 158, 
+      0,   0,   0, 112,   0,   0, 
+      0,   0,   0,   0,   0,   7, 
+      0,   0,   0, 255, 255, 255, 
+    255,   0,   0,   0,   0, 199, 
+      0,   0,   0, 171,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   1,   1,   0, 
+      0, 229,   0,   0,   0,   0, 
+      0,   0,   0,  48,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,  47,   1,   0,   0,  19, 
+      1,   0,   0,   0,   0,   0, 
+      0,  64,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,  52, 
+      1,   0,   0, 229,   0,   0, 
+      0,   0,   0,   0,   0,  80, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,  94,   1,   0, 
+      0,  66,   1,   0,   0,   0, 
+      0,   0,   0,  88,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,  96,   1,   0,   0,  66, 
+      1,   0,   0,   0,   0,   0, 
+      0,  92,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0, 104, 
+      1,   0,   0,  66,   1,   0, 
       0,   0,   0,   0,   0,  96, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0, 146,   0,   0, 
-      0,  15,   0,   0,   0,   0, 
-      0,   0,   0, 144,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0, 196,   0,   0,   0, 168, 
-      0,   0,   0,   0,   0,   0, 
-      0, 255, 255, 255, 255,   0, 
-      0,   0,   0, 200,   0,   0, 
-      0, 168,   0,   0,   0,   0, 
+      0,   0,   0, 153,   1,   0, 
+      0, 125,   1,   0,   0,   0, 
       0,   0,   0, 255, 255, 255, 
-    255,   0,   0,   0,   0, 246, 
-      0,   0,   0, 218,   0,   0, 
+    255,   0,   0,   0,   0, 157, 
+      1,   0,   0, 125,   1,   0, 
+      0,   0,   0,   0,   0, 255, 
+    255, 255, 255,   0,   0,   0, 
+      0, 203,   1,   0,   0, 175, 
+      1,   0,   0,   0,   0,   0, 
+      0, 255, 255, 255, 255,   4, 
+      0,   0,   0,  45,   0,   0, 
+      0,   0,   0,   0,   0,   1, 
+      0,   0,   0, 212,   1,   0, 
+      0,  55,   0,   0,   0,   0, 
+      0,   0,   0,   2,   0,   0, 
+      0, 153,   1,   0,   0,  46, 
+      0,   0,   0,   0,   0,   0, 
+      0,   1,   0,   0,   0, 224, 
+      1,   0,   0,  47,   0,   0, 
+      0,   0,   0,   0,   0,   1, 
+      0,   0,   0, 236,   1,   0, 
+      0,   0,   0,   0,   0, 248, 
+      1,   0,   0, 175,   1,   0, 
       0,   0,   0,   0,   0, 255, 
     255, 255, 255,   4,   0,   0, 
       0,  45,   0,   0,   0,   0, 
       0,   0,   0,   1,   0,   0, 
-      0, 255,   0,   0,   0,  55, 
-      0,   0,   0,   0,   0,   0, 
-      0,   2,   0,   0,   0, 196, 
-      0,   0,   0,  46,   0,   0, 
+      0,   5,   2,   0,   0,  55, 
+      0,   0,   0,   0,   0,   0, 
+      0,   2,   0,   0,   0, 157, 
+      1,   0,   0,  46,   0,   0, 
       0,   0,   0,   0,   0,   1, 
-      0,   0,   0,  11,   1,   0, 
+      0,   0,   0,  17,   2,   0, 
       0,  47,   0,   0,   0,   0, 
       0,   0,   0,   1,   0,   0, 
-      0,  23,   1,   0,   0,   0, 
-      0,   0,   0,  35,   1,   0, 
-      0, 218,   0,   0,   0,   0, 
+      0,  29,   2,   0,   0,   0, 
+      0,   0,   0,  41,   2,   0, 
+      0, 175,   1,   0,   0,   0, 
       0,   0,   0, 255, 255, 255, 
-    255,   4,   0,   0,   0,  45, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0,  48, 
-      1,   0,   0,  55,   0,   0, 
+    255,   5,   0,   0,   0,  45, 
+      0,   0,   0,   0,   0,   0, 
+      0,   1,   0,   0,   0,  56, 
+      2,   0,   0,  55,   0,   0, 
       0,   0,   0,   0,   0,   2, 
-      0,   0,   0, 200,   0,   0, 
+      0,   0,   0, 153,   1,   0, 
       0,  46,   0,   0,   0,   0, 
       0,   0,   0,   1,   0,   0, 
-      0,  60,   1,   0,   0,  47, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0,  72, 
-      1,   0,   0,   0,   0,   0, 
-      0,  84,   1,   0,   0, 218, 
-      0,   0,   0,   0,   0,   0, 
-      0, 255, 255, 255, 255,   5, 
-      0,   0,   0,  45,   0,   0, 
+      0,  68,   2,   0,   0,  47, 
+      0,   0,   0,   0,   0,   0, 
+      0,   1,   0,   0,   0,  80, 
+      2,   0,   0,  52,   0,   0, 
       0,   0,   0,   0,   0,   1, 
-      0,   0,   0,  99,   1,   0, 
-      0,  55,   0,   0,   0,   0, 
-      0,   0,   0,   2,   0,   0, 
-      0, 196,   0,   0,   0,  46, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0, 111, 
-      1,   0,   0,  47,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0, 123,   1,   0, 
-      0,  52,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0, 135,   1,   0,   0,   0, 
-      0,   0,   0, 215,   1,   0, 
-      0, 187,   1,   0,   0,   0, 
-      0,   0,   0, 255, 255, 255, 
-    255,   2,   0,   0,   0,  19, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0, 227, 
-      1,   0,   0,  13,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0, 239,   1,   0, 
-      0,   0,   0,   0,   0,  34, 
-      2,   0,   0,   6,   2,   0, 
+      0,   0,   0,  92,   2,   0, 
+      0,   0,   0,   0,   0, 172, 
+      2,   0,   0, 144,   2,   0, 
       0,   0,   0,   0,   0, 255, 
     255, 255, 255,   2,   0,   0, 
-      0,  37,   0,   0,   0,   0, 
+      0,  19,   0,   0,   0,   0, 
       0,   0,   0,   1,   0,   0, 
-      0,  47,   2,   0,   0,  44, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0,  59, 
+      0, 184,   2,   0,   0,  13, 
+      0,   0,   0,   0,   0,   0, 
+      0,   1,   0,   0,   0, 196, 
       2,   0,   0,   0,   0,   0, 
-      0,  71,   2,   0,   0,   6, 
+      0, 247,   2,   0,   0, 219, 
       2,   0,   0,   0,   0,   0, 
-      0, 255, 255, 255, 255,   8, 
+      0, 255, 255, 255, 255,   2, 
       0,   0,   0,  37,   0,   0, 
       0,   0,   0,   0,   0,   1, 
-      0,   0,   0,  84,   2,   0, 
-      0,  38,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,  96,   2,   0,   0,  39, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0, 108, 
-      2,   0,   0,  40,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0, 120,   2,   0, 
-      0,  41,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0, 132,   2,   0,   0,  42, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0, 144, 
-      2,   0,   0,  43,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0, 156,   2,   0, 
+      0,   0,   0,   4,   3,   0, 
       0,  44,   0,   0,   0,   0, 
       0,   0,   0,   1,   0,   0, 
-      0, 168,   2,   0,   0,   0, 
-      0,   0,   0, 180,   2,   0, 
-      0,   1,   0,   0,   0,   0, 
-      0,   0,   0, 194,   2,   0, 
+      0,  16,   3,   0,   0,   0, 
+      0,   0,   0,  28,   3,   0, 
+      0, 219,   2,   0,   0,   0, 
+      0,   0,   0, 255, 255, 255, 
+    255,   8,   0,   0,   0,  37, 
+      0,   0,   0,   0,   0,   0, 
+      0,   1,   0,   0,   0,  41, 
+      3,   0,   0,  38,   0,   0, 
+      0,   0,   0,   0,   0,   1, 
+      0,   0,   0,  53,   3,   0, 
+      0,  39,   0,   0,   0,   0, 
+      0,   0,   0,   1,   0,   0, 
+      0,  65,   3,   0,   0,  40, 
+      0,   0,   0,   0,   0,   0, 
+      0,   1,   0,   0,   0,  77, 
+      3,   0,   0,  41,   0,   0, 
+      0,   0,   0,   0,   0,   1, 
+      0,   0,   0,  89,   3,   0, 
+      0,  42,   0,   0,   0,   0, 
+      0,   0,   0,   1,   0,   0, 
+      0, 101,   3,   0,   0,  43, 
+      0,   0,   0,   0,   0,   0, 
+      0,   1,   0,   0,   0, 113, 
+      3,   0,   0,  44,   0,   0, 
+      0,   0,   0,   0,   0,   1, 
+      0,   0,   0, 125,   3,   0, 
+      0,   0,   0,   0,   0, 137, 
+      3,   0,   0,   1,   0,   0, 
+      0,   0,   0,   0,   0, 151, 
+      3,   0,   0,   4,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   2,   0,   0,   0, 172, 
+      2,   0,   0,   6,   0,   0, 
+      0,   0,   0,   0,   0,   7, 
+      0,   0,   0, 194,   7,   0, 
+      0,   8,   0,   0,   0,   0, 
+      0,   0,   0,   1,   0,   0, 
+      0, 202,   7,   0,   0,   7, 
+      0,   0,   0,   0,   0,   0, 
+      0,   7,   0,   0,   0, 174, 
+     10,   0,   0, 182,  10,   0, 
+      0,   2,   0,   0,   0,   0, 
+      0,   0,   0, 151,   3,   0, 
       0,   4,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   2, 
-      0,   0,   0, 215,   1,   0, 
+      0,   0,   0, 172,   2,   0, 
       0,   6,   0,   0,   0,   0, 
       0,   0,   0,   7,   0,   0, 
-      0, 237,   6,   0,   0,   8, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0, 245, 
-      6,   0,   0,   7,   0,   0, 
+      0, 211,  17,   0,   0,   8, 
+      0,   0,   0,   0,   0,   0, 
+      0,   1,   0,   0,   0, 219, 
+     17,   0,   0,   7,   0,   0, 
       0,   0,   0,   0,   0,   7, 
-      0,   0,   0, 217,   9,   0, 
-      0, 225,   9,   0,   0,   1, 
-      0,   0,   0,   0,   0,   0, 
-      0, 194,   2,   0,   0,   4, 
+      0,   0,   0, 155,  27,   0, 
+      0, 163,  27,   0,   0,   4, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   2,   0,   0, 
-      0, 215,   1,   0,   0,   6, 
-      0,   0,   0,   0,   0,   0, 
-      0,   7,   0,   0,   0,  29, 
-     14,   0,   0,   8,   0,   0, 
+      0, 172,   2,   0,   0,   6, 
+      0,   0,   0,   0,   0,   0, 
+      0,   7,   0,   0,   0, 174, 
+     34,   0,   0,   8,   0,   0, 
       0,   0,   0,   0,   0,   1, 
-      0,   0,   0,  37,  14,   0, 
+      0,   0,   0, 182,  34,   0, 
       0,   7,   0,   0,   0,   0, 
       0,   0,   0,   7,   0,   0, 
-      0,   5,  18,   0,   0,  13, 
-     18,   0,   0,   3,   0,   0, 
-      0,   0,   0,   0,   0, 194, 
-      2,   0,   0,   7,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   2,   0,   0,   0, 215, 
-      1,   0,   0,  10,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,  37,  18,   0, 
-      0,  11,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,  73,  18,   0,   0,   2, 
-      0,   0,   0,   0,   0,   0, 
-      0,   2,   0,   0,   0,  34, 
+      0,  86,  42,   0,   0,  94, 
+     42,   0,   0,   1,   0,   0, 
+      0,   0,   0,   0,   0, 151, 
+      3,   0,   0,   4,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   2,   0,   0,   0, 172, 
       2,   0,   0,   6,   0,   0, 
       0,   0,   0,   0,   0,   7, 
-      0,   0,   0, 125,  22,   0, 
+      0,   0,   0, 154,  46,   0, 
       0,   8,   0,   0,   0,   0, 
       0,   0,   0,   1,   0,   0, 
-      0, 133,  22,   0,   0,   7, 
-      0,   0,   0,   0,   0,   0, 
-      0,   7,   0,   0,   0, 125, 
-     32,   0,   0, 133,  32,   0, 
+      0, 162,  46,   0,   0,   7, 
+      0,   0,   0,   0,   0,   0, 
+      0,   7,   0,   0,   0, 130, 
+     50,   0,   0, 138,  50,   0, 
+      0,   3,   0,   0,   0,   0, 
+      0,   0,   0, 151,   3,   0, 
       0,   7,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   2, 
-      0,   0,   0, 215,   1,   0, 
+      0,   0,   0, 172,   2,   0, 
       0,  10,   0,   0,   0,   0, 
       0,   0,   0,   1,   0,   0, 
-      0, 136,  32,   0,   0,  11, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0, 172, 
-     32,   0,   0,   2,   0,   0, 
+      0, 162,  50,   0,   0,  11, 
+      0,   0,   0,   0,   0,   0, 
+      0,   1,   0,   0,   0, 198, 
+     50,   0,   0,   2,   0,   0, 
       0,   0,   0,   0,   0,   2, 
-      0,   0,   0,  71,   2,   0, 
+      0,   0,   0, 247,   2,   0, 
       0,   6,   0,   0,   0,   0, 
       0,   0,   0,   7,   0,   0, 
-      0, 224,  36,   0,   0,   8, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0, 232, 
-     36,   0,   0,   7,   0,   0, 
+      0, 250,  54,   0,   0,   8, 
+      0,   0,   0,   0,   0,   0, 
+      0,   1,   0,   0,   0,   2, 
+     55,   0,   0,   7,   0,   0, 
       0,   0,   0,   0,   0,   7, 
-      0,   0,   0, 164,  46,   0, 
-      0, 172,  46,   0,   0,   7, 
+      0,   0,   0, 250,  64,   0, 
+      0, 163,  27,   0,   0,   7, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   2,   0,   0, 
-      0, 215,   1,   0,   0,  10, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0, 175, 
-     46,   0,   0,  11,   0,   0, 
+      0, 172,   2,   0,   0,  10, 
+      0,   0,   0,   0,   0,   0, 
+      0,   1,   0,   0,   0,   2, 
+     65,   0,   0,  11,   0,   0, 
       0,   0,   0,   0,   0,   1, 
-      0,   0,   0, 211,  46,   0, 
+      0,   0,   0,  38,  65,   0, 
       0,   2,   0,   0,   0,   0, 
       0,   0,   0,   2,   0,   0, 
-      0,  71,   2,   0,   0,   6, 
-      0,   0,   0,   0,   0,   0, 
-      0,   7,   0,   0,   0,   7, 
-     51,   0,   0,   8,   0,   0, 
+      0,  28,   3,   0,   0,   6, 
+      0,   0,   0,   0,   0,   0, 
+      0,   7,   0,   0,   0,  90, 
+     69,   0,   0,   8,   0,   0, 
       0,   0,   0,   0,   0,   1, 
-      0,   0,   0,  15,  51,   0, 
+      0,   0,   0,  98,  69,   0, 
       0,   7,   0,   0,   0,   0, 
       0,   0,   0,   7,   0,   0, 
-      0, 195,  61,   0,   0
+      0,  30,  79,   0,   0,  38, 
+     79,   0,   0,   7,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   2,   0,   0,   0, 172, 
+      2,   0,   0,  10,   0,   0, 
+      0,   0,   0,   0,   0,   1, 
+      0,   0,   0,  41,  79,   0, 
+      0,  11,   0,   0,   0,   0, 
+      0,   0,   0,   1,   0,   0, 
+      0,  77,  79,   0,   0,   2, 
+      0,   0,   0,   0,   0,   0, 
+      0,   2,   0,   0,   0,  28, 
+      3,   0,   0,   6,   0,   0, 
+      0,   0,   0,   0,   0,   7, 
+      0,   0,   0, 129,  83,   0, 
+      0,   8,   0,   0,   0,   0, 
+      0,   0,   0,   1,   0,   0, 
+      0, 137,  83,   0,   0,   7, 
+      0,   0,   0,   0,   0,   0, 
+      0,   7,   0,   0,   0,  61, 
+     94,   0,   0
 };
--- a/gfx/layers/Layers.h
+++ b/gfx/layers/Layers.h
@@ -429,16 +429,17 @@ public:
   /**
    * Creates a DrawTarget which is optimized for inter-operating with this
    * layermanager.
    */
   virtual TemporaryRef<mozilla::gfx::DrawTarget>
     CreateDrawTarget(const mozilla::gfx::IntSize &aSize,
                      mozilla::gfx::SurfaceFormat aFormat);
 
+  virtual bool CanUseCanvasLayerForSize(const gfxIntSize &aSize) { return PR_TRUE; }
 
   /**
    * Return the name of the layer manager's backend.
    */
   virtual void GetBackendName(nsAString& aName) = 0;
 
   /**
    * This setter can be used anytime. The user data for all keys is
--- a/gfx/layers/d3d10/LayerManagerD3D10.h
+++ b/gfx/layers/d3d10/LayerManagerD3D10.h
@@ -110,16 +110,25 @@ public:
     void *CallbackData;
   };
 
   virtual void EndTransaction(DrawThebesLayerCallback aCallback,
                               void* aCallbackData);
 
   const CallbackInfo &GetCallbackInfo() { return mCurrentCallbackInfo; }
 
+  // D3D10 guarantees textures can be at least this size
+  enum {
+    MAX_TEXTURE_SIZE = 8192
+  };
+  virtual bool CanUseCanvasLayerForSize(const gfxIntSize &aSize)
+  {
+    return aSize <= gfxIntSize(MAX_TEXTURE_SIZE, MAX_TEXTURE_SIZE);
+  }
+
   virtual already_AddRefed<ThebesLayer> CreateThebesLayer();
 
   virtual already_AddRefed<ContainerLayer> CreateContainerLayer();
 
   virtual already_AddRefed<ImageLayer> CreateImageLayer();
 
   virtual already_AddRefed<ColorLayer> CreateColorLayer();
 
--- a/gfx/layers/d3d9/DeviceManagerD3D9.cpp
+++ b/gfx/layers/d3d9/DeviceManagerD3D9.cpp
@@ -176,16 +176,17 @@ SwapChainD3D9::Reset()
   mSwapChain = nsnull;
 }
 
 #define HAS_CAP(a, b) (((a) & (b)) == (b))
 #define LACKS_CAP(a, b) !(((a) & (b)) == (b))
 
 DeviceManagerD3D9::DeviceManagerD3D9()
   : mDeviceResetCount(0)
+  , mMaxTextureSize(0)
   , mHasDynamicTextures(false)
   , mDeviceWasRemoved(false)
 {
 }
 
 DeviceManagerD3D9::~DeviceManagerD3D9()
 {
   LayerManagerD3D9::OnDeviceManagerDestroy(this);
@@ -641,16 +642,17 @@ DeviceManagerD3D9::VerifyCaps()
   if (LACKS_CAP(caps.TextureAddressCaps, D3DPTADDRESSCAPS_CLAMP)) {
     return false;
   }
 
   if (caps.MaxTextureHeight < 4096 ||
       caps.MaxTextureWidth < 4096) {
     return false;
   }
+  mMaxTextureSize = NS_MIN(caps.MaxTextureHeight, caps.MaxTextureWidth);
 
   if ((caps.PixelShaderVersion & 0xffff) < 0x200 ||
       (caps.VertexShaderVersion & 0xffff) < 0x200) {
     return false;
   }
 
   if (HAS_CAP(caps.Caps2, D3DCAPS2_DYNAMICTEXTURES)) {
     mHasDynamicTextures = true;
--- a/gfx/layers/d3d9/DeviceManagerD3D9.h
+++ b/gfx/layers/d3d9/DeviceManagerD3D9.h
@@ -163,16 +163,18 @@ public:
   PRUint32 GetDeviceResetCount() { return mDeviceResetCount; }
 
   /**
    * We keep a list of all layers here that may have hardware resource allocated
    * so we can clean their resources on reset.
    */
   nsTArray<LayerD3D9*> mLayersWithResources;
 
+  PRInt32 GetMaxTextureSize() { return mMaxTextureSize; }
+
 private:
   friend class SwapChainD3D9;
 
   ~DeviceManagerD3D9();
 
   /**
    * This function verifies the device is ready for rendering, internally this
    * will test the cooperative level of the device and reset the device if
@@ -233,16 +235,18 @@ private:
    */
   HWND mFocusWnd;
 
   /* we use this to help track if our device temporarily or permanently lost */
   HMONITOR mDeviceMonitor;
 
   PRUint32 mDeviceResetCount;
 
+  PRUint32 mMaxTextureSize;
+
   /* If this device supports dynamic textures */
   bool mHasDynamicTextures;
 
   /* If this device was removed */
   bool mDeviceWasRemoved;
 
   /* Nv3DVUtils instance */ 
   nsAutoPtr<Nv3DVUtils> mNv3DVUtils; 
--- a/gfx/layers/d3d9/LayerManagerD3D9.h
+++ b/gfx/layers/d3d9/LayerManagerD3D9.h
@@ -136,16 +136,24 @@ public:
 
   virtual void EndTransaction(DrawThebesLayerCallback aCallback,
                               void* aCallbackData);
 
   const CallbackInfo &GetCallbackInfo() { return mCurrentCallbackInfo; }
 
   void SetRoot(Layer* aLayer);
 
+  virtual bool CanUseCanvasLayerForSize(const gfxIntSize &aSize)
+  {
+    if (!mDeviceManager)
+      return false;
+    PRInt32 maxSize = mDeviceManager->GetMaxTextureSize();
+    return aSize <= gfxIntSize(maxSize, maxSize);
+  }
+
   virtual already_AddRefed<ThebesLayer> CreateThebesLayer();
 
   virtual already_AddRefed<ContainerLayer> CreateContainerLayer();
 
   virtual already_AddRefed<ImageLayer> CreateImageLayer();
 
   virtual already_AddRefed<ColorLayer> CreateColorLayer();
 
--- a/gfx/layers/opengl/LayerManagerOGL.h
+++ b/gfx/layers/opengl/LayerManagerOGL.h
@@ -133,16 +133,24 @@ public:
   void EndConstruction();
 
   virtual bool EndEmptyTransaction();
   virtual void EndTransaction(DrawThebesLayerCallback aCallback,
                               void* aCallbackData);
 
   virtual void SetRoot(Layer* aLayer) { mRoot = aLayer; }
 
+  virtual bool CanUseCanvasLayerForSize(const gfxIntSize &aSize)
+  {
+      if (!mGLContext)
+          return false;
+      PRInt32 maxSize = mGLContext->GetMaxTextureSize();
+      return aSize <= gfxIntSize(maxSize, maxSize);
+  }
+
   virtual already_AddRefed<ThebesLayer> CreateThebesLayer();
 
   virtual already_AddRefed<ContainerLayer> CreateContainerLayer();
 
   virtual already_AddRefed<ImageLayer> CreateImageLayer();
 
   virtual already_AddRefed<ColorLayer> CreateColorLayer();
 
--- a/js/src/tests/e4x/GC/jstests.list
+++ b/js/src/tests/e4x/GC/jstests.list
@@ -1,11 +1,11 @@
 url-prefix ../../jsreftest.html?test=e4x/GC/
-script regress-280844-1.js
-script regress-280844-2.js
+skip-if(Android) script regress-280844-1.js
+skip-if(Android) script regress-280844-2.js
 skip-if(!xulRuntime.shell) script regress-292455.js # does not always dismiss alert
 script regress-313952-01.js
 script regress-313952-02.js
 script regress-324117.js
 skip script regress-324278.js # slow
 script regress-339785.js
 script regress-357063-01.js
 script regress-357063-02.js
--- a/js/src/tests/e4x/Regress/jstests.list
+++ b/js/src/tests/e4x/Regress/jstests.list
@@ -75,22 +75,22 @@ script regress-373082.js
 script regress-374106.js
 script regress-374112.js
 script regress-374116.js
 script regress-374160.js
 script regress-375406.js
 script regress-378492.js
 script regress-380833.js
 script regress-383255.js
-silentfail script regress-394941.js
+skip-if(Android) silentfail script regress-394941.js
 script regress-407323.js
 script regress-426520.js
 script regress-453915.js
-silentfail script regress-458679-01.js
-silentfail script regress-458679-02.js
+skip-if(Android) silentfail script regress-458679-01.js
+skip-if(Android) silentfail script regress-458679-02.js
 script regress-460180.js
 script regress-465063.js
 script regress-470619.js
-script regress-473709.js
-script regress-474319.js
+skip-if(Android) script regress-473709.js
+skip-if(Android) script regress-474319.js
 script regress-477053.js
 script regress-561031.js
 script regress-587434.js
--- a/js/src/tests/e4x/XML/jstests.list
+++ b/js/src/tests/e4x/XML/jstests.list
@@ -43,14 +43,14 @@ script 13.4.4.39.js
 script 13.4.4.4.js
 script 13.4.4.40.js
 script 13.4.4.5.js
 script 13.4.4.6.js
 script 13.4.4.7.js
 script 13.4.4.8.js
 script 13.4.4.9.js
 script regress-291930.js
-silentfail script regress-324422-1.js
+skip-if(Android) silentfail script regress-324422-1.js
 skip script regress-324422-2.js # slow
 skip script regress-324688.js # bug 528404 - disable due to random timeouts
 script regress-336921.js
 script regress-376773.js
 script regress-621464.js
--- a/js/src/tests/ecma_5/Function/jstests.list
+++ b/js/src/tests/ecma_5/Function/jstests.list
@@ -4,10 +4,10 @@ script 15.3.4.3-01.js
 script arguments-caller-callee.js
 script function-caller.js
 script strict-arguments.js
 script arguments-property-attributes.js
 script function-bind.js
 script function-call.js
 script redefine-arguments-length.js
 script builtin-no-prototype.js
-script Function-arguments-gc.js
+skip-if(Android) script Function-arguments-gc.js
 script builtin-no-construct.js
--- a/js/src/tests/js1_5/Array/jstests.list
+++ b/js/src/tests/js1_5/Array/jstests.list
@@ -1,25 +1,25 @@
 url-prefix ../../jsreftest.html?test=js1_5/Array/
 script 11.1.4.js
 script array-001.js
 random script regress-101964.js # bogus perf test (bug 467263)
 script regress-107138.js
 fails-if(!xulRuntime.shell) script regress-108440.js # bug - NS_ERROR_DOM_NOT_SUPPORTED_ERR line 74
 script regress-154338.js
-skip-if(xulRuntime.XPCOMABI.match(/x86_64/)) script regress-157652.js # No test results
+skip-if(xulRuntime.XPCOMABI.match(/x86_64/)||Android) script regress-157652.js # No test results
 script regress-178722.js
 script regress-255555.js
 script regress-299644.js
 script regress-300858.js
 script regress-310351.js
 script regress-311515.js
 script regress-313153.js
 script regress-315509-01.js
-skip-if(xulRuntime.XPCOMABI.match(/x86_64/)) script regress-330812.js # No test results
+skip-if(xulRuntime.XPCOMABI.match(/x86_64/)||Android) script regress-330812.js # No test results
 script regress-345961.js
 script regress-348810.js
 script regress-350256-01.js
 script regress-350256-02.js
 script regress-360681-01.js
 script regress-360681-02.js
 script regress-364104.js
 script regress-422286.js
--- a/js/src/tests/js1_5/Exceptions/jstests.list
+++ b/js/src/tests/js1_5/Exceptions/jstests.list
@@ -7,10 +7,10 @@ script regress-123002.js
 script regress-232182.js
 script regress-257751.js
 script regress-273931.js
 fails-if(Android) script regress-315147.js
 script regress-332472.js
 script regress-333728.js
 script regress-342359.js
 script regress-347674.js
-script regress-350650-n.js
+skip-if(Android) script regress-350650-n.js
 script regress-350837.js
--- a/js/src/tests/js1_5/Function/jstests.list
+++ b/js/src/tests/js1_5/Function/jstests.list
@@ -2,14 +2,14 @@ url-prefix ../../jsreftest.html?test=js1
 script 10.1.6-01.js
 script 10.1.6.js
 script 15.3.4.4.js
 script regress-123371.js
 script regress-178389.js
 script regress-222029-001.js
 script regress-222029-002.js
 script regress-292215.js
-#silentfail script regress-338001.js # disabled pending bug 657444
-#silentfail script regress-338121-01.js # disabled pending bug 657444
-#silentfail script regress-338121-02.js # disabled pending bug 657444
-#silentfail script regress-338121-03.js # disabled pending bug 657444
+#skip-if(Android) silentfail script regress-338001.js # disabled pending bug 657444
+#skip-if(Android) silentfail script regress-338121-01.js # disabled pending bug 657444
+#skip-if(Android) silentfail script regress-338121-02.js # disabled pending bug 657444
+#skip-if(Android) silentfail script regress-338121-03.js # disabled pending bug 657444
 script regress-344052.js
 script regress-364023.js
--- a/js/src/tests/js1_5/GC/jstests.list
+++ b/js/src/tests/js1_5/GC/jstests.list
@@ -12,15 +12,15 @@ script regress-316885-02.js
 script regress-316885-03.js
 skip-if(!xulRuntime.shell) slow script regress-319980-01.js
 skip script regress-324278.js # slow, obsoleted by 98409 fix
 script regress-331719.js
 skip script regress-338653.js # slow, killed on x86_64
 script regress-341877-01.js
 script regress-341877-02.js
 skip script regress-346794.js # slow, killed
-script regress-348532.js
+skip-if(Android) script regress-348532.js
 script regress-352606.js
 skip script regress-383269-01.js # unreliable - based on GC timing
 skip script regress-383269-02.js # unreliable - based on GC timing
 script regress-390078.js
 script regress-418128.js
-script regress-440558.js
+skip-if(Android) script regress-440558.js
--- a/js/src/tests/js1_5/Regress/jstests.list
+++ b/js/src/tests/js1_5/Regress/jstests.list
@@ -86,17 +86,17 @@ script regress-261886.js
 skip script regress-261887.js # we violate the spec here with our new iterators
 skip script regress-271716-n.js # never terminates
 script regress-274035.js
 script regress-274888.js
 script regress-275378.js
 script regress-276103.js
 script regress-278873.js
 script regress-280769-1.js
-silentfail script regress-280769-2.js
+skip-if(Android) silentfail script regress-280769-2.js
 script regress-280769-3.js
 script regress-280769-4.js
 script regress-280769-5.js
 script regress-280769.js
 script regress-281606.js
 script regress-281930.js
 script regress-283477.js
 script regress-288688.js
@@ -106,31 +106,31 @@ script regress-290656.js
 script regress-294191.js
 script regress-294195-01.js
 script regress-294195-02.js
 script regress-294302.js
 script regress-295052.js
 script regress-295666.js
 script regress-299209.js
 script regress-299641.js
-skip-if(!xulRuntime.shell) script regress-303213.js # bug 524731
+skip-if(!xulRuntime.shell||Android) script regress-303213.js # bug 524731
 script regress-306633.js
 script regress-306727.js
 script regress-306794.js
 script regress-308085.js
 script regress-308566.js
 script regress-309242.js
 script regress-310295.js
 script regress-310607.js
 script regress-310993.js
 script regress-311071.js
 script regress-311629.js
 script regress-312260.js
 script regress-31255.js
-script regress-312588.js
+skip-if(Android) script regress-312588.js
 random script regress-313967-01.js # BigO
 random script regress-313967-02.js # BigO
 skip-if(xulRuntime.OS=="WINNT"&&isDebugBuild) slow script regress-314401.js
 script regress-315974.js
 script regress-315990.js
 script regress-317476.js
 fails-if(Android) script regress-317533.js
 script regress-317714-01.js
@@ -146,18 +146,18 @@ script regress-322430.js
 fails-if(Android) script regress-323314-1.js
 script regress-325925.js
 script regress-326453.js
 script regress-326467.js
 script regress-328012.js
 script regress-328664.js
 script regress-328897.js
 script regress-329383.js
-script regress-329530.js
-script regress-330352.js
+skip-if(Android) script regress-329530.js
+skip-if(Android) script regress-330352.js
 script regress-330951.js
 script regress-334807-01.js
 script regress-334807-02.js
 script regress-334807-03.js
 script regress-334807-04.js
 script regress-334807-05.js